neilg 2003/06/05 14:51:33 Modified: java/src/org/apache/xerces/impl/dv/dtd XML11IDDatatypeValidator.java XML11IDREFDatatypeValidator.java IDDatatypeValidator.java IDREFDatatypeValidator.java java/src/org/apache/xerces/impl/dtd XMLDTDValidator.java Log: when namespaces are enabled, we will now honour the namespace-validity constraint that states that attributes of type ID/IDREF/IDREFS must be NCNames Revision Changes Path 1.2 +10 -3 xml-xerces/java/src/org/apache/xerces/impl/dv/dtd/XML11IDDatatypeValidator.java Index: XML11IDDatatypeValidator.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/dtd/XML11IDDatatypeValidator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- XML11IDDatatypeValidator.java 7 Dec 2002 00:20:55 -0000 1.1 +++ XML11IDDatatypeValidator.java 5 Jun 2003 21:51:32 -0000 1.2 @@ -101,8 +101,15 @@ public void validate(String content, ValidationContext context) throws InvalidDatatypeValueException { //Check if is valid key-[81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* - if (!XML11Char.isXML11ValidName(content)) { - throw new InvalidDatatypeValueException("IDInvalid", new Object[]{content}); + 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)) { 1.2 +10 -3 xml-xerces/java/src/org/apache/xerces/impl/dv/dtd/XML11IDREFDatatypeValidator.java Index: XML11IDREFDatatypeValidator.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/dtd/XML11IDREFDatatypeValidator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- XML11IDREFDatatypeValidator.java 7 Dec 2002 00:20:55 -0000 1.1 +++ XML11IDREFDatatypeValidator.java 5 Jun 2003 21:51:32 -0000 1.2 @@ -98,8 +98,15 @@ public void validate(String content, ValidationContext context) throws InvalidDatatypeValueException { //Check if is valid key-[81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* - if (!XML11Char.isXML11ValidName(content)) { - throw new InvalidDatatypeValueException("IDREFInvalid", new Object[]{content}); + 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); 1.7 +10 -3 xml-xerces/java/src/org/apache/xerces/impl/dv/dtd/IDDatatypeValidator.java Index: IDDatatypeValidator.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/dtd/IDDatatypeValidator.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- IDDatatypeValidator.java 18 Jul 2002 20:48:43 -0000 1.6 +++ IDDatatypeValidator.java 5 Jun 2003 21:51:32 -0000 1.7 @@ -99,8 +99,15 @@ public void validate(String content, ValidationContext context) throws InvalidDatatypeValueException { //Check if is valid key-[81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* - if (!XMLChar.isValidName(content)) { - throw new InvalidDatatypeValueException("IDInvalid", new Object[]{content}); + if(context.useNamespaces()) { + if (!XMLChar.isValidNCName(content)) { + throw new InvalidDatatypeValueException("IDInvalidWithNamespaces", new Object[]{content}); + } + } + else { + if (!XMLChar.isValidName(content)) { + throw new InvalidDatatypeValueException("IDInvalid", new Object[]{content}); + } } if (context.isIdDeclared(content)) { 1.7 +10 -3 xml-xerces/java/src/org/apache/xerces/impl/dv/dtd/IDREFDatatypeValidator.java Index: IDREFDatatypeValidator.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/dtd/IDREFDatatypeValidator.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- IDREFDatatypeValidator.java 18 Jul 2002 20:48:43 -0000 1.6 +++ IDREFDatatypeValidator.java 5 Jun 2003 21:51:32 -0000 1.7 @@ -96,8 +96,15 @@ public void validate(String content, ValidationContext context) throws InvalidDatatypeValueException { //Check if is valid key-[81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* - if (!XMLChar.isValidName(content)) { - throw new InvalidDatatypeValueException("IDREFInvalid", new Object[]{content}); + if(context.useNamespaces()) { + if (!XMLChar.isValidNCName(content)) { + throw new InvalidDatatypeValueException("IDREFInvalidWithNamespaces", new Object[]{content}); + } + } + else { + if (!XMLChar.isValidName(content)) { + throw new InvalidDatatypeValueException("IDREFInvalid", new Object[]{content}); + } } context.addIdRef(content); 1.49 +2 -1 xml-xerces/java/src/org/apache/xerces/impl/dtd/XMLDTDValidator.java Index: XMLDTDValidator.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dtd/XMLDTDValidator.java,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- XMLDTDValidator.java 30 Apr 2003 20:24:48 -0000 1.48 +++ XMLDTDValidator.java 5 Jun 2003 21:51:32 -0000 1.49 @@ -501,6 +501,7 @@ fValidationManager= (ValidationManager)componentManager.getProperty(VALIDATION_MANAGER); fValidationManager.addValidationState(fValidationState); fValidationState.resetIDTables(); + fValidationState.setUsingNamespaces(fNamespaces); // get needed components fErrorReporter = (XMLErrorReporter)componentManager.getProperty(Constants.XERCES_PROPERTY_PREFIX+Constants.ERROR_REPORTER_PROPERTY);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]