Author: mukulg
Date: Mon Jul 25 13:54:04 2011
New Revision: 1150701

URL: http://svn.apache.org/viewvc?rev=1150701&view=rev
Log:
improving XSSerializer utility. adding option to serialize <anyAttribute/> 
declaration on complexType definition, and improving serialization of <any/> 
wild-card.

Modified:
    xerces/java/branches/xml-schema-1.1-dev/samples/xs/XSSerializer.java

Modified: xerces/java/branches/xml-schema-1.1-dev/samples/xs/XSSerializer.java
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/samples/xs/XSSerializer.java?rev=1150701&r1=1150700&r2=1150701&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/samples/xs/XSSerializer.java 
(original)
+++ xerces/java/branches/xml-schema-1.1-dev/samples/xs/XSSerializer.java Mon 
Jul 25 13:54:04 2011
@@ -187,8 +187,8 @@ public class XSSerializer {
         DocumentBuilder dBuilder = dbf.newDocumentBuilder();
         Document document = dBuilder.newDocument();
 
-        Element schemaDeclDomNode = document.createElementNS(XSD_LANGUAGE_URI, 
XSD_LANGUAGE_PREFIX + SchemaSymbols.ELT_SCHEMA);     
-
+        Element schemaDeclDomNode = document.createElementNS(XSD_LANGUAGE_URI, 
XSD_LANGUAGE_PREFIX + SchemaSymbols.ELT_SCHEMA);
+        
         document.appendChild(schemaDeclDomNode);
 
         // process global element declarations
@@ -253,9 +253,10 @@ public class XSSerializer {
                 addAttributeToSchemaComponent(document, attrGpDomNode, 
attrDecl, constraintName, constraintVal, requiredVal);
             }
 
+            // possible serialization of <anyAttribute/>
             XSWildcard attrWildCard = attrGpDecl.getAttributeWildcard();
             if (attrWildCard != null) {
-                addWildcardToSchemaComponent(document, attrGpDomNode, 
(XSWildcardDecl) attrWildCard, SchemaSymbols.ELT_ANYATTRIBUTE);
+                addWildcardToSchemaComponent(document, attrGpDomNode, 
(XSWildcardDecl) attrWildCard, SchemaSymbols.ELT_ANYATTRIBUTE, null, null);
             }
 
             schemaDeclDomNode.appendChild(attrGpDomNode);
@@ -446,7 +447,7 @@ public class XSSerializer {
      */
     private void processGlobalComplexTypeDecl(XSNamedMap 
globalComplexTypeDecls, Document document, Element schemaDeclDomNode) throws 
DOMException {
 
-        // iterating global complex types in the Schema
+        // iterating global complex type definitions in the Schema.
         // leaving out built-in Schema type, "anyType" from iteration        
         for (int ctIdx = 0; ctIdx < globalComplexTypeDecls.size() - 1; 
ctIdx++) {
             XSComplexTypeDecl complexTypeDecl = (XSComplexTypeDecl) 
globalComplexTypeDecls.item(ctIdx);
@@ -701,7 +702,7 @@ public class XSSerializer {
 
 
     /*
-     * Add child content to complex type declaration.
+     * Add child content to complex type definition.
      */
     private void addChildrenToComplexType(Document document, Element 
parentDomNode, XSComplexTypeDecl complexTypeDecl, Element complexTypeDomNode) 
throws DOMException {
 
@@ -890,6 +891,12 @@ public class XSSerializer {
                 addAttributeToSchemaComponent(document, parentDomNode, 
attrDecl, constraintName, constraintVal, requiredVal); 
             }
         }
+        
+        // possible serialization of <anyAttribute/>
+        XSWildcard attrWildCard = complexTypeDecl.getAttributeWildcard();
+        if (attrWildCard != null) {            
+            addWildcardToSchemaComponent(document, parentDomNode, 
(XSWildcardDecl) attrWildCard, SchemaSymbols.ELT_ANYATTRIBUTE, null, null);
+        }
 
     } // addAttributesToComplexType    
 
@@ -955,7 +962,7 @@ public class XSSerializer {
                 }
             }
             else if (partclTerm instanceof XSWildcard) {
-                addWildcardToSchemaComponent(document, compositorDomNode, 
(XSWildcardDecl) partclTerm, SchemaSymbols.ELT_ANY);   
+                addWildcardToSchemaComponent(document, compositorDomNode, 
(XSWildcardDecl) partclTerm, SchemaSymbols.ELT_ANY, minOccursParticle, 
maxOccursParticle);   
             }
         }
 
@@ -989,7 +996,7 @@ public class XSSerializer {
             }
             else if (partclTerm instanceof XSWildcard) {
                 XSWildcardDecl wildCardDecl = (XSWildcardDecl) partclTerm;
-                addWildcardToSchemaComponent(document, allDeclDomNode, 
wildCardDecl, SchemaSymbols.ELT_ANY);                                        
+                addWildcardToSchemaComponent(document, allDeclDomNode, 
wildCardDecl, SchemaSymbols.ELT_ANY, minOccursParticle, maxOccursParticle);     
                                   
             }
         }
 
@@ -1001,12 +1008,18 @@ public class XSSerializer {
     /*
      * Adding wild-card to a Schema component.
      */
-    private void addWildcardToSchemaComponent(Document document, Element 
parentNode, XSWildcardDecl wildCardDecl, String wildCardType) {        
+    private void addWildcardToSchemaComponent(Document document, Element 
parentNode, XSWildcardDecl wildCardDecl, String wildCardType, String minOccurs, 
String maxOccurs) {        
         Element wildCardDomNode = document.createElementNS(XSD_LANGUAGE_URI, 
XSD_LANGUAGE_PREFIX + wildCardType);
         String processContentsVal = wildCardDecl.getProcessContentsAsString();
         if (!processContentsVal.equals(SchemaSymbols.ATTVAL_STRICT)) {
             wildCardDomNode.setAttributeNS(null, 
SchemaSymbols.ATT_PROCESSCONTENTS, processContentsVal);
         }
+        if (minOccurs != null) {
+            wildCardDomNode.setAttributeNS(null, SchemaSymbols.ATT_MINOCCURS, 
minOccurs);
+        }
+        if (maxOccurs != null) {
+            wildCardDomNode.setAttributeNS(null, SchemaSymbols.ATT_MAXOCCURS, 
maxOccurs);
+        }
         parentNode.appendChild(wildCardDomNode);                
     } // addWildcardToSchemaComponent
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@xerces.apache.org
For additional commands, e-mail: commits-h...@xerces.apache.org

Reply via email to