You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2011/05/31 05:19:44 UTC

svn commit: r1129476 - /xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java

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-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org