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 2010/02/03 09:12:06 UTC
svn commit: r905928 -
/xerces/java/branches/xml-schema-1.1-dev/samples/xs/XSSerializer.java
Author: mukulg
Date: Wed Feb 3 08:12:05 2010
New Revision: 905928
URL: http://svn.apache.org/viewvc?rev=905928&view=rev
Log:
adding support for recursive model groups (like xs:choice & xs:sequence), during XSModel serialization
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=905928&r1=905927&r2=905928&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 Wed Feb 3 08:12:05 2010
@@ -424,8 +424,8 @@
} // end of, processGlobalAttrDecl
/*
- * Add attribute declaration to a Schema component (like, xs:schema or
- * xs:complexType).
+ * Add attribute declaration to a Schema component (like xs:schema,
+ * xs:complexType, ).
*/
private void addAttributeToSchemaComponent(Document document,
Element parentDomNode,
@@ -639,12 +639,12 @@
if (particleTerm instanceof XSModelGroup) {
XSModelGroup modelGroup = (XSModelGroup) particleTerm;
if (modelGroup.getCompositor() == XSModelGroup.COMPOSITOR_SEQUENCE) {
- addCompositorOnComplexType(document, complxTypeDomNode,
- modelGroup, "sequence");
+ addCompositorOnSchemaComponent(document, complxTypeDomNode,
+ modelGroup, "sequence");
}
else if (modelGroup.getCompositor() == XSModelGroup.COMPOSITOR_CHOICE) {
- addCompositorOnComplexType(document, complxTypeDomNode,
- modelGroup, "choice");
+ addCompositorOnSchemaComponent(document, complxTypeDomNode,
+ modelGroup, "choice");
}
else if (modelGroup.getCompositor() == XSModelGroup.COMPOSITOR_ALL) {
addAllCompositorOnComplexType(document, complxTypeDomNode,
@@ -657,13 +657,13 @@
/*
* Adding a "sequence" or "choice" compositor on a complex type
*/
- private void addCompositorOnComplexType(Document document,
- Element complxTypeDomNode,
+ private void addCompositorOnSchemaComponent(Document document,
+ Element parentDomNode,
XSModelGroup modelGroup,
String compositor)
throws DOMException {
- Element sequenceDeclDomNode = document.createElementNS(
+ Element compositorDomNode = document.createElementNS(
XSD_LANGUAGE_URI,
XSD_LANGUAGE_PREFIX
+ compositor);
@@ -678,18 +678,37 @@
if (partclTerm instanceof XSElementDeclaration) {
XSElementDecl elemDecl = (XSElementDecl) partclTerm;
addElementDeclToSchemaComponent(document,
- sequenceDeclDomNode,
+ compositorDomNode,
elemDecl,
minOccurs,
maxOccurs,
false);
}
+ else if (partclTerm instanceof XSModelGroup) {
+ // Recursively adding model groups
+ XSModelGroup partlModelGroup = (XSModelGroup) partclTerm;
+ if (modelGroup.getCompositor() ==
+ XSModelGroup.COMPOSITOR_CHOICE) {
+ addCompositorOnSchemaComponent(document, compositorDomNode,
+ partlModelGroup, "choice");
+ }
+ else if (modelGroup.getCompositor() ==
+ XSModelGroup.COMPOSITOR_SEQUENCE) {
+ addCompositorOnSchemaComponent(document, compositorDomNode,
+ partlModelGroup, "sequence");
+ }
+ }
+ else if (partclTerm instanceof XSWildcard) {
+ addWildcardToSchemaComponent(document,
+ compositorDomNode,
+ (XSWildcardDecl) partclTerm,
+ "any");
+ }
- // handle more compositor children like, group | choice |
- // sequence | any ...
+ // handle more compositor children like, group ...
}
- complxTypeDomNode.appendChild(sequenceDeclDomNode);
+ parentDomNode.appendChild(compositorDomNode);
} // end of, addCompositorOnComplexType
@@ -834,7 +853,7 @@
} // end of, addUnionDeclToSimpleType
/*
- * Find name of a facet given it's kind
+ * Get name of a facet given it's kind
*/
private String getFacetName(short facetKind) {
if (facetKind == XSSimpleTypeDefinition.FACET_MINEXCLUSIVE) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org