/** * Get valid element name from a given string * @param name * @return */ public static String getValidName(String name) { StringBuilder validname = new StringBuilder(); char ch = name.charAt(0); if (!XML11Char.isXML11NameStart(ch)) { LOG.warn("Prepend _ to " + name); validname.append("_"); } for (int i = 0; i < name.length(); i++) { ch = name.charAt(i); if (!XML11Char.isXML11Name(ch)) { LOG.warn("Character " + ch + " in " + name + " is converted to _"); validname.append("_"); } else { validname.append(ch); } } return validname.toString(); }
protected boolean isValidName(String name) { return XML11Char.isXML11ValidName(name); } // isValidNmtoken(String): boolean
protected boolean isInvalid(int value) { return (XML11Char.isXML11Invalid(value)); } // isInvalid(int): boolean
private static int scanNCName(String data, int currentPosition) { if (XML11Char.isXML11NCNameStart(charAt(data, currentPosition))) { while (XML11Char.isXML11NCName(charAt(data, ++currentPosition))) { } } return currentPosition; }
if (!isXML11NameStart(ch)) { if (length > 1 && isXML11NameHighSurrogate(ch)) { char ch2 = name.charAt(1); if (!XMLChar.isLowSurrogate(ch2) || !isXML11NameStart(XMLChar.supplemental(ch, ch2))) { return false; if (!isXML11Name(ch)) { if (++i < length && isXML11NameHighSurrogate(ch)) { char ch2 = name.charAt(i); if (!XMLChar.isLowSurrogate(ch2) || !isXML11Name(XMLChar.supplemental(ch, ch2))) { return false;
if (!isXML11NCNameStart(ch)) { if (length > 1 && isXML11NameHighSurrogate(ch)) { char ch2 = ncName.charAt(1); if (!XMLChar.isLowSurrogate(ch2) || !isXML11NCNameStart(XMLChar.supplemental(ch, ch2))) { return false; if (!isXML11NCName(ch)) { if (++i < length && isXML11NameHighSurrogate(ch)) { char ch2 = ncName.charAt(i); if (!XMLChar.isLowSurrogate(ch2) || !isXML11NCName(XMLChar.supplemental(ch, ch2))) { return false;
if (XML11Char.isXML11NCNameStart(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { fCurrentEntity.ch[0] = ch; else if (XML11Char.isXML11NameHighSurrogate(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { fCurrentEntity.ch[0] = ch; !XML11Char.isXML11NCNameStart(XMLChar.supplemental(ch, ch2)) ) { --fCurrentEntity.position; return false; do { ch = fCurrentEntity.ch[fCurrentEntity.position]; if (XML11Char.isXML11Name(ch)) { if (ch == ':') { if (index != -1) { else if (XML11Char.isXML11NameHighSurrogate(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { int length = fCurrentEntity.position - offset; !XML11Char.isXML11Name(XMLChar.supplemental(ch, ch2)) ) { sawIncompleteSurrogatePair = true; --fCurrentEntity.position; int len = length - prefixLength - 1; int startLocal = index +1; if (!XML11Char.isXML11NCNameStart(fCurrentEntity.ch[startLocal]) &&
seenErr = (isXML11) ? !XML11Char.isXML11ValidNmtoken(nvalue) : !XMLChar.isValidNmtoken(nvalue); seenErr = (isXML11) ? !XML11Char.isXML11ValidName(nvalue) : !XMLChar.isValidName(nvalue); seenErr = (isXML11) ? !XML11Char.isXML11ValidNCName(nvalue) : !XMLChar.isValidNCName(nvalue);
/** * Checks that "content" string is valid IDREF value. * If invalid a Datatype validation exception is thrown. * * @param content the string value that needs to be validated * @param context the validation context * @throws InvalidDatatypeException if the content is * invalid according to the rules for the validators * @see InvalidDatatypeValueException */ public void validate(String content, ValidationContext context) throws InvalidDatatypeValueException { //Check if is valid key-[81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* if(context.useNamespaces()) { if (!XML11Char.isXML11ValidNCName(content)) { throw new InvalidDatatypeValueException("IDREFInvalidWithNamespaces", new Object[]{content}); } } else { if (!XML11Char.isXML11ValidName(content)) { throw new InvalidDatatypeValueException("IDREFInvalid", new Object[]{content}); } } context.addIdRef(content); }
/** * Check to see if a string is a valid Nmtoken according to [7] * in the XML 1.1 Recommendation * * @param nmtoken string to check * @return true if nmtoken is a valid Nmtoken */ public static boolean isXML11ValidNmtoken(String nmtoken) { final int length = nmtoken.length(); if (length == 0) { return false; } for (int i = 0; i < length; ++i) { char ch = nmtoken.charAt(i); if (!isXML11Name(ch)) { if (++i < length && isXML11NameHighSurrogate(ch)) { char ch2 = nmtoken.charAt(i); if (!XMLChar.isLowSurrogate(ch2) || !isXML11Name(XMLChar.supplemental(ch, ch2))) { return false; } } else { return false; } } } return true; } // isXML11ValidName(String):boolean
while (fCurrentEntity.position < fCurrentEntity.count) { c = fCurrentEntity.ch[fCurrentEntity.position++]; if (!XML11Char.isXML11Content(c) || c == 0x85 || c == 0x2028) { fCurrentEntity.position--; break; c = fCurrentEntity.ch[fCurrentEntity.position++]; if (!XML11Char.isXML11InternalEntityContent(c)) { fCurrentEntity.position--; break;
protected boolean isValidNameStartChar(int value) { return (XML11Char.isXML11NameStart(value)); } // isValidNameStartChar(int): boolean
protected boolean isValidNameChar(int value) { return (XML11Char.isXML11Name(value)); } // isValidNameChar(int): boolean
private static int skipWhiteSpaces(String data, int currentPosition) { while (XML11Char.isXML11Space(charAt(data, currentPosition))) { ++currentPosition; // this is important } return currentPosition; }
protected boolean isValidNCName(int value) { return (XML11Char.isXML11NCName(value)); } // isValidNCName(int): boolean
protected boolean isValidNameStartHighSurrogate(int value) { return XML11Char.isXML11NameHighSurrogate(value); } // isValidNameStartHighSurrogate(int): boolean
char ch = fCurrentEntity.ch[offset]; if (XML11Char.isXML11NameStart(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { fCurrentEntity.ch[0] = ch; else if (XML11Char.isXML11NameHighSurrogate(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { fCurrentEntity.ch[0] = ch; !XML11Char.isXML11NameStart(XMLChar.supplemental(ch, ch2)) ) { --fCurrentEntity.position; return null; if (XML11Char.isXML11Name(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { int length = fCurrentEntity.position - offset; else if (XML11Char.isXML11NameHighSurrogate(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { int length = fCurrentEntity.position - offset; !XML11Char.isXML11Name(XMLChar.supplemental(ch, ch2)) ) { --fCurrentEntity.position; break;
char ch = fCurrentEntity.ch[offset]; if (XML11Char.isXML11NCNameStart(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { fCurrentEntity.ch[0] = ch; else if (XML11Char.isXML11NameHighSurrogate(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { fCurrentEntity.ch[0] = ch; !XML11Char.isXML11NCNameStart(XMLChar.supplemental(ch, ch2)) ) { --fCurrentEntity.position; return null; if (XML11Char.isXML11NCName(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { int length = fCurrentEntity.position - offset; else if (XML11Char.isXML11NameHighSurrogate(ch)) { if (++fCurrentEntity.position == fCurrentEntity.count) { int length = fCurrentEntity.position - offset; !XML11Char.isXML11NCName(XMLChar.supplemental(ch, ch2)) ) { --fCurrentEntity.position; break;
return CHARTYPE_1_THROUGH_9; if (XML11Char.isXML11NCNameStart(c)) { return CHARTYPE_NC_NAMESTART; if (XML11Char.isXML11NCName(c)) { return CHARTYPE_NC_NAME;
/** * Checks that "content" string is valid ID value. * If invalid a Datatype validation exception is thrown. * * @param content the string value that needs to be validated * @param context the validation context * @throws InvalidDatatypeException if the content is * invalid according to the rules for the validators * @see InvalidDatatypeValueException */ public void validate(String content, ValidationContext context) throws InvalidDatatypeValueException { //Check if is valid key-[81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* if(context.useNamespaces()) { if (!XML11Char.isXML11ValidNCName(content)) { throw new InvalidDatatypeValueException("IDInvalidWithNamespaces", new Object[]{content}); } } else { if (!XML11Char.isXML11ValidName(content)) { throw new InvalidDatatypeValueException("IDInvalid", new Object[]{content}); } } if (context.isIdDeclared(content)) { throw new InvalidDatatypeValueException("IDNotUnique", new Object[]{content}); } context.addId(content); }