You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by sa...@apache.org on 2003/11/11 18:35:18 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/impl/xs/traversers XSDComplexTypeTraverser.java XSDElementTraverser.java

sandygao    2003/11/11 09:35:18

  Modified:    java/src/org/apache/xerces/impl/xs/traversers
                        XSDComplexTypeTraverser.java
                        XSDElementTraverser.java
  Log:
  More PSVI related fixes. We didn't have proper final/block values on
  element and complex declarations.
  
  Revision  Changes    Path
  1.40      +8 -13     xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
  
  Index: XSDComplexTypeTraverser.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- XSDComplexTypeTraverser.java	10 Nov 2003 20:44:41 -0000	1.39
  +++ XSDComplexTypeTraverser.java	11 Nov 2003 17:35:17 -0000	1.40
  @@ -225,18 +225,13 @@
           fName = complexTypeName;
           fComplexTypeDecl.setName(fName);
           fTargetNamespace = schemaDoc.fTargetNamespace;
  -        if (blockAtt == null) {
  -            fBlock = (short)(schemaDoc.fBlockDefault&(XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION));
  -        }
  -        else {
  -            fBlock = blockAtt.shortValue();
  -        }
  -        if (finalAtt == null) {
  -            fFinal = (short)(schemaDoc.fFinalDefault&(XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION));
  -        }
  -        else {
  -            fFinal = finalAtt.shortValue();
  -        }
  +
  +        fBlock = blockAtt == null ? schemaDoc.fBlockDefault : blockAtt.shortValue();
  +        fFinal = finalAtt == null ? schemaDoc.fFinalDefault : finalAtt.shortValue();
  +        //discard valid Block/Final 'Default' values that are invalid for Block/Final
  +        fBlock &= (XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION);
  +        fFinal &= (XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION);
  +
           if (abstractAtt != null && abstractAtt.booleanValue())
               fIsAbstract = true;
   
  
  
  
  1.27      +7 -13     xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDElementTraverser.java
  
  Index: XSDElementTraverser.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDElementTraverser.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- XSDElementTraverser.java	10 Nov 2003 20:44:41 -0000	1.26
  +++ XSDElementTraverser.java	11 Nov 2003 17:35:17 -0000	1.27
  @@ -310,18 +310,12 @@
           }
   
           // get 'block', 'final', 'nillable', 'abstract'
  -        if (blockAtt == null) {
  -            element.fBlock = (short)(schemaDoc.fBlockDefault&(XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION | XSConstants.DERIVATION_SUBSTITUTION));
  -        }
  -        else {
  -            element.fBlock = blockAtt.shortValue();
  -        }
  -        if (finalAtt == null) {
  -            element.fFinal = (short)(schemaDoc.fFinalDefault&(XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION));
  -        }
  -        else {
  -            element.fFinal = finalAtt.shortValue();
  -        }
  +        element.fBlock = blockAtt == null ? schemaDoc.fBlockDefault : blockAtt.shortValue();
  +        element.fFinal = finalAtt == null ? schemaDoc.fFinalDefault : finalAtt.shortValue();
  +        // discard valid Block/Final 'Default' values that are invalid for Block/Final
  +        element.fBlock &= (XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION | XSConstants.DERIVATION_SUBSTITUTION);
  +        element.fFinal &= (XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION);
  +
           if (nillableAtt.booleanValue())
               element.setIsNillable();
           if (abstractAtt != null && abstractAtt.booleanValue())
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org