Class NameChecker

  • Direct Known Subclasses:
    Name10Checker, Name11Checker

    public abstract class NameChecker
    extends java.lang.Object
    A NameChecker performs validation and analysis of XML names. There are two implementations of this interface, one for XML 1.0 names and one for XML 1.1 names. The class also handles validation of characters against the XML 1.0 or XML 1.1 rules.
    • Constructor Summary

      Constructors 
      Constructor Description
      NameChecker()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String[] checkQNameParts​(java.lang.CharSequence qname)
      Validate a QName, and return the prefix and local name.
      static java.lang.String getPrefix​(java.lang.String qname)
      Extract the prefix from a QName.
      java.lang.String[] getQNameParts​(java.lang.CharSequence qname)
      Validate a QName, and return the prefix and local name.
      abstract java.lang.String getXMLVersion()
      Return the XML version supported by this NameChecker
      abstract boolean isNCNameChar​(int ch)
      Test whether a character can appear in an NCName
      abstract boolean isNCNameStartChar​(int ch)
      Test whether a character can appear at the start of an NCName
      boolean isQName​(java.lang.String name)
      Validate whether a given string constitutes a valid QName, as defined in XML Namespaces.
      abstract boolean isValidChar​(int ch)
      Test whether a character is a valid XML character
      boolean isValidNCName​(java.lang.CharSequence ncName)
      Validate whether a given string constitutes a valid NCName, as defined in XML Namespaces.
      boolean isValidNmtoken​(java.lang.CharSequence nmtoken)
      Check to see if a string is a valid Nmtoken according to [7] in the XML 1.0 Recommendation
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • NameChecker

        public NameChecker()
    • Method Detail

      • isQName

        public final boolean isQName​(java.lang.String name)
        Validate whether a given string constitutes a valid QName, as defined in XML Namespaces. Note that this does not test whether the prefix is actually declared.
        Parameters:
        name - the name to be tested
        Returns:
        true if the name is a lexically-valid QName
      • getPrefix

        public static java.lang.String getPrefix​(java.lang.String qname)
        Extract the prefix from a QName. Note, the QName is assumed to be valid.
        Parameters:
        qname - The lexical QName whose prefix is required
        Returns:
        the prefix, that is the part before the colon. Returns an empty string if there is no prefix
      • getQNameParts

        public final java.lang.String[] getQNameParts​(java.lang.CharSequence qname)
                                               throws QNameException
        Validate a QName, and return the prefix and local name. The local name is checked to ensure it is a valid NCName. The prefix is not checked, on the theory that the caller will look up the prefix to find a URI, and if the prefix is invalid, then no URI will be found.
        Parameters:
        qname - the lexical QName whose parts are required. Note that leading and trailing whitespace is not permitted
        Returns:
        an array of two strings, the prefix and the local name. The first item is a zero-length string if there is no prefix.
        Throws:
        QNameException - if not a valid QName.
      • checkQNameParts

        public final java.lang.String[] checkQNameParts​(java.lang.CharSequence qname)
                                                 throws XPathException
        Validate a QName, and return the prefix and local name. Both parts are checked to ensure they are valid NCNames.

        Used from compiled code

        Parameters:
        qname - the lexical QName whose parts are required. Note that leading and trailing whitespace is not permitted
        Returns:
        an array of two strings, the prefix and the local name. The first item is a zero-length string if there is no prefix.
        Throws:
        XPathException - if not a valid QName.
      • isValidNCName

        public final boolean isValidNCName​(java.lang.CharSequence ncName)
        Validate whether a given string constitutes a valid NCName, as defined in XML Namespaces.
        Parameters:
        ncName - the name to be tested
        Returns:
        true if the name is a lexically-valid QName
      • isValidNmtoken

        public final boolean isValidNmtoken​(java.lang.CharSequence nmtoken)
        Check to see if a string is a valid Nmtoken according to [7] in the XML 1.0 Recommendation
        Parameters:
        nmtoken - string to check
        Returns:
        true if nmtoken is a valid Nmtoken
      • isValidChar

        public abstract boolean isValidChar​(int ch)
        Test whether a character is a valid XML character
        Parameters:
        ch - the character to be tested
        Returns:
        true if this is a valid character in the selected version of XML
      • isNCNameChar

        public abstract boolean isNCNameChar​(int ch)
        Test whether a character can appear in an NCName
        Parameters:
        ch - the character to be tested
        Returns:
        true if this is a valid character in an NCName the selected version of XML
      • isNCNameStartChar

        public abstract boolean isNCNameStartChar​(int ch)
        Test whether a character can appear at the start of an NCName
        Parameters:
        ch - the character to be tested
        Returns:
        true if this is a valid character at the start of an NCName the selected version of XML
      • getXMLVersion

        public abstract java.lang.String getXMLVersion()
        Return the XML version supported by this NameChecker
        Returns:
        "1.0" or "1.1" as a string