Author: mukulg Date: Sat Aug 13 03:55:34 2011 New Revision: 1157313 URL: http://svn.apache.org/viewvc?rev=1157313&view=rev Log: doing a schema 1.1 commit. adding rules for validating values of types NCName, Name, NMToken & QName with XML 1.1 rules if working in XSD 1.1 mode, else (if we would work in XSD 1.0 mode) we would use the XML 1.0 rules.
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/QNameDV.java xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/QNameDV.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/QNameDV.java?rev=1157313&r1=1157312&r2=1157313&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/QNameDV.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/QNameDV.java Sat Aug 13 03:55:34 2011 @@ -19,6 +19,7 @@ package org.apache.xerces.impl.dv.xs; import org.apache.xerces.impl.dv.InvalidDatatypeValueException; import org.apache.xerces.impl.dv.ValidationContext; +import org.apache.xerces.util.XML11Char; import org.apache.xerces.util.XMLChar; import org.apache.xerces.xni.QName; import org.apache.xerces.xs.datatypes.XSQName; @@ -52,12 +53,17 @@ public class QNameDV extends TypeValidat localpart = content; } - // both prefix (if any) a nd localpart must be valid NCName - if (prefix.length() > 0 && !XMLChar.isValidNCName(prefix)) + boolean isSchema11 = context.getTypeValidatorHelper().isXMLSchema11(); + + // both prefix (if any) and localpart must be valid NCName + // if using XSD 1.1, use the XML 1.1 rules of validating the prefix and the local part, else use the XML 1.0 rules + if (prefix.length() > 0 && ((isSchema11) ? !XML11Char.isXML11ValidNCName(prefix) : !XMLChar.isValidNCName(prefix))) { throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"}); + } - if(!XMLChar.isValidNCName(localpart)) + if((isSchema11) ? !XML11Char.isXML11ValidNCName(localpart) : !XMLChar.isValidNCName(localpart)) { throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"}); + } // resove prefix to a uri, report an error if failed String uri = context.getURI(prefix); Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java?rev=1157313&r1=1157312&r2=1157313&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java Sat Aug 13 03:55:34 2011 @@ -37,6 +37,7 @@ import org.apache.xerces.impl.xs.util.Ob import org.apache.xerces.impl.xs.util.ShortListImpl; import org.apache.xerces.impl.xs.util.StringListImpl; import org.apache.xerces.impl.xs.util.XSObjectListImpl; +import org.apache.xerces.util.XML11Char; import org.apache.xerces.util.XMLChar; import org.apache.xerces.xni.NamespaceContext; import org.apache.xerces.xs.ShortList; @@ -2073,17 +2074,19 @@ public class XSSimpleTypeDecl implements if (fPatternType != SPECIAL_PATTERN_NONE) { boolean seenErr = false; + boolean isSchema11 = context.getTypeValidatorHelper().isXMLSchema11(); + // if using XSD 1.1, use the XML 1.1 rules of validating the NMTOKEN, Name and NCName else use the XML 1.0 rules if (fPatternType == SPECIAL_PATTERN_NMTOKEN) { // PATTERN "\\c+" - seenErr = !XMLChar.isValidNmtoken(nvalue); + seenErr = (isSchema11) ? !XML11Char.isXML11ValidNmtoken(nvalue) : !XMLChar.isValidNmtoken(nvalue); } else if (fPatternType == SPECIAL_PATTERN_NAME) { - // PATTERN "\\i\\c*" - seenErr = !XMLChar.isValidName(nvalue); + // PATTERN "\\i\\c*" + seenErr = (isSchema11) ? !XML11Char.isXML11ValidName(nvalue) : !XMLChar.isValidName(nvalue); } else if (fPatternType == SPECIAL_PATTERN_NCNAME) { // PATTERN "[\\i-[:]][\\c-[:]]*" - seenErr = !XMLChar.isValidNCName(nvalue); + seenErr = (isSchema11) ? !XML11Char.isXML11ValidNCName(nvalue) : !XMLChar.isValidNCName(nvalue); } if (seenErr) { throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@xerces.apache.org For additional commands, e-mail: commits-h...@xerces.apache.org