sandygao 2003/02/17 08:03:11
Modified: java/src/org/apache/xerces/impl/dv/xs XSSimpleTypeDecl.java
Log:
Schema erratum E2-36: length, minLength, maxLength facets have no effect
on QName and NOTATION derived types.
Revision Changes Path
1.32 +22 -19
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java
Index: XSSimpleTypeDecl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- XSSimpleTypeDecl.java 7 Feb 2003 15:27:21 -0000 1.31
+++ XSSimpleTypeDecl.java 17 Feb 2003 16:03:11 -0000 1.32
@@ -1363,29 +1363,32 @@
Object ob = validatedInfo.actualValue;
String content = validatedInfo.normalizedValue;
- int length = fDVs[fValidationDV].getDataLength(ob);
+ // For QName and NOTATION types, we don't check length facets
+ if (fValidationDV != DV_QNAME && fValidationDV != DV_NOTATION) {
+ int length = fDVs[fValidationDV].getDataLength(ob);
- // maxLength
- if ( (fFacetsDefined & FACET_MAXLENGTH) != 0 ) {
- if ( length > fMaxLength ) {
- throw new InvalidDatatypeValueException("cvc-maxLength-valid",
- new Object[]{content,
Integer.toString(length), Integer.toString(fMaxLength)});
+ // maxLength
+ if ( (fFacetsDefined & FACET_MAXLENGTH) != 0 ) {
+ if ( length > fMaxLength ) {
+ throw new InvalidDatatypeValueException("cvc-maxLength-valid",
+ new Object[]{content, Integer.toString(length),
Integer.toString(fMaxLength)});
+ }
}
- }
- //minLength
- if ( (fFacetsDefined & FACET_MINLENGTH) != 0 ) {
- if ( length < fMinLength ) {
- throw new InvalidDatatypeValueException("cvc-minLength-valid",
- new Object[]{content,
Integer.toString(length), Integer.toString(fMinLength)});
+ //minLength
+ if ( (fFacetsDefined & FACET_MINLENGTH) != 0 ) {
+ if ( length < fMinLength ) {
+ throw new InvalidDatatypeValueException("cvc-minLength-valid",
+ new Object[]{content, Integer.toString(length),
Integer.toString(fMinLength)});
+ }
}
- }
- //length
- if ( (fFacetsDefined & FACET_LENGTH) != 0 ) {
- if ( length != fLength ) {
- throw new InvalidDatatypeValueException("cvc-length-valid",
- new Object[]{content,
Integer.toString(length), Integer.toString(fLength)});
+ //length
+ if ( (fFacetsDefined & FACET_LENGTH) != 0 ) {
+ if ( length != fLength ) {
+ throw new InvalidDatatypeValueException("cvc-length-valid",
+ new Object[]{content, Integer.toString(length),
Integer.toString(fLength)});
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]