xml11char.java

来自「JAVA 所有包」· Java 代码 · 共 411 行 · 第 1/2 页

JAVA
411
字号
        /**     * Returns true if the specified character can be considered      * content in an internal parsed entity.     *     * @param c The character to check.     */    public static boolean isXML11InternalEntityContent(int c) {        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_CONTENT_INTERNAL) != 0) ||               (0x10000 <= c && c <= 0x10FFFF);    } // isXML11InternalEntityContent(int):boolean    /**     * Returns true if the specified character is a valid name start     * character as defined by production [4] in the XML 1.1     * specification.     *     * @param c The character to check.     */    public static boolean isXML11NameStart(int c) {        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NAME_START) != 0)            || (0x10000 <= c && c < 0xF0000);    } // isXML11NameStart(int):boolean    /**     * Returns true if the specified character is a valid name     * character as defined by production [4a] in the XML 1.1     * specification.     *     * @param c The character to check.     */    public static boolean isXML11Name(int c) {        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NAME) != 0)             || (c >= 0x10000 && c < 0xF0000);    } // isXML11Name(int):boolean    /**     * Returns true if the specified character is a valid NCName start     * character as defined by production [4] in Namespaces in XML     * 1.1 recommendation.     *     * @param c The character to check.     */    public static boolean isXML11NCNameStart(int c) {        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NCNAME_START) != 0)            || (0x10000 <= c && c < 0xF0000);    } // isXML11NCNameStart(int):boolean    /**     * Returns true if the specified character is a valid NCName     * character as defined by production [5] in Namespaces in XML     * 1.1 recommendation.     *     * @param c The character to check.     */    public static boolean isXML11NCName(int c) {        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NCNAME) != 0)            || (0x10000 <= c && c < 0xF0000);    } // isXML11NCName(int):boolean        /**     * Returns whether the given character is a valid      * high surrogate for a name character. This includes     * all high surrogates for characters [0x10000-0xEFFFF].     * In other words everything excluding planes 15 and 16.     *     * @param c The character to check.     */    public static boolean isXML11NameHighSurrogate(int c) {        return (0xD800 <= c && c <= 0xDB7F);    }    /*     * [5] Name ::= NameStartChar NameChar*     */    /**     * Check to see if a string is a valid Name according to [5]     * in the XML 1.1 Recommendation     *     * @param name string to check     * @return true if name is a valid Name     */    public static boolean isXML11ValidName(String name) {        int length = name.length();        if (length == 0)            return false;        int i = 1;        char ch = name.charAt(0);        if( !isXML11NameStart(ch) ) {            if ( length > 1 && isXML11NameHighSurrogate(ch) ) {                char ch2 = name.charAt(1);                if ( !XMLChar.isLowSurrogate(ch2) ||                      !isXML11NameStart(XMLChar.supplemental(ch, ch2)) ) {                    return false;                }                i = 2;            }            else {                return false;            }        }        while (i < length) {            ch = name.charAt(i);            if ( !isXML11Name(ch) ) {                if ( ++i < length && isXML11NameHighSurrogate(ch) ) {                    char ch2 = name.charAt(i);                    if ( !XMLChar.isLowSurrogate(ch2) ||                          !isXML11Name(XMLChar.supplemental(ch, ch2)) ) {                        return false;                    }                }                else {                    return false;                }            }            ++i;        }        return true;    } // isXML11ValidName(String):boolean        /*     * from the namespace 1.1 rec     * [4] NCName ::= NCNameStartChar NCNameChar*     */    /**     * Check to see if a string is a valid NCName according to [4]     * from the XML Namespaces 1.1 Recommendation     *     * @param ncName string to check     * @return true if name is a valid NCName     */    public static boolean isXML11ValidNCName(String ncName) {        int length = ncName.length();        if (length == 0)            return false;        int i = 1;        char ch = ncName.charAt(0);        if( !isXML11NCNameStart(ch) ) {            if ( length > 1 && isXML11NameHighSurrogate(ch) ) {                char ch2 = ncName.charAt(1);                if ( !XMLChar.isLowSurrogate(ch2) ||                      !isXML11NCNameStart(XMLChar.supplemental(ch, ch2)) ) {                    return false;                }                i = 2;            }            else {                return false;            }        }        while (i < length) {            ch = ncName.charAt(i);            if ( !isXML11NCName(ch) ) {                if ( ++i < length && isXML11NameHighSurrogate(ch) ) {                    char ch2 = ncName.charAt(i);                    if ( !XMLChar.isLowSurrogate(ch2) ||                          !isXML11NCName(XMLChar.supplemental(ch, ch2)) ) {                        return false;                    }                }                else {                    return false;                }            }            ++i;        }        return true;    } // isXML11ValidNCName(String):boolean    /*     * [7] Nmtoken ::= (NameChar)+     */    /**     * Check to see if a string is a valid Nmtoken according to [7]     * in the XML 1.1 Recommendation     *     * @param nmtoken string to check     * @return true if nmtoken is a valid Nmtoken      */    public static boolean isXML11ValidNmtoken(String nmtoken) {        int length = nmtoken.length();        if (length == 0)            return false;        for (int i = 0; i < length; ++i ) {            char ch = nmtoken.charAt(i);            if( !isXML11Name(ch) ) {                if ( ++i < length && isXML11NameHighSurrogate(ch) ) {                    char ch2 = nmtoken.charAt(i);                    if ( !XMLChar.isLowSurrogate(ch2) ||                          !isXML11Name(XMLChar.supplemental(ch, ch2)) ) {                        return false;                    }                }                else {                    return false;                }            }        }        return true;    } // isXML11ValidName(String):boolean} // class XML11Char

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?