Source Code Cross Referenced for Verifier.java in  » Ajax » zk » org » zkoss » idom » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Ajax » zk » org.zkoss.idom 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


0001:        /* Verifier.java
0002:
0003:        {{IS_NOTE
0004:
0005:        	Purpose:
0006:        	Description:
0007:        	History:
0008:        	2001/10/21 17:03:23, Create, Tom M. Yeh.
0009:        }}IS_NOTE
0010:
0011:        Copyright (C) 2001 Potix Corporation. All Rights Reserved.
0012:
0013:        {{IS_RIGHT
0014:        	This program is distributed under GPL Version 2.0 in the hope that
0015:        	it will be useful, but WITHOUT ANY WARRANTY.
0016:        }}IS_RIGHT
0017:         */
0018:        package org.zkoss.idom;
0019:
0020:        import org.xml.sax.Locator;
0021:
0022:        /**
0023:         * The verifier to verify W3C/DOM related constraints.
0024:         *
0025:         * @author tomyeh
0026:         */
0027:        public class Verifier {
0028:            private Verifier() {
0029:            }
0030:
0031:            /**
0032:             * Checks whether an element's name is valid.
0033:             */
0034:            public static final void checkElementName(String name, Locator loc) {
0035:                if (name.indexOf(":") >= 0)
0036:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0037:                            "Element or attribute names cannot contain colons",
0038:                            loc);
0039:                checkXMLName(name, loc);
0040:            }
0041:
0042:            /**
0043:             * Checks whether an attribute's name is valid.
0044:             */
0045:            public static final void checkAttributeName(String name, Locator loc) {
0046:                // Allow xml:space and xml:lang as special cases
0047:                if (!name.equals("xml:space") && !name.equals("xml:lang"))
0048:                    checkElementName(name, loc);
0049:            }
0050:
0051:            protected static final StringBuffer appendAsHex(StringBuffer sb,
0052:                    char c) {
0053:                return sb.append('\'').append(c).append("' (0x").append(
0054:                        Integer.toHexString(c)).append(')');
0055:            }
0056:
0057:            /**
0058:             * Checks whether a text is valid.
0059:             */
0060:            public static final void checkCharacterData(String text, Locator loc) {
0061:                if (text == null)
0062:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0063:                            "A null is not a legal XML value", loc);
0064:
0065:                for (int j = 0, len = text.length(); j < len; j++)
0066:                    if (!isXMLCharacter(text.charAt(j))) {
0067:                        StringBuffer sb = new StringBuffer(40);
0068:                        throw new DOMException(
0069:                                DOMException.INVALID_CHARACTER_ERR,
0070:                                appendAsHex(sb, text.charAt(j)).append(
0071:                                        " is not a valid XML character")
0072:                                        .toString(), loc);
0073:                    }
0074:            }
0075:
0076:            /**
0077:             * Checks whether a CDATA is valid.
0078:             */
0079:            public static final void checkCData(String data, Locator loc) {
0080:                if (data.indexOf("]]>") >= 0)
0081:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0082:                            "']]>' is not allowed inside a CDATA string", loc);
0083:                checkCharacterData(data, loc);
0084:            }
0085:
0086:            /**
0087:             * Checks whether the prefix of a namespace is valid.
0088:             */
0089:            public static final void checkNamespacePrefix(String prefix,
0090:                    Locator loc) {
0091:                if (prefix == null || prefix.length() == 0)
0092:                    return; //OK: null or empty
0093:
0094:                String reason = null;
0095:                char first = prefix.charAt(0);
0096:                if (isXMLDigit(first)) {
0097:                    reason = "a number";
0098:                } else if (first == '$') {
0099:                    reason = "a dollar sign ($)";
0100:                } else if (first == '-') {
0101:                    reason = "a hyphen (-)";
0102:                } else if (first == '.') {
0103:                    reason = "a period (.)";
0104:                } else {
0105:                    final String s = prefix.toLowerCase();
0106:                    if (s.startsWith("xml") && !s.equals("xmlns"))
0107:                        reason = "\"xml\" in any combination of case";
0108:                }
0109:
0110:                if (reason != null)
0111:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0112:                            "Namespace prefixes, " + prefix
0113:                                    + ", cannot begin with " + reason, loc);
0114:
0115:                for (int j = 0, len = prefix.length(); j < len; j++)
0116:                    if (!isXMLNameCharacter(prefix.charAt(j))) {
0117:                        StringBuffer sb = new StringBuffer(
0118:                                "Namespace prefixes cannot contain ");
0119:                        throw new DOMException(
0120:                                DOMException.INVALID_CHARACTER_ERR,
0121:                                appendAsHex(sb, prefix.charAt(j)).toString(),
0122:                                loc);
0123:                    }
0124:
0125:                if (prefix.indexOf(":") >= 0)
0126:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0127:                            "Namespace prefixes cannot contain colons", loc);
0128:            }
0129:
0130:            /**
0131:             * Checks whether the URI of a namespace is valid.
0132:             */
0133:            public static final void checkNamespaceURI(String uri, Locator loc) {
0134:                if (uri == null || uri.length() == 0)
0135:                    return; //OK: null or empty
0136:
0137:                String reason = null;
0138:                char first = uri.charAt(0);
0139:                if (Character.isDigit(first))
0140:                    reason = "a number";
0141:                else if (first == '$')
0142:                    reason = "a dollar sign ($)";
0143:                else if (first == '-')
0144:                    reason = "a hyphen (-)";
0145:
0146:                if (reason != null)
0147:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0148:                            "Namespace URIs cannot begin with " + reason, loc);
0149:            }
0150:
0151:            /**
0152:             * Checks whether a processing instruction target is valid.
0153:             */
0154:            public static final void checkPITarget(String target, Locator loc) {
0155:                if (target.indexOf(":") >= 0)
0156:                    throw new DOMException(
0157:                            DOMException.INVALID_CHARACTER_ERR,
0158:                            "Processing instruction targets cannot contain colons",
0159:                            loc);
0160:                if (target.equalsIgnoreCase("xml"))
0161:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0162:                            "Processing instruction targets cannot be "
0163:                                    + "\"xml\" in any combination of case", loc);
0164:
0165:                checkXMLName(target, loc);
0166:            }
0167:
0168:            /**
0169:             * Checks whether a comment data is valid.
0170:             */
0171:            public static final void checkCommentData(String data, Locator loc) {
0172:                if (data.indexOf("--") >= 0)
0173:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0174:                            "Comments cannot contain double hyphens (--)", loc);
0175:
0176:                checkCharacterData(data, loc);
0177:            }
0178:
0179:            /**
0180:             * Checks whether a name is valid.
0181:             */
0182:            public static void checkXMLName(String name, Locator loc) {
0183:                if (name == null || name.length() == 0)
0184:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0185:                            "XML names cannot be null or empty", loc);
0186:
0187:                if (!isXMLNameStartCharacter(name.charAt(0)))
0188:                    throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
0189:                            "XML names cannot begin with \'" + name.charAt(0)
0190:                                    + '\'', loc);
0191:
0192:                for (int j = 0, len = name.length(); j < len; j++)
0193:                    if (!isXMLNameCharacter(name.charAt(j)))
0194:                        throw new DOMException(
0195:                                DOMException.INVALID_CHARACTER_ERR,
0196:                                "XML names cannot contain \'" + name.charAt(j)
0197:                                        + '\'', loc);
0198:            }
0199:
0200:            /**
0201:             * Checks whether a character is valid.
0202:             */
0203:            public static boolean isXMLCharacter(char c) {
0204:                if (c == '\n')
0205:                    return true;
0206:                if (c == '\r')
0207:                    return true;
0208:                if (c == '\t')
0209:                    return true;
0210:
0211:                if (c < 0x20)
0212:                    return false;
0213:                if (c <= 0xD7FF)
0214:                    return true;
0215:                if (c < 0xE000)
0216:                    return false;
0217:                if (c <= 0xFFFD)
0218:                    return true;
0219:                if (c < 0x10000)
0220:                    return false;
0221:                if (c <= 0x10FFFF)
0222:                    return true;
0223:
0224:                return false;
0225:            }
0226:
0227:            /**
0228:             * Checks whether a character can be part of a name.
0229:             */
0230:            public static boolean isXMLNameCharacter(char c) {
0231:                return isXMLLetter(c) || isXMLDigit(c) || c == '.' || c == '-'
0232:                        || c == '_' || c == ':' || isXMLCombiningChar(c)
0233:                        || isXMLExtender(c);
0234:            }
0235:
0236:            /**
0237:             * Checks whether a character can be the first character of a name.
0238:             */
0239:            public static boolean isXMLNameStartCharacter(char c) {
0240:                return isXMLLetter(c) || c == '_' || c == ':';
0241:            }
0242:
0243:            /**
0244:             * Checks whether a character is a letter or digit.
0245:             */
0246:            public static boolean isXMLLetterOrDigit(char c) {
0247:                return (isXMLLetter(c) || isXMLDigit(c));
0248:            }
0249:
0250:            /**
0251:             * Checks whether a character is a letter.
0252:             */
0253:            public static boolean isXMLLetter(char c) {
0254:                if (c < 0x0041)
0255:                    return false;
0256:                if (c <= 0x005a)
0257:                    return true;
0258:                if (c < 0x0061)
0259:                    return false;
0260:                if (c <= 0x007A)
0261:                    return true;
0262:                if (c < 0x00C0)
0263:                    return false;
0264:                if (c <= 0x00D6)
0265:                    return true;
0266:                if (c < 0x00D8)
0267:                    return false;
0268:                if (c <= 0x00F6)
0269:                    return true;
0270:                if (c < 0x00F8)
0271:                    return false;
0272:                if (c <= 0x00FF)
0273:                    return true;
0274:                if (c < 0x0100)
0275:                    return false;
0276:                if (c <= 0x0131)
0277:                    return true;
0278:                if (c < 0x0134)
0279:                    return false;
0280:                if (c <= 0x013E)
0281:                    return true;
0282:                if (c < 0x0141)
0283:                    return false;
0284:                if (c <= 0x0148)
0285:                    return true;
0286:                if (c < 0x014A)
0287:                    return false;
0288:                if (c <= 0x017E)
0289:                    return true;
0290:                if (c < 0x0180)
0291:                    return false;
0292:                if (c <= 0x01C3)
0293:                    return true;
0294:                if (c < 0x01CD)
0295:                    return false;
0296:                if (c <= 0x01F0)
0297:                    return true;
0298:                if (c < 0x01F4)
0299:                    return false;
0300:                if (c <= 0x01F5)
0301:                    return true;
0302:                if (c < 0x01FA)
0303:                    return false;
0304:                if (c <= 0x0217)
0305:                    return true;
0306:                if (c < 0x0250)
0307:                    return false;
0308:                if (c <= 0x02A8)
0309:                    return true;
0310:                if (c < 0x02BB)
0311:                    return false;
0312:                if (c <= 0x02C1)
0313:                    return true;
0314:                if (c == 0x0386)
0315:                    return true;
0316:                if (c < 0x0388)
0317:                    return false;
0318:                if (c <= 0x038A)
0319:                    return true;
0320:                if (c == 0x038C)
0321:                    return true;
0322:                if (c < 0x038E)
0323:                    return false;
0324:                if (c <= 0x03A1)
0325:                    return true;
0326:                if (c < 0x03A3)
0327:                    return false;
0328:                if (c <= 0x03CE)
0329:                    return true;
0330:                if (c < 0x03D0)
0331:                    return false;
0332:                if (c <= 0x03D6)
0333:                    return true;
0334:                if (c == 0x03DA)
0335:                    return true;
0336:                if (c == 0x03DC)
0337:                    return true;
0338:                if (c == 0x03DE)
0339:                    return true;
0340:                if (c == 0x03E0)
0341:                    return true;
0342:                if (c < 0x03E2)
0343:                    return false;
0344:                if (c <= 0x03F3)
0345:                    return true;
0346:                if (c < 0x0401)
0347:                    return false;
0348:                if (c <= 0x040C)
0349:                    return true;
0350:                if (c < 0x040E)
0351:                    return false;
0352:                if (c <= 0x044F)
0353:                    return true;
0354:                if (c < 0x0451)
0355:                    return false;
0356:                if (c <= 0x045C)
0357:                    return true;
0358:                if (c < 0x045E)
0359:                    return false;
0360:                if (c <= 0x0481)
0361:                    return true;
0362:                if (c < 0x0490)
0363:                    return false;
0364:                if (c <= 0x04C4)
0365:                    return true;
0366:                if (c < 0x04C7)
0367:                    return false;
0368:                if (c <= 0x04C8)
0369:                    return true;
0370:                if (c < 0x04CB)
0371:                    return false;
0372:                if (c <= 0x04CC)
0373:                    return true;
0374:                if (c < 0x04D0)
0375:                    return false;
0376:                if (c <= 0x04EB)
0377:                    return true;
0378:                if (c < 0x04EE)
0379:                    return false;
0380:                if (c <= 0x04F5)
0381:                    return true;
0382:                if (c < 0x04F8)
0383:                    return false;
0384:                if (c <= 0x04F9)
0385:                    return true;
0386:                if (c < 0x0531)
0387:                    return false;
0388:                if (c <= 0x0556)
0389:                    return true;
0390:                if (c == 0x0559)
0391:                    return true;
0392:                if (c < 0x0561)
0393:                    return false;
0394:                if (c <= 0x0586)
0395:                    return true;
0396:                if (c < 0x05D0)
0397:                    return false;
0398:                if (c <= 0x05EA)
0399:                    return true;
0400:                if (c < 0x05F0)
0401:                    return false;
0402:                if (c <= 0x05F2)
0403:                    return true;
0404:                if (c < 0x0621)
0405:                    return false;
0406:                if (c <= 0x063A)
0407:                    return true;
0408:                if (c < 0x0641)
0409:                    return false;
0410:                if (c <= 0x064A)
0411:                    return true;
0412:                if (c < 0x0671)
0413:                    return false;
0414:                if (c <= 0x06B7)
0415:                    return true;
0416:                if (c < 0x06BA)
0417:                    return false;
0418:                if (c <= 0x06BE)
0419:                    return true;
0420:                if (c < 0x06C0)
0421:                    return false;
0422:                if (c <= 0x06CE)
0423:                    return true;
0424:                if (c < 0x06D0)
0425:                    return false;
0426:                if (c <= 0x06D3)
0427:                    return true;
0428:                if (c == 0x06D5)
0429:                    return true;
0430:                if (c < 0x06E5)
0431:                    return false;
0432:                if (c <= 0x06E6)
0433:                    return true;
0434:                if (c < 0x0905)
0435:                    return false;
0436:                if (c <= 0x0939)
0437:                    return true;
0438:                if (c == 0x093D)
0439:                    return true;
0440:                if (c < 0x0958)
0441:                    return false;
0442:                if (c <= 0x0961)
0443:                    return true;
0444:                if (c < 0x0985)
0445:                    return false;
0446:                if (c <= 0x098C)
0447:                    return true;
0448:                if (c < 0x098F)
0449:                    return false;
0450:                if (c <= 0x0990)
0451:                    return true;
0452:                if (c < 0x0993)
0453:                    return false;
0454:                if (c <= 0x09A8)
0455:                    return true;
0456:                if (c < 0x09AA)
0457:                    return false;
0458:                if (c <= 0x09B0)
0459:                    return true;
0460:                if (c == 0x09B2)
0461:                    return true;
0462:                if (c < 0x09B6)
0463:                    return false;
0464:                if (c <= 0x09B9)
0465:                    return true;
0466:                if (c < 0x09DC)
0467:                    return false;
0468:                if (c <= 0x09DD)
0469:                    return true;
0470:                if (c < 0x09DF)
0471:                    return false;
0472:                if (c <= 0x09E1)
0473:                    return true;
0474:                if (c < 0x09F0)
0475:                    return false;
0476:                if (c <= 0x09F1)
0477:                    return true;
0478:                if (c < 0x0A05)
0479:                    return false;
0480:                if (c <= 0x0A0A)
0481:                    return true;
0482:                if (c < 0x0A0F)
0483:                    return false;
0484:                if (c <= 0x0A10)
0485:                    return true;
0486:                if (c < 0x0A13)
0487:                    return false;
0488:                if (c <= 0x0A28)
0489:                    return true;
0490:                if (c < 0x0A2A)
0491:                    return false;
0492:                if (c <= 0x0A30)
0493:                    return true;
0494:                if (c < 0x0A32)
0495:                    return false;
0496:                if (c <= 0x0A33)
0497:                    return true;
0498:                if (c < 0x0A35)
0499:                    return false;
0500:                if (c <= 0x0A36)
0501:                    return true;
0502:                if (c < 0x0A38)
0503:                    return false;
0504:                if (c <= 0x0A39)
0505:                    return true;
0506:                if (c < 0x0A59)
0507:                    return false;
0508:                if (c <= 0x0A5C)
0509:                    return true;
0510:                if (c == 0x0A5E)
0511:                    return true;
0512:                if (c < 0x0A72)
0513:                    return false;
0514:                if (c <= 0x0A74)
0515:                    return true;
0516:                if (c < 0x0A85)
0517:                    return false;
0518:                if (c <= 0x0A8B)
0519:                    return true;
0520:                if (c == 0x0A8D)
0521:                    return true;
0522:                if (c < 0x0A8F)
0523:                    return false;
0524:                if (c <= 0x0A91)
0525:                    return true;
0526:                if (c < 0x0A93)
0527:                    return false;
0528:                if (c <= 0x0AA8)
0529:                    return true;
0530:                if (c < 0x0AAA)
0531:                    return false;
0532:                if (c <= 0x0AB0)
0533:                    return true;
0534:                if (c < 0x0AB2)
0535:                    return false;
0536:                if (c <= 0x0AB3)
0537:                    return true;
0538:                if (c < 0x0AB5)
0539:                    return false;
0540:                if (c <= 0x0AB9)
0541:                    return true;
0542:                if (c == 0x0ABD)
0543:                    return true;
0544:                if (c == 0x0AE0)
0545:                    return true;
0546:                if (c < 0x0B05)
0547:                    return false;
0548:                if (c <= 0x0B0C)
0549:                    return true;
0550:                if (c < 0x0B0F)
0551:                    return false;
0552:                if (c <= 0x0B10)
0553:                    return true;
0554:                if (c < 0x0B13)
0555:                    return false;
0556:                if (c <= 0x0B28)
0557:                    return true;
0558:                if (c < 0x0B2A)
0559:                    return false;
0560:                if (c <= 0x0B30)
0561:                    return true;
0562:                if (c < 0x0B32)
0563:                    return false;
0564:                if (c <= 0x0B33)
0565:                    return true;
0566:                if (c < 0x0B36)
0567:                    return false;
0568:                if (c <= 0x0B39)
0569:                    return true;
0570:                if (c == 0x0B3D)
0571:                    return true;
0572:                if (c < 0x0B5C)
0573:                    return false;
0574:                if (c <= 0x0B5D)
0575:                    return true;
0576:                if (c < 0x0B5F)
0577:                    return false;
0578:                if (c <= 0x0B61)
0579:                    return true;
0580:                if (c < 0x0B85)
0581:                    return false;
0582:                if (c <= 0x0B8A)
0583:                    return true;
0584:                if (c < 0x0B8E)
0585:                    return false;
0586:                if (c <= 0x0B90)
0587:                    return true;
0588:                if (c < 0x0B92)
0589:                    return false;
0590:                if (c <= 0x0B95)
0591:                    return true;
0592:                if (c < 0x0B99)
0593:                    return false;
0594:                if (c <= 0x0B9A)
0595:                    return true;
0596:                if (c == 0x0B9C)
0597:                    return true;
0598:                if (c < 0x0B9E)
0599:                    return false;
0600:                if (c <= 0x0B9F)
0601:                    return true;
0602:                if (c < 0x0BA3)
0603:                    return false;
0604:                if (c <= 0x0BA4)
0605:                    return true;
0606:                if (c < 0x0BA8)
0607:                    return false;
0608:                if (c <= 0x0BAA)
0609:                    return true;
0610:                if (c < 0x0BAE)
0611:                    return false;
0612:                if (c <= 0x0BB5)
0613:                    return true;
0614:                if (c < 0x0BB7)
0615:                    return false;
0616:                if (c <= 0x0BB9)
0617:                    return true;
0618:                if (c < 0x0C05)
0619:                    return false;
0620:                if (c <= 0x0C0C)
0621:                    return true;
0622:                if (c < 0x0C0E)
0623:                    return false;
0624:                if (c <= 0x0C10)
0625:                    return true;
0626:                if (c < 0x0C12)
0627:                    return false;
0628:                if (c <= 0x0C28)
0629:                    return true;
0630:                if (c < 0x0C2A)
0631:                    return false;
0632:                if (c <= 0x0C33)
0633:                    return true;
0634:                if (c < 0x0C35)
0635:                    return false;
0636:                if (c <= 0x0C39)
0637:                    return true;
0638:                if (c < 0x0C60)
0639:                    return false;
0640:                if (c <= 0x0C61)
0641:                    return true;
0642:                if (c < 0x0C85)
0643:                    return false;
0644:                if (c <= 0x0C8C)
0645:                    return true;
0646:                if (c < 0x0C8E)
0647:                    return false;
0648:                if (c <= 0x0C90)
0649:                    return true;
0650:                if (c < 0x0C92)
0651:                    return false;
0652:                if (c <= 0x0CA8)
0653:                    return true;
0654:                if (c < 0x0CAA)
0655:                    return false;
0656:                if (c <= 0x0CB3)
0657:                    return true;
0658:                if (c < 0x0CB5)
0659:                    return false;
0660:                if (c <= 0x0CB9)
0661:                    return true;
0662:                if (c == 0x0CDE)
0663:                    return true;
0664:                if (c < 0x0CE0)
0665:                    return false;
0666:                if (c <= 0x0CE1)
0667:                    return true;
0668:                if (c < 0x0D05)
0669:                    return false;
0670:                if (c <= 0x0D0C)
0671:                    return true;
0672:                if (c < 0x0D0E)
0673:                    return false;
0674:                if (c <= 0x0D10)
0675:                    return true;
0676:                if (c < 0x0D12)
0677:                    return false;
0678:                if (c <= 0x0D28)
0679:                    return true;
0680:                if (c < 0x0D2A)
0681:                    return false;
0682:                if (c <= 0x0D39)
0683:                    return true;
0684:                if (c < 0x0D60)
0685:                    return false;
0686:                if (c <= 0x0D61)
0687:                    return true;
0688:                if (c < 0x0E01)
0689:                    return false;
0690:                if (c <= 0x0E2E)
0691:                    return true;
0692:                if (c == 0x0E30)
0693:                    return true;
0694:                if (c < 0x0E32)
0695:                    return false;
0696:                if (c <= 0x0E33)
0697:                    return true;
0698:                if (c < 0x0E40)
0699:                    return false;
0700:                if (c <= 0x0E45)
0701:                    return true;
0702:                if (c < 0x0E81)
0703:                    return false;
0704:                if (c <= 0x0E82)
0705:                    return true;
0706:                if (c == 0x0E84)
0707:                    return true;
0708:                if (c < 0x0E87)
0709:                    return false;
0710:                if (c <= 0x0E88)
0711:                    return true;
0712:                if (c == 0x0E8A)
0713:                    return true;
0714:                if (c == 0x0E8D)
0715:                    return true;
0716:                if (c < 0x0E94)
0717:                    return false;
0718:                if (c <= 0x0E97)
0719:                    return true;
0720:                if (c < 0x0E99)
0721:                    return false;
0722:                if (c <= 0x0E9F)
0723:                    return true;
0724:                if (c < 0x0EA1)
0725:                    return false;
0726:                if (c <= 0x0EA3)
0727:                    return true;
0728:                if (c == 0x0EA5)
0729:                    return true;
0730:                if (c == 0x0EA7)
0731:                    return true;
0732:                if (c < 0x0EAA)
0733:                    return false;
0734:                if (c <= 0x0EAB)
0735:                    return true;
0736:                if (c < 0x0EAD)
0737:                    return false;
0738:                if (c <= 0x0EAE)
0739:                    return true;
0740:                if (c == 0x0EB0)
0741:                    return true;
0742:                if (c < 0x0EB2)
0743:                    return false;
0744:                if (c <= 0x0EB3)
0745:                    return true;
0746:                if (c == 0x0EBD)
0747:                    return true;
0748:                if (c < 0x0EC0)
0749:                    return false;
0750:                if (c <= 0x0EC4)
0751:                    return true;
0752:                if (c < 0x0F40)
0753:                    return false;
0754:                if (c <= 0x0F47)
0755:                    return true;
0756:                if (c < 0x0F49)
0757:                    return false;
0758:                if (c <= 0x0F69)
0759:                    return true;
0760:                if (c < 0x10A0)
0761:                    return false;
0762:                if (c <= 0x10C5)
0763:                    return true;
0764:                if (c < 0x10D0)
0765:                    return false;
0766:                if (c <= 0x10F6)
0767:                    return true;
0768:                if (c == 0x1100)
0769:                    return true;
0770:                if (c < 0x1102)
0771:                    return false;
0772:                if (c <= 0x1103)
0773:                    return true;
0774:                if (c < 0x1105)
0775:                    return false;
0776:                if (c <= 0x1107)
0777:                    return true;
0778:                if (c == 0x1109)
0779:                    return true;
0780:                if (c < 0x110B)
0781:                    return false;
0782:                if (c <= 0x110C)
0783:                    return true;
0784:                if (c < 0x110E)
0785:                    return false;
0786:                if (c <= 0x1112)
0787:                    return true;
0788:                if (c == 0x113C)
0789:                    return true;
0790:                if (c == 0x113E)
0791:                    return true;
0792:                if (c == 0x1140)
0793:                    return true;
0794:                if (c == 0x114C)
0795:                    return true;
0796:                if (c == 0x114E)
0797:                    return true;
0798:                if (c == 0x1150)
0799:                    return true;
0800:                if (c < 0x1154)
0801:                    return false;
0802:                if (c <= 0x1155)
0803:                    return true;
0804:                if (c == 0x1159)
0805:                    return true;
0806:                if (c < 0x115F)
0807:                    return false;
0808:                if (c <= 0x1161)
0809:                    return true;
0810:                if (c == 0x1163)
0811:                    return true;
0812:                if (c == 0x1165)
0813:                    return true;
0814:                if (c == 0x1167)
0815:                    return true;
0816:                if (c == 0x1169)
0817:                    return true;
0818:                if (c < 0x116D)
0819:                    return false;
0820:                if (c <= 0x116E)
0821:                    return true;
0822:                if (c < 0x1172)
0823:                    return false;
0824:                if (c <= 0x1173)
0825:                    return true;
0826:                if (c == 0x1175)
0827:                    return true;
0828:                if (c == 0x119E)
0829:                    return true;
0830:                if (c == 0x11A8)
0831:                    return true;
0832:                if (c == 0x11AB)
0833:                    return true;
0834:                if (c < 0x11AE)
0835:                    return false;
0836:                if (c <= 0x11AF)
0837:                    return true;
0838:                if (c < 0x11B7)
0839:                    return false;
0840:                if (c <= 0x11B8)
0841:                    return true;
0842:                if (c == 0x11BA)
0843:                    return true;
0844:                if (c < 0x11BC)
0845:                    return false;
0846:                if (c <= 0x11C2)
0847:                    return true;
0848:                if (c == 0x11EB)
0849:                    return true;
0850:                if (c == 0x11F0)
0851:                    return true;
0852:                if (c == 0x11F9)
0853:                    return true;
0854:                if (c < 0x1E00)
0855:                    return false;
0856:                if (c <= 0x1E9B)
0857:                    return true;
0858:                if (c < 0x1EA0)
0859:                    return false;
0860:                if (c <= 0x1EF9)
0861:                    return true;
0862:                if (c < 0x1F00)
0863:                    return false;
0864:                if (c <= 0x1F15)
0865:                    return true;
0866:                if (c < 0x1F18)
0867:                    return false;
0868:                if (c <= 0x1F1D)
0869:                    return true;
0870:                if (c < 0x1F20)
0871:                    return false;
0872:                if (c <= 0x1F45)
0873:                    return true;
0874:                if (c < 0x1F48)
0875:                    return false;
0876:                if (c <= 0x1F4D)
0877:                    return true;
0878:                if (c < 0x1F50)
0879:                    return false;
0880:                if (c <= 0x1F57)
0881:                    return true;
0882:                if (c == 0x1F59)
0883:                    return true;
0884:                if (c == 0x1F5B)
0885:                    return true;
0886:                if (c == 0x1F5D)
0887:                    return true;
0888:                if (c < 0x1F5F)
0889:                    return false;
0890:                if (c <= 0x1F7D)
0891:                    return true;
0892:                if (c < 0x1F80)
0893:                    return false;
0894:                if (c <= 0x1FB4)
0895:                    return true;
0896:                if (c < 0x1FB6)
0897:                    return false;
0898:                if (c <= 0x1FBC)
0899:                    return true;
0900:                if (c == 0x1FBE)
0901:                    return true;
0902:                if (c < 0x1FC2)
0903:                    return false;
0904:                if (c <= 0x1FC4)
0905:                    return true;
0906:                if (c < 0x1FC6)
0907:                    return false;
0908:                if (c <= 0x1FCC)
0909:                    return true;
0910:                if (c < 0x1FD0)
0911:                    return false;
0912:                if (c <= 0x1FD3)
0913:                    return true;
0914:                if (c < 0x1FD6)
0915:                    return false;
0916:                if (c <= 0x1FDB)
0917:                    return true;
0918:                if (c < 0x1FE0)
0919:                    return false;
0920:                if (c <= 0x1FEC)
0921:                    return true;
0922:                if (c < 0x1FF2)
0923:                    return false;
0924:                if (c <= 0x1FF4)
0925:                    return true;
0926:                if (c < 0x1FF6)
0927:                    return false;
0928:                if (c <= 0x1FFC)
0929:                    return true;
0930:                if (c == 0x2126)
0931:                    return true;
0932:                if (c < 0x212A)
0933:                    return false;
0934:                if (c <= 0x212B)
0935:                    return true;
0936:                if (c == 0x212E)
0937:                    return true;
0938:                if (c < 0x2180)
0939:                    return false;
0940:                if (c <= 0x2182)
0941:                    return true;
0942:                if (c == 0x3007)
0943:                    return true; // ideographic
0944:                if (c < 0x3021)
0945:                    return false;
0946:                if (c <= 0x3029)
0947:                    return true; // ideo
0948:                if (c < 0x3041)
0949:                    return false;
0950:                if (c <= 0x3094)
0951:                    return true;
0952:                if (c < 0x30A1)
0953:                    return false;
0954:                if (c <= 0x30FA)
0955:                    return true;
0956:                if (c < 0x3105)
0957:                    return false;
0958:                if (c <= 0x312C)
0959:                    return true;
0960:                if (c < 0x4E00)
0961:                    return false;
0962:                if (c <= 0x9FA5)
0963:                    return true; // ideo
0964:                if (c < 0xAC00)
0965:                    return false;
0966:                if (c <= 0xD7A3)
0967:                    return true;
0968:
0969:                return false;
0970:            }
0971:
0972:            /**
0973:             * Checks whether a character is a combining character according to
0974:             * production 87 of the XML 1.0 specification.
0975:             */
0976:            public static boolean isXMLCombiningChar(char c) {
0977:                if (c < 0x0300)
0978:                    return false;
0979:                if (c <= 0x0345)
0980:                    return true;
0981:                if (c < 0x0360)
0982:                    return false;
0983:                if (c <= 0x0361)
0984:                    return true;
0985:                if (c < 0x0483)
0986:                    return false;
0987:                if (c <= 0x0486)
0988:                    return true;
0989:                if (c < 0x0591)
0990:                    return false;
0991:                if (c <= 0x05A1)
0992:                    return true;
0993:
0994:                if (c < 0x05A3)
0995:                    return false;
0996:                if (c <= 0x05B9)
0997:                    return true;
0998:                if (c < 0x05BB)
0999:                    return false;
1000:                if (c <= 0x05BD)
1001:                    return true;
1002:                if (c == 0x05BF)
1003:                    return true;
1004:                if (c < 0x05C1)
1005:                    return false;
1006:                if (c <= 0x05C2)
1007:                    return true;
1008:
1009:                if (c == 0x05C4)
1010:                    return true;
1011:                if (c < 0x064B)
1012:                    return false;
1013:                if (c <= 0x0652)
1014:                    return true;
1015:                if (c == 0x0670)
1016:                    return true;
1017:                if (c < 0x06D6)
1018:                    return false;
1019:                if (c <= 0x06DC)
1020:                    return true;
1021:
1022:                if (c < 0x06DD)
1023:                    return false;
1024:                if (c <= 0x06DF)
1025:                    return true;
1026:                if (c < 0x06E0)
1027:                    return false;
1028:                if (c <= 0x06E4)
1029:                    return true;
1030:                if (c < 0x06E7)
1031:                    return false;
1032:                if (c <= 0x06E8)
1033:                    return true;
1034:
1035:                if (c < 0x06EA)
1036:                    return false;
1037:                if (c <= 0x06ED)
1038:                    return true;
1039:                if (c < 0x0901)
1040:                    return false;
1041:                if (c <= 0x0903)
1042:                    return true;
1043:                if (c == 0x093C)
1044:                    return true;
1045:                if (c < 0x093E)
1046:                    return false;
1047:                if (c <= 0x094C)
1048:                    return true;
1049:
1050:                if (c == 0x094D)
1051:                    return true;
1052:                if (c < 0x0951)
1053:                    return false;
1054:                if (c <= 0x0954)
1055:                    return true;
1056:                if (c < 0x0962)
1057:                    return false;
1058:                if (c <= 0x0963)
1059:                    return true;
1060:                if (c < 0x0981)
1061:                    return false;
1062:                if (c <= 0x0983)
1063:                    return true;
1064:
1065:                if (c == 0x09BC)
1066:                    return true;
1067:                if (c == 0x09BE)
1068:                    return true;
1069:                if (c == 0x09BF)
1070:                    return true;
1071:                if (c < 0x09C0)
1072:                    return false;
1073:                if (c <= 0x09C4)
1074:                    return true;
1075:                if (c < 0x09C7)
1076:                    return false;
1077:                if (c <= 0x09C8)
1078:                    return true;
1079:
1080:                if (c < 0x09CB)
1081:                    return false;
1082:                if (c <= 0x09CD)
1083:                    return true;
1084:                if (c == 0x09D7)
1085:                    return true;
1086:                if (c < 0x09E2)
1087:                    return false;
1088:                if (c <= 0x09E3)
1089:                    return true;
1090:                if (c == 0x0A02)
1091:                    return true;
1092:                if (c == 0x0A3C)
1093:                    return true;
1094:
1095:                if (c == 0x0A3E)
1096:                    return true;
1097:                if (c == 0x0A3F)
1098:                    return true;
1099:                if (c < 0x0A40)
1100:                    return false;
1101:                if (c <= 0x0A42)
1102:                    return true;
1103:                if (c < 0x0A47)
1104:                    return false;
1105:                if (c <= 0x0A48)
1106:                    return true;
1107:
1108:                if (c < 0x0A4B)
1109:                    return false;
1110:                if (c <= 0x0A4D)
1111:                    return true;
1112:                if (c < 0x0A70)
1113:                    return false;
1114:                if (c <= 0x0A71)
1115:                    return true;
1116:                if (c < 0x0A81)
1117:                    return false;
1118:                if (c <= 0x0A83)
1119:                    return true;
1120:                if (c == 0x0ABC)
1121:                    return true;
1122:
1123:                if (c < 0x0ABE)
1124:                    return false;
1125:                if (c <= 0x0AC5)
1126:                    return true;
1127:                if (c < 0x0AC7)
1128:                    return false;
1129:                if (c <= 0x0AC9)
1130:                    return true;
1131:                if (c < 0x0ACB)
1132:                    return false;
1133:                if (c <= 0x0ACD)
1134:                    return true;
1135:
1136:                if (c < 0x0B01)
1137:                    return false;
1138:                if (c <= 0x0B03)
1139:                    return true;
1140:                if (c == 0x0B3C)
1141:                    return true;
1142:                if (c < 0x0B3E)
1143:                    return false;
1144:                if (c <= 0x0B43)
1145:                    return true;
1146:                if (c < 0x0B47)
1147:                    return false;
1148:                if (c <= 0x0B48)
1149:                    return true;
1150:
1151:                if (c < 0x0B4B)
1152:                    return false;
1153:                if (c <= 0x0B4D)
1154:                    return true;
1155:                if (c < 0x0B56)
1156:                    return false;
1157:                if (c <= 0x0B57)
1158:                    return true;
1159:                if (c < 0x0B82)
1160:                    return false;
1161:                if (c <= 0x0B83)
1162:                    return true;
1163:
1164:                if (c < 0x0BBE)
1165:                    return false;
1166:                if (c <= 0x0BC2)
1167:                    return true;
1168:                if (c < 0x0BC6)
1169:                    return false;
1170:                if (c <= 0x0BC8)
1171:                    return true;
1172:                if (c < 0x0BCA)
1173:                    return false;
1174:                if (c <= 0x0BCD)
1175:                    return true;
1176:                if (c == 0x0BD7)
1177:                    return true;
1178:
1179:                if (c < 0x0C01)
1180:                    return false;
1181:                if (c <= 0x0C03)
1182:                    return true;
1183:                if (c < 0x0C3E)
1184:                    return false;
1185:                if (c <= 0x0C44)
1186:                    return true;
1187:                if (c < 0x0C46)
1188:                    return false;
1189:                if (c <= 0x0C48)
1190:                    return true;
1191:
1192:                if (c < 0x0C4A)
1193:                    return false;
1194:                if (c <= 0x0C4D)
1195:                    return true;
1196:                if (c < 0x0C55)
1197:                    return false;
1198:                if (c <= 0x0C56)
1199:                    return true;
1200:                if (c < 0x0C82)
1201:                    return false;
1202:                if (c <= 0x0C83)
1203:                    return true;
1204:
1205:                if (c < 0x0CBE)
1206:                    return false;
1207:                if (c <= 0x0CC4)
1208:                    return true;
1209:                if (c < 0x0CC6)
1210:                    return false;
1211:                if (c <= 0x0CC8)
1212:                    return true;
1213:                if (c < 0x0CCA)
1214:                    return false;
1215:                if (c <= 0x0CCD)
1216:                    return true;
1217:
1218:                if (c < 0x0CD5)
1219:                    return false;
1220:                if (c <= 0x0CD6)
1221:                    return true;
1222:                if (c < 0x0D02)
1223:                    return false;
1224:                if (c <= 0x0D03)
1225:                    return true;
1226:                if (c < 0x0D3E)
1227:                    return false;
1228:                if (c <= 0x0D43)
1229:                    return true;
1230:
1231:                if (c < 0x0D46)
1232:                    return false;
1233:                if (c <= 0x0D48)
1234:                    return true;
1235:                if (c < 0x0D4A)
1236:                    return false;
1237:                if (c <= 0x0D4D)
1238:                    return true;
1239:                if (c == 0x0D57)
1240:                    return true;
1241:                if (c == 0x0E31)
1242:                    return true;
1243:
1244:                if (c < 0x0E34)
1245:                    return false;
1246:                if (c <= 0x0E3A)
1247:                    return true;
1248:                if (c < 0x0E47)
1249:                    return false;
1250:                if (c <= 0x0E4E)
1251:                    return true;
1252:                if (c == 0x0EB1)
1253:                    return true;
1254:                if (c < 0x0EB4)
1255:                    return false;
1256:                if (c <= 0x0EB9)
1257:                    return true;
1258:
1259:                if (c < 0x0EBB)
1260:                    return false;
1261:                if (c <= 0x0EBC)
1262:                    return true;
1263:                if (c < 0x0EC8)
1264:                    return false;
1265:                if (c <= 0x0ECD)
1266:                    return true;
1267:                if (c < 0x0F18)
1268:                    return false;
1269:                if (c <= 0x0F19)
1270:                    return true;
1271:                if (c == 0x0F35)
1272:                    return true;
1273:
1274:                if (c == 0x0F37)
1275:                    return true;
1276:                if (c == 0x0F39)
1277:                    return true;
1278:                if (c == 0x0F3E)
1279:                    return true;
1280:                if (c == 0x0F3F)
1281:                    return true;
1282:                if (c < 0x0F71)
1283:                    return false;
1284:                if (c <= 0x0F84)
1285:                    return true;
1286:
1287:                if (c < 0x0F86)
1288:                    return false;
1289:                if (c <= 0x0F8B)
1290:                    return true;
1291:                if (c < 0x0F90)
1292:                    return false;
1293:                if (c <= 0x0F95)
1294:                    return true;
1295:                if (c == 0x0F97)
1296:                    return true;
1297:                if (c < 0x0F99)
1298:                    return false;
1299:                if (c <= 0x0FAD)
1300:                    return true;
1301:
1302:                if (c < 0x0FB1)
1303:                    return false;
1304:                if (c <= 0x0FB7)
1305:                    return true;
1306:                if (c == 0x0FB9)
1307:                    return true;
1308:                if (c < 0x20D0)
1309:                    return false;
1310:                if (c <= 0x20DC)
1311:                    return true;
1312:                if (c == 0x20E1)
1313:                    return true;
1314:
1315:                if (c < 0x302A)
1316:                    return false;
1317:                if (c <= 0x302F)
1318:                    return true;
1319:                if (c == 0x3099)
1320:                    return true;
1321:                if (c == 0x309A)
1322:                    return true;
1323:
1324:                return false;
1325:            }
1326:
1327:            /**
1328:             * Checks whether a character is an extender according to
1329:             * production 88 of the XML 1.0 specification.
1330:             */
1331:            public static boolean isXMLExtender(char c) {
1332:                if (c < 0x00B6)
1333:                    return false; // quick short circuit
1334:
1335:                // Extenders
1336:                if (c == 0x00B7)
1337:                    return true;
1338:                if (c == 0x02D0)
1339:                    return true;
1340:                if (c == 0x02D1)
1341:                    return true;
1342:                if (c == 0x0387)
1343:                    return true;
1344:                if (c == 0x0640)
1345:                    return true;
1346:                if (c == 0x0E46)
1347:                    return true;
1348:                if (c == 0x0EC6)
1349:                    return true;
1350:                if (c == 0x3005)
1351:                    return true;
1352:
1353:                if (c < 0x3031)
1354:                    return false;
1355:                if (c <= 0x3035)
1356:                    return true;
1357:                if (c < 0x309D)
1358:                    return false;
1359:                if (c <= 0x309E)
1360:                    return true;
1361:                if (c < 0x30FC)
1362:                    return false;
1363:                if (c <= 0x30FE)
1364:                    return true;
1365:
1366:                return false;
1367:            }
1368:
1369:            /**
1370:             * <p>
1371:             * Checks whether a character is a digit according to
1372:             * production 88 of the XML 1.0 specification.
1373:             */
1374:            public static boolean isXMLDigit(char c) {
1375:                if (c < 0x0030)
1376:                    return false;
1377:                if (c <= 0x0039)
1378:                    return true;
1379:                if (c < 0x0660)
1380:                    return false;
1381:                if (c <= 0x0669)
1382:                    return true;
1383:                if (c < 0x06F0)
1384:                    return false;
1385:                if (c <= 0x06F9)
1386:                    return true;
1387:                if (c < 0x0966)
1388:                    return false;
1389:                if (c <= 0x096F)
1390:                    return true;
1391:
1392:                if (c < 0x09E6)
1393:                    return false;
1394:                if (c <= 0x09EF)
1395:                    return true;
1396:                if (c < 0x0A66)
1397:                    return false;
1398:                if (c <= 0x0A6F)
1399:                    return true;
1400:                if (c < 0x0AE6)
1401:                    return false;
1402:                if (c <= 0x0AEF)
1403:                    return true;
1404:
1405:                if (c < 0x0B66)
1406:                    return false;
1407:                if (c <= 0x0B6F)
1408:                    return true;
1409:                if (c < 0x0BE7)
1410:                    return false;
1411:                if (c <= 0x0BEF)
1412:                    return true;
1413:                if (c < 0x0C66)
1414:                    return false;
1415:                if (c <= 0x0C6F)
1416:                    return true;
1417:
1418:                if (c < 0x0CE6)
1419:                    return false;
1420:                if (c <= 0x0CEF)
1421:                    return true;
1422:                if (c < 0x0D66)
1423:                    return false;
1424:                if (c <= 0x0D6F)
1425:                    return true;
1426:                if (c < 0x0E50)
1427:                    return false;
1428:                if (c <= 0x0E59)
1429:                    return true;
1430:
1431:                if (c < 0x0ED0)
1432:                    return false;
1433:                if (c <= 0x0ED9)
1434:                    return true;
1435:                if (c < 0x0F20)
1436:                    return false;
1437:                if (c <= 0x0F29)
1438:                    return true;
1439:
1440:                return false;
1441:            }
1442:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.