sandygao 2003/11/10 12:44:41 Modified: java/src/org/apache/xerces/impl/xs/traversers XSDAttributeTraverser.java XSDComplexTypeTraverser.java XSDElementTraverser.java Log: Committing the PSVI Writer patch propsed by Pete Lloyd, with minor modifications. Thx Pete. Revision Changes Path 1.26 +6 -3 xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDAttributeTraverser.java Index: XSDAttributeTraverser.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDAttributeTraverser.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- XSDAttributeTraverser.java 23 Jun 2003 16:35:22 -0000 1.25 +++ XSDAttributeTraverser.java 10 Nov 2003 20:44:41 -0000 1.26 @@ -263,13 +263,16 @@ // get 'target namespace' String tnsAtt = null; XSComplexTypeDecl enclCT = null; - short scope = 0; + short scope = XSAttributeDecl.SCOPE_ABSENT; if (isGlobal) { tnsAtt = schemaDoc.fTargetNamespace; scope = XSAttributeDecl.SCOPE_GLOBAL; } else { - enclCT = enclosingCT; + if (enclosingCT != null) { + enclCT = enclosingCT; + scope = XSAttributeDecl.SCOPE_LOCAL; + } if (formAtt != null) { if (formAtt.intValue() == SchemaSymbols.FORM_QUALIFIED) tnsAtt = schemaDoc.fTargetNamespace; 1.39 +13 -5 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.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- XSDComplexTypeTraverser.java 25 Sep 2003 22:59:21 -0000 1.38 +++ XSDComplexTypeTraverser.java 10 Nov 2003 20:44:41 -0000 1.39 @@ -225,10 +225,18 @@ fName = complexTypeName; fComplexTypeDecl.setName(fName); fTargetNamespace = schemaDoc.fTargetNamespace; - fBlock = blockAtt == null ? - schemaDoc.fBlockDefault : blockAtt.shortValue(); - fFinal = finalAtt == null ? - schemaDoc.fFinalDefault : finalAtt.shortValue(); + 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(); + } if (abstractAtt != null && abstractAtt.booleanValue()) fIsAbstract = true; 1.26 +13 -3 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.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- XSDElementTraverser.java 23 Jun 2003 16:35:22 -0000 1.25 +++ XSDElementTraverser.java 10 Nov 2003 20:44:41 -0000 1.26 @@ -310,8 +310,18 @@ } // get 'block', 'final', 'nillable', 'abstract' - element.fBlock = blockAtt == null ? schemaDoc.fBlockDefault : blockAtt.shortValue(); - element.fFinal = finalAtt == null ? schemaDoc.fFinalDefault : finalAtt.shortValue(); + 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(); + } if (nillableAtt.booleanValue()) element.setIsNillable(); if (abstractAtt != null && abstractAtt.booleanValue())
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]