sandygao 2003/02/10 06:40:59
Modified: java/src/org/apache/xerces/impl/xs
SubstitutionGroupHandler.java
Log:
1. Should combine the derivation methods (missed bit-or operation);
2. Need to deal with the special case of the base type of anySimpleType.
Revision Changes Path
1.11 +7 -3
xml-xerces/java/src/org/apache/xerces/impl/xs/SubstitutionGroupHandler.java
Index: SubstitutionGroupHandler.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/SubstitutionGroupHandler.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- SubstitutionGroupHandler.java 7 Feb 2003 15:32:48 -0000 1.10
+++ SubstitutionGroupHandler.java 10 Feb 2003 14:40:59 -0000 1.11
@@ -144,10 +144,14 @@
XSTypeDefinition type = element.fType;
while (type != exemplar.fType && type != SchemaGrammar.fAnyType) {
if (type.getTypeCategory() == XSTypeDefinition.COMPLEX_TYPE)
- devMethod = ((XSComplexTypeDecl)type).fDerivedBy;
+ devMethod |= ((XSComplexTypeDecl)type).fDerivedBy;
else
- devMethod = XSConstants.DERIVATION_RESTRICTION;
+ devMethod |= XSConstants.DERIVATION_RESTRICTION;
type = type.getBaseType();
+ // type == null means the current type is anySimpleType,
+ // whose base type should be anyType
+ if (type == null)
+ type = SchemaGrammar.fAnyType;
if (type.getTypeCategory() == XSTypeDefinition.COMPLEX_TYPE)
blockConstraint |= ((XSComplexTypeDecl)type).fBlock;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]