You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mu...@apache.org on 2014/02/04 09:42:39 UTC
svn commit: r1564227 -
/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java
Author: mukulg
Date: Tue Feb 4 08:42:39 2014
New Revision: 1564227
URL: http://svn.apache.org/r1564227
Log:
doing minor refactoring to XSD 1.1 XSDHandler component, to reduce complexity of code. currently haven't done this on XSD 1.0 code base.
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=1564227&r1=1564226&r2=1564227&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 Feb 4 08:42:39 2014
@@ -1601,73 +1601,11 @@ public class XSDHandler {
boolean sawAnnotation = false;
// traverse this schema's global decls
- for (Element globalComp =
- DOMUtil.getFirstVisibleChildElement(currRoot, fHiddenNodes);
- globalComp != null;
- globalComp = DOMUtil.getNextVisibleSiblingElement(globalComp, fHiddenNodes)) {
- DOMUtil.setHidden(globalComp, fHiddenNodes);
- String componentType = DOMUtil.getLocalName(globalComp);
- // includes and imports will not show up here!
- if (DOMUtil.getLocalName(globalComp).equals(SchemaSymbols.ELT_REDEFINE)) {
- // use the namespace decls for the redefine, instead of for the parent <schema>
- currSchemaDoc.backupNSSupport((SchemaNamespaceSupport)fRedefine2NSSupport.get(globalComp));
- for (Element redefinedComp = DOMUtil.getFirstVisibleChildElement(globalComp, fHiddenNodes);
- redefinedComp != null;
- redefinedComp = DOMUtil.getNextVisibleSiblingElement(redefinedComp, fHiddenNodes)) {
- String redefinedComponentType = DOMUtil.getLocalName(redefinedComp);
- DOMUtil.setHidden(redefinedComp, fHiddenNodes);
- if (redefinedComponentType.equals(SchemaSymbols.ELT_ATTRIBUTEGROUP)) {
- fAttributeGroupTraverser.traverseGlobal(redefinedComp, currSchemaDoc, currSG);
- }
- else if (redefinedComponentType.equals(SchemaSymbols.ELT_COMPLEXTYPE)) {
- fComplexTypeTraverser.traverseGlobal(redefinedComp, currSchemaDoc, currSG);
- }
- else if (redefinedComponentType.equals(SchemaSymbols.ELT_GROUP)) {
- fGroupTraverser.traverseGlobal(redefinedComp, currSchemaDoc, currSG);
- }
- else if (redefinedComponentType.equals(SchemaSymbols.ELT_SIMPLETYPE)) {
- fSimpleTypeTraverser.traverseGlobal(redefinedComp, currSchemaDoc, currSG);
- }
- // annotations will have been processed already; this is now
- // unnecessary
- //else if (redefinedComponentType.equals(SchemaSymbols.ELT_ANNOTATION)) {
- // fElementTraverser.traverseAnnotationDecl(redefinedComp, null, true, currSchemaDoc);
- //}
- else {
- reportSchemaError("s4s-elt-must-match.1", new Object [] {DOMUtil.getLocalName(globalComp), "(annotation | (simpleType | complexType | group | attributeGroup))*", redefinedComponentType}, redefinedComp);
- }
- } // end march through <redefine> children
- currSchemaDoc.restoreNSSupport();
- }
- else if (componentType.equals(SchemaSymbols.ELT_ATTRIBUTE)) {
- fAttributeTraverser.traverseGlobal(globalComp, currSchemaDoc, currSG);
- }
- else if (componentType.equals(SchemaSymbols.ELT_ATTRIBUTEGROUP)) {
- fAttributeGroupTraverser.traverseGlobal(globalComp, currSchemaDoc, currSG);
- }
- else if (componentType.equals(SchemaSymbols.ELT_COMPLEXTYPE)) {
- fComplexTypeTraverser.traverseGlobal(globalComp, currSchemaDoc, currSG);
- }
- else if (componentType.equals(SchemaSymbols.ELT_ELEMENT)) {
- fElementTraverser.traverseGlobal(globalComp, currSchemaDoc, currSG);
- }
- else if (componentType.equals(SchemaSymbols.ELT_GROUP)) {
- fGroupTraverser.traverseGlobal(globalComp, currSchemaDoc, currSG);
- }
- else if (componentType.equals(SchemaSymbols.ELT_NOTATION)) {
- fNotationTraverser.traverse(globalComp, currSchemaDoc, currSG);
- }
- else if (componentType.equals(SchemaSymbols.ELT_SIMPLETYPE)) {
- fSimpleTypeTraverser.traverseGlobal(globalComp, currSchemaDoc, currSG);
- }
- else if (componentType.equals(SchemaSymbols.ELT_ANNOTATION)) {
- currSG.addAnnotation(fElementTraverser.traverseAnnotationDecl(globalComp, currSchemaDoc.getSchemaAttrs(), true, currSchemaDoc));
- sawAnnotation = true;
- }
- else {
- reportSchemaError("s4s-elt-invalid-content.1", new Object [] {SchemaSymbols.ELT_SCHEMA, DOMUtil.getLocalName(globalComp)}, globalComp);
- }
- } // end for
+ for (Element globalComp = DOMUtil.getFirstVisibleChildElement(currRoot, fHiddenNodes);
+ globalComp != null;
+ globalComp = DOMUtil.getNextVisibleSiblingElement(globalComp, fHiddenNodes)) {
+ sawAnnotation = traverseXSDSchemaGlobalDecls(currSchemaDoc, currSG, sawAnnotation, globalComp);
+ }
if (!sawAnnotation) {
String text = DOMUtil.getSyntheticAnnotation(currRoot);
@@ -1696,6 +1634,79 @@ public class XSDHandler {
}
} // while
} // end traverseSchemas
+
+ /*
+ * Given a set of XSD schema documents to process, this method traverses global declarations of one of schema documents from this set.
+ */
+ private boolean traverseXSDSchemaGlobalDecls(XSDocumentInfo schemaDoc, SchemaGrammar schGrammar, boolean sawAnnotation, Element globalComp) {
+
+ DOMUtil.setHidden(globalComp, fHiddenNodes);
+ String componentType = DOMUtil.getLocalName(globalComp);
+
+ // includes and imports will not show up here!
+ if (DOMUtil.getLocalName(globalComp).equals(SchemaSymbols.ELT_REDEFINE)) {
+ // use the namespace decls for the redefine, instead of for the parent <schema>
+ schemaDoc.backupNSSupport((SchemaNamespaceSupport)fRedefine2NSSupport.get(globalComp));
+ for (Element redefinedComp = DOMUtil.getFirstVisibleChildElement(globalComp, fHiddenNodes);
+ redefinedComp != null;
+ redefinedComp = DOMUtil.getNextVisibleSiblingElement(redefinedComp, fHiddenNodes)) {
+ String redefinedComponentType = DOMUtil.getLocalName(redefinedComp);
+ DOMUtil.setHidden(redefinedComp, fHiddenNodes);
+ if (redefinedComponentType.equals(SchemaSymbols.ELT_ATTRIBUTEGROUP)) {
+ fAttributeGroupTraverser.traverseGlobal(redefinedComp, schemaDoc, schGrammar);
+ }
+ else if (redefinedComponentType.equals(SchemaSymbols.ELT_COMPLEXTYPE)) {
+ fComplexTypeTraverser.traverseGlobal(redefinedComp, schemaDoc, schGrammar);
+ }
+ else if (redefinedComponentType.equals(SchemaSymbols.ELT_GROUP)) {
+ fGroupTraverser.traverseGlobal(redefinedComp, schemaDoc, schGrammar);
+ }
+ else if (redefinedComponentType.equals(SchemaSymbols.ELT_SIMPLETYPE)) {
+ fSimpleTypeTraverser.traverseGlobal(redefinedComp, schemaDoc, schGrammar);
+ }
+ // annotations will have been processed already; this is now
+ // unnecessary
+ //else if (redefinedComponentType.equals(SchemaSymbols.ELT_ANNOTATION)) {
+ // fElementTraverser.traverseAnnotationDecl(redefinedComp, null, true, currSchemaDoc);
+ //}
+ else {
+ reportSchemaError("s4s-elt-must-match.1", new Object [] {DOMUtil.getLocalName(globalComp), "(annotation | (simpleType | complexType | group | attributeGroup))*", redefinedComponentType}, redefinedComp);
+ }
+ } // end march through <redefine> children
+ schemaDoc.restoreNSSupport();
+ }
+ else if (componentType.equals(SchemaSymbols.ELT_ATTRIBUTE)) {
+ fAttributeTraverser.traverseGlobal(globalComp, schemaDoc, schGrammar);
+ }
+ else if (componentType.equals(SchemaSymbols.ELT_ATTRIBUTEGROUP)) {
+ fAttributeGroupTraverser.traverseGlobal(globalComp, schemaDoc, schGrammar);
+ }
+ else if (componentType.equals(SchemaSymbols.ELT_COMPLEXTYPE)) {
+ fComplexTypeTraverser.traverseGlobal(globalComp, schemaDoc, schGrammar);
+ }
+ else if (componentType.equals(SchemaSymbols.ELT_ELEMENT)) {
+ fElementTraverser.traverseGlobal(globalComp, schemaDoc, schGrammar);
+ }
+ else if (componentType.equals(SchemaSymbols.ELT_GROUP)) {
+ fGroupTraverser.traverseGlobal(globalComp, schemaDoc, schGrammar);
+ }
+ else if (componentType.equals(SchemaSymbols.ELT_NOTATION)) {
+ fNotationTraverser.traverse(globalComp, schemaDoc, schGrammar);
+ }
+ else if (componentType.equals(SchemaSymbols.ELT_SIMPLETYPE)) {
+ fSimpleTypeTraverser.traverseGlobal(globalComp, schemaDoc, schGrammar);
+ }
+ else if (componentType.equals(SchemaSymbols.ELT_ANNOTATION)) {
+ schGrammar.addAnnotation(fElementTraverser.traverseAnnotationDecl(globalComp, schemaDoc.getSchemaAttrs(), true, schemaDoc));
+ sawAnnotation = true;
+ }
+ else {
+ reportSchemaError("s4s-elt-invalid-content.1", new Object [] {SchemaSymbols.ELT_SCHEMA, DOMUtil.getLocalName(globalComp)}, globalComp);
+ }
+
+ return sawAnnotation;
+
+ } // traverseXSDSchemaGlobalDecls
// store whether we have reported an error about that no grammar
// is found for the given namespace uri
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org