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]

Reply via email to