Author: mrglavas Date: Tue May 31 03:19:43 2011 New Revision: 1129476 URL: http://svn.apache.org/viewvc?rev=1129476&view=rev Log: JIRA Issue #1516: http://issues.apache.org/jira/browse/XERCESJ-1516. Only create an XSDTypeAlternativeTraverser in XML Schema 1.1 mode. This eliminates loading of PsychoPath classes when Xerces is only used in XML Schema 1.0 mode.
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java?rev=1129476&r1=1129475&r2=1129476&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java Tue May 31 03:19:43 2011 @@ -434,9 +434,9 @@ public class XSDHandler { XSDKeyrefTraverser fKeyrefTraverser; XSDNotationTraverser fNotationTraverser; XSDSimpleTypeTraverser fSimpleTypeTraverser; - XSDTypeAlternativeTraverser fTypeAlternativeTraverser; XSDUniqueOrKeyTraverser fUniqueOrKeyTraverser; XSDWildcardTraverser fWildCardTraverser; + XSDTypeAlternativeTraverser fTypeAlternativeTraverser; SchemaDVFactory fDVFactory; SchemaDOMParser fSchemaParser; @@ -3633,11 +3633,14 @@ public class XSDHandler { fKeyrefTraverser = new XSDKeyrefTraverser(this, fAttributeChecker); fNotationTraverser = new XSDNotationTraverser(this, fAttributeChecker); fSimpleTypeTraverser = new XSDSimpleTypeTraverser(this, fAttributeChecker); - fTypeAlternativeTraverser = new XSDTypeAlternativeTraverser(this, fAttributeChecker); fUniqueOrKeyTraverser = new XSDUniqueOrKeyTraverser(this, fAttributeChecker); fWildCardTraverser = new XSDWildcardTraverser(this, fAttributeChecker); } // createTraversers() + private void createXSD11Traversers() { + fTypeAlternativeTraverser = new XSDTypeAlternativeTraverser(this, fAttributeChecker); + } // createXSD11Traversers() + // before parsing a schema, need to clear registries associated with // parsing schemas void prepareForParse() { @@ -3710,6 +3713,10 @@ public class XSDHandler { if (fAttributeChecker == null) { createTraversers(); } + if (fSchemaVersion == Constants.SCHEMA_VERSION_1_1 && + fTypeAlternativeTraverser == null) { + createXSD11Traversers(); + } // reset traversers Locale locale = fErrorReporter.getLocale(); @@ -3722,9 +3729,11 @@ public class XSDHandler { fKeyrefTraverser.reset(fSymbolTable, fValidateAnnotations, locale); fNotationTraverser.reset(fSymbolTable, fValidateAnnotations, locale); fSimpleTypeTraverser.reset(fSymbolTable, fValidateAnnotations, locale); - fTypeAlternativeTraverser.reset(fSymbolTable, fValidateAnnotations, locale); fUniqueOrKeyTraverser.reset(fSymbolTable, fValidateAnnotations, locale); fWildCardTraverser.reset(fSymbolTable, fValidateAnnotations, locale); + if (fTypeAlternativeTraverser != null) { + fTypeAlternativeTraverser.reset(fSymbolTable, fValidateAnnotations, locale); + } fRedefinedRestrictedAttributeGroupRegistry.clear(); fRedefinedRestrictedGroupRegistry.clear(); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@xerces.apache.org For additional commands, e-mail: commits-h...@xerces.apache.org