⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlchar.java

📁 jsr170接口的java实现。是个apache的开源项目。
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/* * Copyright 1999-2004 The Apache Software Foundation. *  * Licensed 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.apache.jackrabbit.util;// Note: This file is a copy from org.apache.xerces.util.// See http://issues.apache.org/jira/browse/JCR-367import java.util.Arrays;/** * This class defines the basic XML character properties. The data * in this class can be used to verify that a character is a valid * XML character or if the character is a space, name start, or name * character. * <p> * A series of convenience methods are supplied to ease the burden * of the developer. Because inlining the checks can improve per * character performance, the tables of character properties are * public. Using the character as an index into the <code>CHARS</code> * array and applying the appropriate mask flag (e.g. * <code>MASK_VALID</code>), yields the same results as calling the * convenience methods. There is one exception: check the comments * for the <code>isValid</code> method for details. * * @author Glenn Marcy, IBM * @author Andy Clark, IBM * @author Eric Ye, IBM * @author Arnaud  Le Hors, IBM * @author Michael Glavassevich, IBM * @author Rahul Srivastava, Sun Microsystems Inc. * * @version $Id: XMLChar.java 418445 2006-07-01 07:14:14Z jukka $ */public class XMLChar {    //    // Constants    //    /** Character flags. */    private static final byte[] CHARS = new byte[1 << 16];    /** Valid character mask. */    public static final int MASK_VALID = 0x01;    /** Space character mask. */    public static final int MASK_SPACE = 0x02;    /** Name start character mask. */    public static final int MASK_NAME_START = 0x04;    /** Name character mask. */    public static final int MASK_NAME = 0x08;    /** Pubid character mask. */    public static final int MASK_PUBID = 0x10;        /**      * Content character mask. Special characters are those that can     * be considered the start of markup, such as '&lt;' and '&amp;'.      * The various newline characters are considered special as well.     * All other valid XML characters can be considered content.     * <p>     * This is an optimization for the inner loop of character scanning.     */    public static final int MASK_CONTENT = 0x20;    /** NCName start character mask. */    public static final int MASK_NCNAME_START = 0x40;    /** NCName character mask. */    public static final int MASK_NCNAME = 0x80;    //    // Static initialization    //    static {                // Initializing the Character Flag Array        // Code generated by: XMLCharGenerator.                CHARS[9] = 35;        CHARS[10] = 19;        CHARS[13] = 19;        CHARS[32] = 51;        CHARS[33] = 49;        CHARS[34] = 33;        Arrays.fill(CHARS, 35, 38, (byte) 49 ); // Fill 3 of value (byte) 49        CHARS[38] = 1;        Arrays.fill(CHARS, 39, 45, (byte) 49 ); // Fill 6 of value (byte) 49        Arrays.fill(CHARS, 45, 47, (byte) -71 ); // Fill 2 of value (byte) -71        CHARS[47] = 49;        Arrays.fill(CHARS, 48, 58, (byte) -71 ); // Fill 10 of value (byte) -71        CHARS[58] = 61;        CHARS[59] = 49;        CHARS[60] = 1;        CHARS[61] = 49;        CHARS[62] = 33;        Arrays.fill(CHARS, 63, 65, (byte) 49 ); // Fill 2 of value (byte) 49        Arrays.fill(CHARS, 65, 91, (byte) -3 ); // Fill 26 of value (byte) -3        Arrays.fill(CHARS, 91, 93, (byte) 33 ); // Fill 2 of value (byte) 33        CHARS[93] = 1;        CHARS[94] = 33;        CHARS[95] = -3;        CHARS[96] = 33;        Arrays.fill(CHARS, 97, 123, (byte) -3 ); // Fill 26 of value (byte) -3        Arrays.fill(CHARS, 123, 183, (byte) 33 ); // Fill 60 of value (byte) 33        CHARS[183] = -87;        Arrays.fill(CHARS, 184, 192, (byte) 33 ); // Fill 8 of value (byte) 33        Arrays.fill(CHARS, 192, 215, (byte) -19 ); // Fill 23 of value (byte) -19        CHARS[215] = 33;        Arrays.fill(CHARS, 216, 247, (byte) -19 ); // Fill 31 of value (byte) -19        CHARS[247] = 33;        Arrays.fill(CHARS, 248, 306, (byte) -19 ); // Fill 58 of value (byte) -19        Arrays.fill(CHARS, 306, 308, (byte) 33 ); // Fill 2 of value (byte) 33        Arrays.fill(CHARS, 308, 319, (byte) -19 ); // Fill 11 of value (byte) -19        Arrays.fill(CHARS, 319, 321, (byte) 33 ); // Fill 2 of value (byte) 33        Arrays.fill(CHARS, 321, 329, (byte) -19 ); // Fill 8 of value (byte) -19        CHARS[329] = 33;        Arrays.fill(CHARS, 330, 383, (byte) -19 ); // Fill 53 of value (byte) -19        CHARS[383] = 33;        Arrays.fill(CHARS, 384, 452, (byte) -19 ); // Fill 68 of value (byte) -19        Arrays.fill(CHARS, 452, 461, (byte) 33 ); // Fill 9 of value (byte) 33        Arrays.fill(CHARS, 461, 497, (byte) -19 ); // Fill 36 of value (byte) -19        Arrays.fill(CHARS, 497, 500, (byte) 33 ); // Fill 3 of value (byte) 33        Arrays.fill(CHARS, 500, 502, (byte) -19 ); // Fill 2 of value (byte) -19        Arrays.fill(CHARS, 502, 506, (byte) 33 ); // Fill 4 of value (byte) 33        Arrays.fill(CHARS, 506, 536, (byte) -19 ); // Fill 30 of value (byte) -19        Arrays.fill(CHARS, 536, 592, (byte) 33 ); // Fill 56 of value (byte) 33        Arrays.fill(CHARS, 592, 681, (byte) -19 ); // Fill 89 of value (byte) -19        Arrays.fill(CHARS, 681, 699, (byte) 33 ); // Fill 18 of value (byte) 33        Arrays.fill(CHARS, 699, 706, (byte) -19 ); // Fill 7 of value (byte) -19        Arrays.fill(CHARS, 706, 720, (byte) 33 ); // Fill 14 of value (byte) 33        Arrays.fill(CHARS, 720, 722, (byte) -87 ); // Fill 2 of value (byte) -87        Arrays.fill(CHARS, 722, 768, (byte) 33 ); // Fill 46 of value (byte) 33        Arrays.fill(CHARS, 768, 838, (byte) -87 ); // Fill 70 of value (byte) -87        Arrays.fill(CHARS, 838, 864, (byte) 33 ); // Fill 26 of value (byte) 33        Arrays.fill(CHARS, 864, 866, (byte) -87 ); // Fill 2 of value (byte) -87        Arrays.fill(CHARS, 866, 902, (byte) 33 ); // Fill 36 of value (byte) 33        CHARS[902] = -19;        CHARS[903] = -87;        Arrays.fill(CHARS, 904, 907, (byte) -19 ); // Fill 3 of value (byte) -19        CHARS[907] = 33;        CHARS[908] = -19;        CHARS[909] = 33;        Arrays.fill(CHARS, 910, 930, (byte) -19 ); // Fill 20 of value (byte) -19        CHARS[930] = 33;        Arrays.fill(CHARS, 931, 975, (byte) -19 ); // Fill 44 of value (byte) -19        CHARS[975] = 33;        Arrays.fill(CHARS, 976, 983, (byte) -19 ); // Fill 7 of value (byte) -19        Arrays.fill(CHARS, 983, 986, (byte) 33 ); // Fill 3 of value (byte) 33        CHARS[986] = -19;        CHARS[987] = 33;        CHARS[988] = -19;        CHARS[989] = 33;        CHARS[990] = -19;        CHARS[991] = 33;        CHARS[992] = -19;        CHARS[993] = 33;        Arrays.fill(CHARS, 994, 1012, (byte) -19 ); // Fill 18 of value (byte) -19        Arrays.fill(CHARS, 1012, 1025, (byte) 33 ); // Fill 13 of value (byte) 33        Arrays.fill(CHARS, 1025, 1037, (byte) -19 ); // Fill 12 of value (byte) -19        CHARS[1037] = 33;        Arrays.fill(CHARS, 1038, 1104, (byte) -19 ); // Fill 66 of value (byte) -19        CHARS[1104] = 33;        Arrays.fill(CHARS, 1105, 1117, (byte) -19 ); // Fill 12 of value (byte) -19        CHARS[1117] = 33;        Arrays.fill(CHARS, 1118, 1154, (byte) -19 ); // Fill 36 of value (byte) -19        CHARS[1154] = 33;        Arrays.fill(CHARS, 1155, 1159, (byte) -87 ); // Fill 4 of value (byte) -87        Arrays.fill(CHARS, 1159, 1168, (byte) 33 ); // Fill 9 of value (byte) 33        Arrays.fill(CHARS, 1168, 1221, (byte) -19 ); // Fill 53 of value (byte) -19        Arrays.fill(CHARS, 1221, 1223, (byte) 33 ); // Fill 2 of value (byte) 33        Arrays.fill(CHARS, 1223, 1225, (byte) -19 ); // Fill 2 of value (byte) -19        Arrays.fill(CHARS, 1225, 1227, (byte) 33 ); // Fill 2 of value (byte) 33        Arrays.fill(CHARS, 1227, 1229, (byte) -19 ); // Fill 2 of value (byte) -19        Arrays.fill(CHARS, 1229, 1232, (byte) 33 ); // Fill 3 of value (byte) 33        Arrays.fill(CHARS, 1232, 1260, (byte) -19 ); // Fill 28 of value (byte) -19        Arrays.fill(CHARS, 1260, 1262, (byte) 33 ); // Fill 2 of value (byte) 33        Arrays.fill(CHARS, 1262, 1270, (byte) -19 ); // Fill 8 of value (byte) -19        Arrays.fill(CHARS, 1270, 1272, (byte) 33 ); // Fill 2 of value (byte) 33        Arrays.fill(CHARS, 1272, 1274, (byte) -19 ); // Fill 2 of value (byte) -19        Arrays.fill(CHARS, 1274, 1329, (byte) 33 ); // Fill 55 of value (byte) 33        Arrays.fill(CHARS, 1329, 1367, (byte) -19 ); // Fill 38 of value (byte) -19        Arrays.fill(CHARS, 1367, 1369, (byte) 33 ); // Fill 2 of value (byte) 33        CHARS[1369] = -19;        Arrays.fill(CHARS, 1370, 1377, (byte) 33 ); // Fill 7 of value (byte) 33        Arrays.fill(CHARS, 1377, 1415, (byte) -19 ); // Fill 38 of value (byte) -19        Arrays.fill(CHARS, 1415, 1425, (byte) 33 ); // Fill 10 of value (byte) 33        Arrays.fill(CHARS, 1425, 1442, (byte) -87 ); // Fill 17 of value (byte) -87        CHARS[1442] = 33;        Arrays.fill(CHARS, 1443, 1466, (byte) -87 ); // Fill 23 of value (byte) -87        CHARS[1466] = 33;        Arrays.fill(CHARS, 1467, 1470, (byte) -87 ); // Fill 3 of value (byte) -87        CHARS[1470] = 33;        CHARS[1471] = -87;        CHARS[1472] = 33;        Arrays.fill(CHARS, 1473, 1475, (byte) -87 ); // Fill 2 of value (byte) -87        CHARS[1475] = 33;        CHARS[1476] = -87;        Arrays.fill(CHARS, 1477, 1488, (byte) 33 ); // Fill 11 of value (byte) 33        Arrays.fill(CHARS, 1488, 1515, (byte) -19 ); // Fill 27 of value (byte) -19        Arrays.fill(CHARS, 1515, 1520, (byte) 33 ); // Fill 5 of value (byte) 33        Arrays.fill(CHARS, 1520, 1523, (byte) -19 ); // Fill 3 of value (byte) -19        Arrays.fill(CHARS, 1523, 1569, (byte) 33 ); // Fill 46 of value (byte) 33        Arrays.fill(CHARS, 1569, 1595, (byte) -19 ); // Fill 26 of value (byte) -19        Arrays.fill(CHARS, 1595, 1600, (byte) 33 ); // Fill 5 of value (byte) 33        CHARS[1600] = -87;        Arrays.fill(CHARS, 1601, 1611, (byte) -19 ); // Fill 10 of value (byte) -19        Arrays.fill(CHARS, 1611, 1619, (byte) -87 ); // Fill 8 of value (byte) -87        Arrays.fill(CHARS, 1619, 1632, (byte) 33 ); // Fill 13 of value (byte) 33        Arrays.fill(CHARS, 1632, 1642, (byte) -87 ); // Fill 10 of value (byte) -87        Arrays.fill(CHARS, 1642, 1648, (byte) 33 ); // Fill 6 of value (byte) 33        CHARS[1648] = -87;        Arrays.fill(CHARS, 1649, 1720, (byte) -19 ); // Fill 71 of value (byte) -19        Arrays.fill(CHARS, 1720, 1722, (byte) 33 ); // Fill 2 of value (byte) 33        Arrays.fill(CHARS, 1722, 1727, (byte) -19 ); // Fill 5 of value (byte) -19        CHARS[1727] = 33;        Arrays.fill(CHARS, 1728, 1743, (byte) -19 ); // Fill 15 of value (byte) -19        CHARS[1743] = 33;        Arrays.fill(CHARS, 1744, 1748, (byte) -19 ); // Fill 4 of value (byte) -19        CHARS[1748] = 33;        CHARS[1749] = -19;        Arrays.fill(CHARS, 1750, 1765, (byte) -87 ); // Fill 15 of value (byte) -87        Arrays.fill(CHARS, 1765, 1767, (byte) -19 ); // Fill 2 of value (byte) -19        Arrays.fill(CHARS, 1767, 1769, (byte) -87 ); // Fill 2 of value (byte) -87        CHARS[1769] = 33;        Arrays.fill(CHARS, 1770, 1774, (byte) -87 ); // Fill 4 of value (byte) -87        Arrays.fill(CHARS, 1774, 1776, (byte) 33 ); // Fill 2 of value (byte) 33        Arrays.fill(CHARS, 1776, 1786, (byte) -87 ); // Fill 10 of value (byte) -87        Arrays.fill(CHARS, 1786, 2305, (byte) 33 ); // Fill 519 of value (byte) 33        Arrays.fill(CHARS, 2305, 2308, (byte) -87 ); // Fill 3 of value (byte) -87        CHARS[2308] = 33;        Arrays.fill(CHARS, 2309, 2362, (byte) -19 ); // Fill 53 of value (byte) -19        Arrays.fill(CHARS, 2362, 2364, (byte) 33 ); // Fill 2 of value (byte) 33        CHARS[2364] = -87;        CHARS[2365] = -19;        Arrays.fill(CHARS, 2366, 2382, (byte) -87 ); // Fill 16 of value (byte) -87        Arrays.fill(CHARS, 2382, 2385, (byte) 33 ); // Fill 3 of value (byte) 33        Arrays.fill(CHARS, 2385, 2389, (byte) -87 ); // Fill 4 of value (byte) -87        Arrays.fill(CHARS, 2389, 2392, (byte) 33 ); // Fill 3 of value (byte) 33        Arrays.fill(CHARS, 2392, 2402, (byte) -19 ); // Fill 10 of value (byte) -19        Arrays.fill(CHARS, 2402, 2404, (byte) -87 ); // Fill 2 of value (byte) -87

⌨️ 快捷键说明

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