org.netbeans.lib.xml.lexer.UnicodeClasses Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.netbeans.lib.xml.lexer;
/**
* Set of methods classifing class of character according to XML specs.
*
* Code is copied from TAX library!
*
* @author Libor Kramolis
* @author Petr Kuzel
*/
public class UnicodeClasses {
/** Contains static methods only */
UnicodeClasses () {
}
//
// generated from XML recomendation
//
/**
* @see http://www.w3.org/TR/REC-xml#NT-Char
*/
public static boolean isXMLChar (int c) {
// #x0009
if ( c == 0x0009 ) return true;
// #x000a
if ( c == 0x000a ) return true;
// #x000d
if ( c == 0x000d ) return true;
// [ #x0020 - #xd7ff ]
if ( c < 0x0020 ) return false;
if ( c <= 0xd7ff ) return true;
// [ #xe000 - #xfffd ]
if ( c < 0xe000 ) return false;
if ( c <= 0xfffd ) return true;
// [ #x10000 - #x10ffff ]
if ( c < 0x10000 ) return false;
if ( c <= 0x10ffff ) return true;
return false;
}
/**
* @see http://www.w3.org/TR/REC-xml#NT-NameChar
*/
public static boolean isXMLNameChar (int c) {
return ( ( isXMLLetter (c) )
|| ( isXMLDigit (c) )
|| ( c == '.' )
|| ( c == '-' )
|| ( c == '_' )
|| ( c == ':' )
|| ( isXMLCombiningChar (c) )
|| ( isXMLExtender (c) ) );
}
/**
* @see http://www.w3.org/TR/REC-xml#NT-Name
*/
public static boolean isXMLNameStartChar (int c) {
return ( ( isXMLLetter (c) )
|| ( c == '_' )
|| ( c ==':' ) );
}
/**
* @see http://www.w3.org/TR/REC-xml#NT-Letter
*/
public static boolean isXMLLetter (int c) {
return ( isXMLBaseChar (c) || isXMLIdeographic (c) );
}
/**
* @see http://www.w3.org/TR/REC-xml#NT-BaseChar
*/
public static boolean isXMLBaseChar (int c) {
// [ #x0041 - #x005a ]
if ( c < 0x0041 ) return false;
if ( c <= 0x005a ) return true;
// [ #x0061 - #x007a ]
if ( c < 0x0061 ) return false;
if ( c <= 0x007a ) return true;
// [ #x00c0 - #x00d6 ]
if ( c < 0x00c0 ) return false;
if ( c <= 0x00d6 ) return true;
// [ #x00d8 - #x00f6 ]
if ( c < 0x00d8 ) return false;
if ( c <= 0x00f6 ) return true;
// [ #x00f8 - #x00ff ]
if ( c < 0x00f8 ) return false;
if ( c <= 0x00ff ) return true;
// [ #x0100 - #x0131 ]
if ( c < 0x0100 ) return false;
if ( c <= 0x0131 ) return true;
// [ #x0134 - #x013e ]
if ( c < 0x0134 ) return false;
if ( c <= 0x013e ) return true;
// [ #x0141 - #x0148 ]
if ( c < 0x0141 ) return false;
if ( c <= 0x0148 ) return true;
// [ #x014a - #x017e ]
if ( c < 0x014a ) return false;
if ( c <= 0x017e ) return true;
// [ #x0180 - #x01c3 ]
if ( c < 0x0180 ) return false;
if ( c <= 0x01c3 ) return true;
// [ #x01cd - #x01f0 ]
if ( c < 0x01cd ) return false;
if ( c <= 0x01f0 ) return true;
// [ #x01f4 - #x01f5 ]
if ( c < 0x01f4 ) return false;
if ( c <= 0x01f5 ) return true;
// [ #x01fa - #x0217 ]
if ( c < 0x01fa ) return false;
if ( c <= 0x0217 ) return true;
// [ #x0250 - #x02a8 ]
if ( c < 0x0250 ) return false;
if ( c <= 0x02a8 ) return true;
// [ #x02bb - #x02c1 ]
if ( c < 0x02bb ) return false;
if ( c <= 0x02c1 ) return true;
// #x0386
if ( c == 0x0386 ) return true;
// [ #x0388 - #x038a ]
if ( c < 0x0388 ) return false;
if ( c <= 0x038a ) return true;
// #x038c
if ( c == 0x038c ) return true;
// [ #x038e - #x03a1 ]
if ( c < 0x038e ) return false;
if ( c <= 0x03a1 ) return true;
// [ #x03a3 - #x03ce ]
if ( c < 0x03a3 ) return false;
if ( c <= 0x03ce ) return true;
// [ #x03d0 - #x03d6 ]
if ( c < 0x03d0 ) return false;
if ( c <= 0x03d6 ) return true;
// #x03da
if ( c == 0x03da ) return true;
// #x03dc
if ( c == 0x03dc ) return true;
// #x03de
if ( c == 0x03de ) return true;
// #x03e0
if ( c == 0x03e0 ) return true;
// [ #x03e2 - #x03f3 ]
if ( c < 0x03e2 ) return false;
if ( c <= 0x03f3 ) return true;
// [ #x0401 - #x040c ]
if ( c < 0x0401 ) return false;
if ( c <= 0x040c ) return true;
// [ #x040e - #x044f ]
if ( c < 0x040e ) return false;
if ( c <= 0x044f ) return true;
// [ #x0451 - #x045c ]
if ( c < 0x0451 ) return false;
if ( c <= 0x045c ) return true;
// [ #x045e - #x0481 ]
if ( c < 0x045e ) return false;
if ( c <= 0x0481 ) return true;
// [ #x0490 - #x04c4 ]
if ( c < 0x0490 ) return false;
if ( c <= 0x04c4 ) return true;
// [ #x04c7 - #x04c8 ]
if ( c < 0x04c7 ) return false;
if ( c <= 0x04c8 ) return true;
// [ #x04cb - #x04cc ]
if ( c < 0x04cb ) return false;
if ( c <= 0x04cc ) return true;
// [ #x04d0 - #x04eb ]
if ( c < 0x04d0 ) return false;
if ( c <= 0x04eb ) return true;
// [ #x04ee - #x04f5 ]
if ( c < 0x04ee ) return false;
if ( c <= 0x04f5 ) return true;
// [ #x04f8 - #x04f9 ]
if ( c < 0x04f8 ) return false;
if ( c <= 0x04f9 ) return true;
// [ #x0531 - #x0556 ]
if ( c < 0x0531 ) return false;
if ( c <= 0x0556 ) return true;
// #x0559
if ( c == 0x0559 ) return true;
// [ #x0561 - #x0586 ]
if ( c < 0x0561 ) return false;
if ( c <= 0x0586 ) return true;
// [ #x05d0 - #x05ea ]
if ( c < 0x05d0 ) return false;
if ( c <= 0x05ea ) return true;
// [ #x05f0 - #x05f2 ]
if ( c < 0x05f0 ) return false;
if ( c <= 0x05f2 ) return true;
// [ #x0621 - #x063a ]
if ( c < 0x0621 ) return false;
if ( c <= 0x063a ) return true;
// [ #x0641 - #x064a ]
if ( c < 0x0641 ) return false;
if ( c <= 0x064a ) return true;
// [ #x0671 - #x06b7 ]
if ( c < 0x0671 ) return false;
if ( c <= 0x06b7 ) return true;
// [ #x06ba - #x06be ]
if ( c < 0x06ba ) return false;
if ( c <= 0x06be ) return true;
// [ #x06c0 - #x06ce ]
if ( c < 0x06c0 ) return false;
if ( c <= 0x06ce ) return true;
// [ #x06d0 - #x06d3 ]
if ( c < 0x06d0 ) return false;
if ( c <= 0x06d3 ) return true;
// #x06d5
if ( c == 0x06d5 ) return true;
// [ #x06e5 - #x06e6 ]
if ( c < 0x06e5 ) return false;
if ( c <= 0x06e6 ) return true;
// [ #x0905 - #x0939 ]
if ( c < 0x0905 ) return false;
if ( c <= 0x0939 ) return true;
// #x093d
if ( c == 0x093d ) return true;
// [ #x0958 - #x0961 ]
if ( c < 0x0958 ) return false;
if ( c <= 0x0961 ) return true;
// [ #x0985 - #x098c ]
if ( c < 0x0985 ) return false;
if ( c <= 0x098c ) return true;
// [ #x098f - #x0990 ]
if ( c < 0x098f ) return false;
if ( c <= 0x0990 ) return true;
// [ #x0993 - #x09a8 ]
if ( c < 0x0993 ) return false;
if ( c <= 0x09a8 ) return true;
// [ #x09aa - #x09b0 ]
if ( c < 0x09aa ) return false;
if ( c <= 0x09b0 ) return true;
// #x09b2
if ( c == 0x09b2 ) return true;
// [ #x09b6 - #x09b9 ]
if ( c < 0x09b6 ) return false;
if ( c <= 0x09b9 ) return true;
// [ #x09dc - #x09dd ]
if ( c < 0x09dc ) return false;
if ( c <= 0x09dd ) return true;
// [ #x09df - #x09e1 ]
if ( c < 0x09df ) return false;
if ( c <= 0x09e1 ) return true;
// [ #x09f0 - #x09f1 ]
if ( c < 0x09f0 ) return false;
if ( c <= 0x09f1 ) return true;
// [ #x0a05 - #x0a0a ]
if ( c < 0x0a05 ) return false;
if ( c <= 0x0a0a ) return true;
// [ #x0a0f - #x0a10 ]
if ( c < 0x0a0f ) return false;
if ( c <= 0x0a10 ) return true;
// [ #x0a13 - #x0a28 ]
if ( c < 0x0a13 ) return false;
if ( c <= 0x0a28 ) return true;
// [ #x0a2a - #x0a30 ]
if ( c < 0x0a2a ) return false;
if ( c <= 0x0a30 ) return true;
// [ #x0a32 - #x0a33 ]
if ( c < 0x0a32 ) return false;
if ( c <= 0x0a33 ) return true;
// [ #x0a35 - #x0a36 ]
if ( c < 0x0a35 ) return false;
if ( c <= 0x0a36 ) return true;
// [ #x0a38 - #x0a39 ]
if ( c < 0x0a38 ) return false;
if ( c <= 0x0a39 ) return true;
// [ #x0a59 - #x0a5c ]
if ( c < 0x0a59 ) return false;
if ( c <= 0x0a5c ) return true;
// #x0a5e
if ( c == 0x0a5e ) return true;
// [ #x0a72 - #x0a74 ]
if ( c < 0x0a72 ) return false;
if ( c <= 0x0a74 ) return true;
// [ #x0a85 - #x0a8b ]
if ( c < 0x0a85 ) return false;
if ( c <= 0x0a8b ) return true;
// #x0a8d
if ( c == 0x0a8d ) return true;
// [ #x0a8f - #x0a91 ]
if ( c < 0x0a8f ) return false;
if ( c <= 0x0a91 ) return true;
// [ #x0a93 - #x0aa8 ]
if ( c < 0x0a93 ) return false;
if ( c <= 0x0aa8 ) return true;
// [ #x0aaa - #x0ab0 ]
if ( c < 0x0aaa ) return false;
if ( c <= 0x0ab0 ) return true;
// [ #x0ab2 - #x0ab3 ]
if ( c < 0x0ab2 ) return false;
if ( c <= 0x0ab3 ) return true;
// [ #x0ab5 - #x0ab9 ]
if ( c < 0x0ab5 ) return false;
if ( c <= 0x0ab9 ) return true;
// #x0abd
if ( c == 0x0abd ) return true;
// #x0ae0
if ( c == 0x0ae0 ) return true;
// [ #x0b05 - #x0b0c ]
if ( c < 0x0b05 ) return false;
if ( c <= 0x0b0c ) return true;
// [ #x0b0f - #x0b10 ]
if ( c < 0x0b0f ) return false;
if ( c <= 0x0b10 ) return true;
// [ #x0b13 - #x0b28 ]
if ( c < 0x0b13 ) return false;
if ( c <= 0x0b28 ) return true;
// [ #x0b2a - #x0b30 ]
if ( c < 0x0b2a ) return false;
if ( c <= 0x0b30 ) return true;
// [ #x0b32 - #x0b33 ]
if ( c < 0x0b32 ) return false;
if ( c <= 0x0b33 ) return true;
// [ #x0b36 - #x0b39 ]
if ( c < 0x0b36 ) return false;
if ( c <= 0x0b39 ) return true;
// #x0b3d
if ( c == 0x0b3d ) return true;
// [ #x0b5c - #x0b5d ]
if ( c < 0x0b5c ) return false;
if ( c <= 0x0b5d ) return true;
// [ #x0b5f - #x0b61 ]
if ( c < 0x0b5f ) return false;
if ( c <= 0x0b61 ) return true;
// [ #x0b85 - #x0b8a ]
if ( c < 0x0b85 ) return false;
if ( c <= 0x0b8a ) return true;
// [ #x0b8e - #x0b90 ]
if ( c < 0x0b8e ) return false;
if ( c <= 0x0b90 ) return true;
// [ #x0b92 - #x0b95 ]
if ( c < 0x0b92 ) return false;
if ( c <= 0x0b95 ) return true;
// [ #x0b99 - #x0b9a ]
if ( c < 0x0b99 ) return false;
if ( c <= 0x0b9a ) return true;
// #x0b9c
if ( c == 0x0b9c ) return true;
// [ #x0b9e - #x0b9f ]
if ( c < 0x0b9e ) return false;
if ( c <= 0x0b9f ) return true;
// [ #x0ba3 - #x0ba4 ]
if ( c < 0x0ba3 ) return false;
if ( c <= 0x0ba4 ) return true;
// [ #x0ba8 - #x0baa ]
if ( c < 0x0ba8 ) return false;
if ( c <= 0x0baa ) return true;
// [ #x0bae - #x0bb5 ]
if ( c < 0x0bae ) return false;
if ( c <= 0x0bb5 ) return true;
// [ #x0bb7 - #x0bb9 ]
if ( c < 0x0bb7 ) return false;
if ( c <= 0x0bb9 ) return true;
// [ #x0c05 - #x0c0c ]
if ( c < 0x0c05 ) return false;
if ( c <= 0x0c0c ) return true;
// [ #x0c0e - #x0c10 ]
if ( c < 0x0c0e ) return false;
if ( c <= 0x0c10 ) return true;
// [ #x0c12 - #x0c28 ]
if ( c < 0x0c12 ) return false;
if ( c <= 0x0c28 ) return true;
// [ #x0c2a - #x0c33 ]
if ( c < 0x0c2a ) return false;
if ( c <= 0x0c33 ) return true;
// [ #x0c35 - #x0c39 ]
if ( c < 0x0c35 ) return false;
if ( c <= 0x0c39 ) return true;
// [ #x0c60 - #x0c61 ]
if ( c < 0x0c60 ) return false;
if ( c <= 0x0c61 ) return true;
// [ #x0c85 - #x0c8c ]
if ( c < 0x0c85 ) return false;
if ( c <= 0x0c8c ) return true;
// [ #x0c8e - #x0c90 ]
if ( c < 0x0c8e ) return false;
if ( c <= 0x0c90 ) return true;
// [ #x0c92 - #x0ca8 ]
if ( c < 0x0c92 ) return false;
if ( c <= 0x0ca8 ) return true;
// [ #x0caa - #x0cb3 ]
if ( c < 0x0caa ) return false;
if ( c <= 0x0cb3 ) return true;
// [ #x0cb5 - #x0cb9 ]
if ( c < 0x0cb5 ) return false;
if ( c <= 0x0cb9 ) return true;
// #x0cde
if ( c == 0x0cde ) return true;
// [ #x0ce0 - #x0ce1 ]
if ( c < 0x0ce0 ) return false;
if ( c <= 0x0ce1 ) return true;
// [ #x0d05 - #x0d0c ]
if ( c < 0x0d05 ) return false;
if ( c <= 0x0d0c ) return true;
// [ #x0d0e - #x0d10 ]
if ( c < 0x0d0e ) return false;
if ( c <= 0x0d10 ) return true;
// [ #x0d12 - #x0d28 ]
if ( c < 0x0d12 ) return false;
if ( c <= 0x0d28 ) return true;
// [ #x0d2a - #x0d39 ]
if ( c < 0x0d2a ) return false;
if ( c <= 0x0d39 ) return true;
// [ #x0d60 - #x0d61 ]
if ( c < 0x0d60 ) return false;
if ( c <= 0x0d61 ) return true;
// [ #x0e01 - #x0e2e ]
if ( c < 0x0e01 ) return false;
if ( c <= 0x0e2e ) return true;
// #x0e30
if ( c == 0x0e30 ) return true;
// [ #x0e32 - #x0e33 ]
if ( c < 0x0e32 ) return false;
if ( c <= 0x0e33 ) return true;
// [ #x0e40 - #x0e45 ]
if ( c < 0x0e40 ) return false;
if ( c <= 0x0e45 ) return true;
// [ #x0e81 - #x0e82 ]
if ( c < 0x0e81 ) return false;
if ( c <= 0x0e82 ) return true;
// #x0e84
if ( c == 0x0e84 ) return true;
// [ #x0e87 - #x0e88 ]
if ( c < 0x0e87 ) return false;
if ( c <= 0x0e88 ) return true;
// #x0e8a
if ( c == 0x0e8a ) return true;
// #x0e8d
if ( c == 0x0e8d ) return true;
// [ #x0e94 - #x0e97 ]
if ( c < 0x0e94 ) return false;
if ( c <= 0x0e97 ) return true;
// [ #x0e99 - #x0e9f ]
if ( c < 0x0e99 ) return false;
if ( c <= 0x0e9f ) return true;
// [ #x0ea1 - #x0ea3 ]
if ( c < 0x0ea1 ) return false;
if ( c <= 0x0ea3 ) return true;
// #x0ea5
if ( c == 0x0ea5 ) return true;
// #x0ea7
if ( c == 0x0ea7 ) return true;
// [ #x0eaa - #x0eab ]
if ( c < 0x0eaa ) return false;
if ( c <= 0x0eab ) return true;
// [ #x0ead - #x0eae ]
if ( c < 0x0ead ) return false;
if ( c <= 0x0eae ) return true;
// #x0eb0
if ( c == 0x0eb0 ) return true;
// [ #x0eb2 - #x0eb3 ]
if ( c < 0x0eb2 ) return false;
if ( c <= 0x0eb3 ) return true;
// #x0ebd
if ( c == 0x0ebd ) return true;
// [ #x0ec0 - #x0ec4 ]
if ( c < 0x0ec0 ) return false;
if ( c <= 0x0ec4 ) return true;
// [ #x0f40 - #x0f47 ]
if ( c < 0x0f40 ) return false;
if ( c <= 0x0f47 ) return true;
// [ #x0f49 - #x0f69 ]
if ( c < 0x0f49 ) return false;
if ( c <= 0x0f69 ) return true;
// [ #x10a0 - #x10c5 ]
if ( c < 0x10a0 ) return false;
if ( c <= 0x10c5 ) return true;
// [ #x10d0 - #x10f6 ]
if ( c < 0x10d0 ) return false;
if ( c <= 0x10f6 ) return true;
// #x1100
if ( c == 0x1100 ) return true;
// [ #x1102 - #x1103 ]
if ( c < 0x1102 ) return false;
if ( c <= 0x1103 ) return true;
// [ #x1105 - #x1107 ]
if ( c < 0x1105 ) return false;
if ( c <= 0x1107 ) return true;
// #x1109
if ( c == 0x1109 ) return true;
// [ #x110b - #x110c ]
if ( c < 0x110b ) return false;
if ( c <= 0x110c ) return true;
// [ #x110e - #x1112 ]
if ( c < 0x110e ) return false;
if ( c <= 0x1112 ) return true;
// #x113c
if ( c == 0x113c ) return true;
// #x113e
if ( c == 0x113e ) return true;
// #x1140
if ( c == 0x1140 ) return true;
// #x114c
if ( c == 0x114c ) return true;
// #x114e
if ( c == 0x114e ) return true;
// #x1150
if ( c == 0x1150 ) return true;
// [ #x1154 - #x1155 ]
if ( c < 0x1154 ) return false;
if ( c <= 0x1155 ) return true;
// #x1159
if ( c == 0x1159 ) return true;
// [ #x115f - #x1161 ]
if ( c < 0x115f ) return false;
if ( c <= 0x1161 ) return true;
// #x1163
if ( c == 0x1163 ) return true;
// #x1165
if ( c == 0x1165 ) return true;
// #x1167
if ( c == 0x1167 ) return true;
// #x1169
if ( c == 0x1169 ) return true;
// [ #x116d - #x116e ]
if ( c < 0x116d ) return false;
if ( c <= 0x116e ) return true;
// [ #x1172 - #x1173 ]
if ( c < 0x1172 ) return false;
if ( c <= 0x1173 ) return true;
// #x1175
if ( c == 0x1175 ) return true;
// #x119e
if ( c == 0x119e ) return true;
// #x11a8
if ( c == 0x11a8 ) return true;
// #x11ab
if ( c == 0x11ab ) return true;
// [ #x11ae - #x11af ]
if ( c < 0x11ae ) return false;
if ( c <= 0x11af ) return true;
// [ #x11b7 - #x11b8 ]
if ( c < 0x11b7 ) return false;
if ( c <= 0x11b8 ) return true;
// #x11ba
if ( c == 0x11ba ) return true;
// [ #x11bc - #x11c2 ]
if ( c < 0x11bc ) return false;
if ( c <= 0x11c2 ) return true;
// #x11eb
if ( c == 0x11eb ) return true;
// #x11f0
if ( c == 0x11f0 ) return true;
// #x11f9
if ( c == 0x11f9 ) return true;
// [ #x1e00 - #x1e9b ]
if ( c < 0x1e00 ) return false;
if ( c <= 0x1e9b ) return true;
// [ #x1ea0 - #x1ef9 ]
if ( c < 0x1ea0 ) return false;
if ( c <= 0x1ef9 ) return true;
// [ #x1f00 - #x1f15 ]
if ( c < 0x1f00 ) return false;
if ( c <= 0x1f15 ) return true;
// [ #x1f18 - #x1f1d ]
if ( c < 0x1f18 ) return false;
if ( c <= 0x1f1d ) return true;
// [ #x1f20 - #x1f45 ]
if ( c < 0x1f20 ) return false;
if ( c <= 0x1f45 ) return true;
// [ #x1f48 - #x1f4d ]
if ( c < 0x1f48 ) return false;
if ( c <= 0x1f4d ) return true;
// [ #x1f50 - #x1f57 ]
if ( c < 0x1f50 ) return false;
if ( c <= 0x1f57 ) return true;
// #x1f59
if ( c == 0x1f59 ) return true;
// #x1f5b
if ( c == 0x1f5b ) return true;
// #x1f5d
if ( c == 0x1f5d ) return true;
// [ #x1f5f - #x1f7d ]
if ( c < 0x1f5f ) return false;
if ( c <= 0x1f7d ) return true;
// [ #x1f80 - #x1fb4 ]
if ( c < 0x1f80 ) return false;
if ( c <= 0x1fb4 ) return true;
// [ #x1fb6 - #x1fbc ]
if ( c < 0x1fb6 ) return false;
if ( c <= 0x1fbc ) return true;
// #x1fbe
if ( c == 0x1fbe ) return true;
// [ #x1fc2 - #x1fc4 ]
if ( c < 0x1fc2 ) return false;
if ( c <= 0x1fc4 ) return true;
// [ #x1fc6 - #x1fcc ]
if ( c < 0x1fc6 ) return false;
if ( c <= 0x1fcc ) return true;
// [ #x1fd0 - #x1fd3 ]
if ( c < 0x1fd0 ) return false;
if ( c <= 0x1fd3 ) return true;
// [ #x1fd6 - #x1fdb ]
if ( c < 0x1fd6 ) return false;
if ( c <= 0x1fdb ) return true;
// [ #x1fe0 - #x1fec ]
if ( c < 0x1fe0 ) return false;
if ( c <= 0x1fec ) return true;
// [ #x1ff2 - #x1ff4 ]
if ( c < 0x1ff2 ) return false;
if ( c <= 0x1ff4 ) return true;
// [ #x1ff6 - #x1ffc ]
if ( c < 0x1ff6 ) return false;
if ( c <= 0x1ffc ) return true;
// #x2126
if ( c == 0x2126 ) return true;
// [ #x212a - #x212b ]
if ( c < 0x212a ) return false;
if ( c <= 0x212b ) return true;
// #x212e
if ( c == 0x212e ) return true;
// [ #x2180 - #x2182 ]
if ( c < 0x2180 ) return false;
if ( c <= 0x2182 ) return true;
// [ #x3041 - #x3094 ]
if ( c < 0x3041 ) return false;
if ( c <= 0x3094 ) return true;
// [ #x30a1 - #x30fa ]
if ( c < 0x30a1 ) return false;
if ( c <= 0x30fa ) return true;
// [ #x3105 - #x312c ]
if ( c < 0x3105 ) return false;
if ( c <= 0x312c ) return true;
// [ #xac00 - #xd7a3 ]
if ( c < 0xac00 ) return false;
if ( c <= 0xd7a3 ) return true;
return false;
}
/**
* @see http://www.w3.org/TR/REC-xml#NT-Ideographic
*/
public static boolean isXMLIdeographic (int c) {
// #x3007
if ( c == 0x3007 ) return true;
// [ #x3021 - #x3029 ]
if ( c < 0x3021 ) return false;
if ( c <= 0x3029 ) return true;
// [ #x4e00 - #x9fa5 ]
if ( c < 0x4e00 ) return false;
if ( c <= 0x9fa5 ) return true;
return false;
}
/**
* @see http://www.w3.org/TR/REC-xml#NT-CombiningChar
*/
public static boolean isXMLCombiningChar (int c) {
// [ #x0300 - #x0345 ]
if ( c < 0x0300 ) return false;
if ( c <= 0x0345 ) return true;
// [ #x0360 - #x0361 ]
if ( c < 0x0360 ) return false;
if ( c <= 0x0361 ) return true;
// [ #x0483 - #x0486 ]
if ( c < 0x0483 ) return false;
if ( c <= 0x0486 ) return true;
// [ #x0591 - #x05a1 ]
if ( c < 0x0591 ) return false;
if ( c <= 0x05a1 ) return true;
// [ #x05a3 - #x05b9 ]
if ( c < 0x05a3 ) return false;
if ( c <= 0x05b9 ) return true;
// [ #x05bb - #x05bd ]
if ( c < 0x05bb ) return false;
if ( c <= 0x05bd ) return true;
// #x05bf
if ( c == 0x05bf ) return true;
// [ #x05c1 - #x05c2 ]
if ( c < 0x05c1 ) return false;
if ( c <= 0x05c2 ) return true;
// #x05c4
if ( c == 0x05c4 ) return true;
// [ #x064b - #x0652 ]
if ( c < 0x064b ) return false;
if ( c <= 0x0652 ) return true;
// #x0670
if ( c == 0x0670 ) return true;
// [ #x06d6 - #x06dc ]
if ( c < 0x06d6 ) return false;
if ( c <= 0x06dc ) return true;
// [ #x06dd - #x06df ]
if ( c < 0x06dd ) return false;
if ( c <= 0x06df ) return true;
// [ #x06e0 - #x06e4 ]
if ( c < 0x06e0 ) return false;
if ( c <= 0x06e4 ) return true;
// [ #x06e7 - #x06e8 ]
if ( c < 0x06e7 ) return false;
if ( c <= 0x06e8 ) return true;
// [ #x06ea - #x06ed ]
if ( c < 0x06ea ) return false;
if ( c <= 0x06ed ) return true;
// [ #x0901 - #x0903 ]
if ( c < 0x0901 ) return false;
if ( c <= 0x0903 ) return true;
// #x093c
if ( c == 0x093c ) return true;
// [ #x093e - #x094c ]
if ( c < 0x093e ) return false;
if ( c <= 0x094c ) return true;
// #x094d
if ( c == 0x094d ) return true;
// [ #x0951 - #x0954 ]
if ( c < 0x0951 ) return false;
if ( c <= 0x0954 ) return true;
// [ #x0962 - #x0963 ]
if ( c < 0x0962 ) return false;
if ( c <= 0x0963 ) return true;
// [ #x0981 - #x0983 ]
if ( c < 0x0981 ) return false;
if ( c <= 0x0983 ) return true;
// #x09bc
if ( c == 0x09bc ) return true;
// #x09be
if ( c == 0x09be ) return true;
// #x09bf
if ( c == 0x09bf ) return true;
// [ #x09c0 - #x09c4 ]
if ( c < 0x09c0 ) return false;
if ( c <= 0x09c4 ) return true;
// [ #x09c7 - #x09c8 ]
if ( c < 0x09c7 ) return false;
if ( c <= 0x09c8 ) return true;
// [ #x09cb - #x09cd ]
if ( c < 0x09cb ) return false;
if ( c <= 0x09cd ) return true;
// #x09d7
if ( c == 0x09d7 ) return true;
// [ #x09e2 - #x09e3 ]
if ( c < 0x09e2 ) return false;
if ( c <= 0x09e3 ) return true;
// #x0a02
if ( c == 0x0a02 ) return true;
// #x0a3c
if ( c == 0x0a3c ) return true;
// #x0a3e
if ( c == 0x0a3e ) return true;
// #x0a3f
if ( c == 0x0a3f ) return true;
// [ #x0a40 - #x0a42 ]
if ( c < 0x0a40 ) return false;
if ( c <= 0x0a42 ) return true;
// [ #x0a47 - #x0a48 ]
if ( c < 0x0a47 ) return false;
if ( c <= 0x0a48 ) return true;
// [ #x0a4b - #x0a4d ]
if ( c < 0x0a4b ) return false;
if ( c <= 0x0a4d ) return true;
// [ #x0a70 - #x0a71 ]
if ( c < 0x0a70 ) return false;
if ( c <= 0x0a71 ) return true;
// [ #x0a81 - #x0a83 ]
if ( c < 0x0a81 ) return false;
if ( c <= 0x0a83 ) return true;
// #x0abc
if ( c == 0x0abc ) return true;
// [ #x0abe - #x0ac5 ]
if ( c < 0x0abe ) return false;
if ( c <= 0x0ac5 ) return true;
// [ #x0ac7 - #x0ac9 ]
if ( c < 0x0ac7 ) return false;
if ( c <= 0x0ac9 ) return true;
// [ #x0acb - #x0acd ]
if ( c < 0x0acb ) return false;
if ( c <= 0x0acd ) return true;
// [ #x0b01 - #x0b03 ]
if ( c < 0x0b01 ) return false;
if ( c <= 0x0b03 ) return true;
// #x0b3c
if ( c == 0x0b3c ) return true;
// [ #x0b3e - #x0b43 ]
if ( c < 0x0b3e ) return false;
if ( c <= 0x0b43 ) return true;
// [ #x0b47 - #x0b48 ]
if ( c < 0x0b47 ) return false;
if ( c <= 0x0b48 ) return true;
// [ #x0b4b - #x0b4d ]
if ( c < 0x0b4b ) return false;
if ( c <= 0x0b4d ) return true;
// [ #x0b56 - #x0b57 ]
if ( c < 0x0b56 ) return false;
if ( c <= 0x0b57 ) return true;
// [ #x0b82 - #x0b83 ]
if ( c < 0x0b82 ) return false;
if ( c <= 0x0b83 ) return true;
// [ #x0bbe - #x0bc2 ]
if ( c < 0x0bbe ) return false;
if ( c <= 0x0bc2 ) return true;
// [ #x0bc6 - #x0bc8 ]
if ( c < 0x0bc6 ) return false;
if ( c <= 0x0bc8 ) return true;
// [ #x0bca - #x0bcd ]
if ( c < 0x0bca ) return false;
if ( c <= 0x0bcd ) return true;
// #x0bd7
if ( c == 0x0bd7 ) return true;
// [ #x0c01 - #x0c03 ]
if ( c < 0x0c01 ) return false;
if ( c <= 0x0c03 ) return true;
// [ #x0c3e - #x0c44 ]
if ( c < 0x0c3e ) return false;
if ( c <= 0x0c44 ) return true;
// [ #x0c46 - #x0c48 ]
if ( c < 0x0c46 ) return false;
if ( c <= 0x0c48 ) return true;
// [ #x0c4a - #x0c4d ]
if ( c < 0x0c4a ) return false;
if ( c <= 0x0c4d ) return true;
// [ #x0c55 - #x0c56 ]
if ( c < 0x0c55 ) return false;
if ( c <= 0x0c56 ) return true;
// [ #x0c82 - #x0c83 ]
if ( c < 0x0c82 ) return false;
if ( c <= 0x0c83 ) return true;
// [ #x0cbe - #x0cc4 ]
if ( c < 0x0cbe ) return false;
if ( c <= 0x0cc4 ) return true;
// [ #x0cc6 - #x0cc8 ]
if ( c < 0x0cc6 ) return false;
if ( c <= 0x0cc8 ) return true;
// [ #x0cca - #x0ccd ]
if ( c < 0x0cca ) return false;
if ( c <= 0x0ccd ) return true;
// [ #x0cd5 - #x0cd6 ]
if ( c < 0x0cd5 ) return false;
if ( c <= 0x0cd6 ) return true;
// [ #x0d02 - #x0d03 ]
if ( c < 0x0d02 ) return false;
if ( c <= 0x0d03 ) return true;
// [ #x0d3e - #x0d43 ]
if ( c < 0x0d3e ) return false;
if ( c <= 0x0d43 ) return true;
// [ #x0d46 - #x0d48 ]
if ( c < 0x0d46 ) return false;
if ( c <= 0x0d48 ) return true;
// [ #x0d4a - #x0d4d ]
if ( c < 0x0d4a ) return false;
if ( c <= 0x0d4d ) return true;
// #x0d57
if ( c == 0x0d57 ) return true;
// #x0e31
if ( c == 0x0e31 ) return true;
// [ #x0e34 - #x0e3a ]
if ( c < 0x0e34 ) return false;
if ( c <= 0x0e3a ) return true;
// [ #x0e47 - #x0e4e ]
if ( c < 0x0e47 ) return false;
if ( c <= 0x0e4e ) return true;
// #x0eb1
if ( c == 0x0eb1 ) return true;
// [ #x0eb4 - #x0eb9 ]
if ( c < 0x0eb4 ) return false;
if ( c <= 0x0eb9 ) return true;
// [ #x0ebb - #x0ebc ]
if ( c < 0x0ebb ) return false;
if ( c <= 0x0ebc ) return true;
// [ #x0ec8 - #x0ecd ]
if ( c < 0x0ec8 ) return false;
if ( c <= 0x0ecd ) return true;
// [ #x0f18 - #x0f19 ]
if ( c < 0x0f18 ) return false;
if ( c <= 0x0f19 ) return true;
// #x0f35
if ( c == 0x0f35 ) return true;
// #x0f37
if ( c == 0x0f37 ) return true;
// #x0f39
if ( c == 0x0f39 ) return true;
// #x0f3e
if ( c == 0x0f3e ) return true;
// #x0f3f
if ( c == 0x0f3f ) return true;
// [ #x0f71 - #x0f84 ]
if ( c < 0x0f71 ) return false;
if ( c <= 0x0f84 ) return true;
// [ #x0f86 - #x0f8b ]
if ( c < 0x0f86 ) return false;
if ( c <= 0x0f8b ) return true;
// [ #x0f90 - #x0f95 ]
if ( c < 0x0f90 ) return false;
if ( c <= 0x0f95 ) return true;
// #x0f97
if ( c == 0x0f97 ) return true;
// [ #x0f99 - #x0fad ]
if ( c < 0x0f99 ) return false;
if ( c <= 0x0fad ) return true;
// [ #x0fb1 - #x0fb7 ]
if ( c < 0x0fb1 ) return false;
if ( c <= 0x0fb7 ) return true;
// #x0fb9
if ( c == 0x0fb9 ) return true;
// [ #x20d0 - #x20dc ]
if ( c < 0x20d0 ) return false;
if ( c <= 0x20dc ) return true;
// #x20e1
if ( c == 0x20e1 ) return true;
// [ #x302a - #x302f ]
if ( c < 0x302a ) return false;
if ( c <= 0x302f ) return true;
// #x3099
if ( c == 0x3099 ) return true;
// #x309a
if ( c == 0x309a ) return true;
return false;
}
/**
* @see http://www.w3.org/TR/REC-xml#NT-Digit
*/
public static boolean isXMLDigit (int c) {
// [ #x0030 - #x0039 ]
if ( c < 0x0030 ) return false;
if ( c <= 0x0039 ) return true;
// [ #x0660 - #x0669 ]
if ( c < 0x0660 ) return false;
if ( c <= 0x0669 ) return true;
// [ #x06f0 - #x06f9 ]
if ( c < 0x06f0 ) return false;
if ( c <= 0x06f9 ) return true;
// [ #x0966 - #x096f ]
if ( c < 0x0966 ) return false;
if ( c <= 0x096f ) return true;
// [ #x09e6 - #x09ef ]
if ( c < 0x09e6 ) return false;
if ( c <= 0x09ef ) return true;
// [ #x0a66 - #x0a6f ]
if ( c < 0x0a66 ) return false;
if ( c <= 0x0a6f ) return true;
// [ #x0ae6 - #x0aef ]
if ( c < 0x0ae6 ) return false;
if ( c <= 0x0aef ) return true;
// [ #x0b66 - #x0b6f ]
if ( c < 0x0b66 ) return false;
if ( c <= 0x0b6f ) return true;
// [ #x0be7 - #x0bef ]
if ( c < 0x0be7 ) return false;
if ( c <= 0x0bef ) return true;
// [ #x0c66 - #x0c6f ]
if ( c < 0x0c66 ) return false;
if ( c <= 0x0c6f ) return true;
// [ #x0ce6 - #x0cef ]
if ( c < 0x0ce6 ) return false;
if ( c <= 0x0cef ) return true;
// [ #x0d66 - #x0d6f ]
if ( c < 0x0d66 ) return false;
if ( c <= 0x0d6f ) return true;
// [ #x0e50 - #x0e59 ]
if ( c < 0x0e50 ) return false;
if ( c <= 0x0e59 ) return true;
// [ #x0ed0 - #x0ed9 ]
if ( c < 0x0ed0 ) return false;
if ( c <= 0x0ed9 ) return true;
// [ #x0f20 - #x0f29 ]
if ( c < 0x0f20 ) return false;
if ( c <= 0x0f29 ) return true;
return false;
}
/**
* @see http://www.w3.org/TR/REC-xml#NT-Extender
*/
public static boolean isXMLExtender (int c) {
// #x00b7
if ( c == 0x00b7 ) return true;
// #x02d0
if ( c == 0x02d0 ) return true;
// #x02d1
if ( c == 0x02d1 ) return true;
// #x0387
if ( c == 0x0387 ) return true;
// #x0640
if ( c == 0x0640 ) return true;
// #x0e46
if ( c == 0x0e46 ) return true;
// #x0ec6
if ( c == 0x0ec6 ) return true;
// #x3005
if ( c == 0x3005 ) return true;
// [ #x3031 - #x3035 ]
if ( c < 0x3031 ) return false;
if ( c <= 0x3035 ) return true;
// [ #x309d - #x309e ]
if ( c < 0x309d ) return false;
if ( c <= 0x309e ) return true;
// [ #x30fc - #x30fe ]
if ( c < 0x30fc ) return false;
if ( c <= 0x30fe ) return true;
return false;
}
/**
* @see http://www.w3.org/TR/REC-xml-names/#NT-NCNameChar
*/
public static boolean isXMLNCNameChar (int c) {
return ( ( isXMLLetter (c) )
|| ( isXMLDigit (c) )
|| ( c == '.' )
|| ( c == '-' )
|| ( c == '_' )
|| ( isXMLCombiningChar (c) )
|| ( isXMLExtender (c) ) );
}
/**
* @see http://www.w3.org/TR/REC-xml-names/#NT-NCName
*/
public static boolean isXMLNCNameStartChar (int c) {
return ( ( isXMLLetter (c) )
|| ( c == '_' ) );
}
/**
* @see http://www.w3.org/TR/REC-xml#NT-PubidLiteral
*/
public static boolean isXMLPubidLiteral (char c) {
// System.out.println ("[UnicodeClasses.isXMLPubidLiteral] '" + c + "' = 0x" +
// Integer.toHexString (c));
// #x0020
if ( c == ' ' ) return true;
// #x000d
if ( c == '\r' ) return true;
// #x000a
if ( c == '\n' ) return true;
// -
if ( c == '-' ) return true;
// '
if ( c == '\'' ) return true;
// (
if ( c == '(' ) return true;
// )
if ( c == ')' ) return true;
// +
if ( c == '+' ) return true;
// ,
if ( c == ',' ) return true;
// .
if ( c == '.' ) return true;
// /
if ( c == '/' ) return true;
// :
if ( c == ':' ) return true;
// =
if ( c == '=' ) return true;
// ?
if ( c == '?' ) return true;
// ;
if ( c == ';' ) return true;
// !
if ( c == '!' ) return true;
// *
if ( c == '*' ) return true;
// #
if ( c == '#' ) return true;
// @
if ( c == '@' ) return true;
// $
if ( c == '$' ) return true;
// _
if ( c == '_' ) return true;
// %
if ( c == '%' ) return true;
// [ 0 - 9 ]
if ( c < '0' ) return false;
if ( c <= '9' ) return true;
// [ A - Z ]
if ( c < 'A' ) return false;
if ( c <= 'Z' ) return true;
// [ a - z ]
if ( c < 'a' ) return false;
if ( c <= 'z' ) return true;
return false;
}
}