You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by dk...@apache.org on 2011/09/15 16:38:56 UTC
svn commit: r1171114 -
/webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
Author: dkulp
Date: Thu Sep 15 14:38:56 2011
New Revision: 1171114
URL: http://svn.apache.org/viewvc?rev=1171114&view=rev
Log:
[XMLSCHEMA-16] Output qnames for unions
Patch from Dmitry Repchevsky applied
Modified:
webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
Modified: webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
URL: http://svn.apache.org/viewvc/webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java?rev=1171114&r1=1171113&r2=1171114&view=diff
==============================================================================
--- webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java (original)
+++ webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java Thu Sep 15 14:38:56 2011
@@ -613,13 +613,13 @@ public class XmlSchemaSerializer {
choice.appendChild(annotation);
}
- List<XmlSchemaObject> itemColl = choiceObj.getItems();
+ List<XmlSchemaChoiceMember> itemColl = choiceObj.getItems();
if (itemColl != null) {
int itemLength = itemColl.size();
for (int i = 0; i < itemLength; i++) {
- XmlSchemaObject obj = itemColl.get(i);
+ XmlSchemaChoiceMember obj = itemColl.get(i);
if (obj instanceof XmlSchemaElement) {
Element el = serializeElement(doc, (XmlSchemaElement)obj, schema);
@@ -2138,6 +2138,29 @@ public class XmlSchemaSerializer {
if (unionObj.getMemberTypesSource() != null) {
union.setAttribute("memberTypes", unionObj.getMemberTypesSource());
}
+ else {
+ QName[] memberTypesQNames = unionObj.getMemberTypesQNames();
+ if (memberTypesQNames != null && memberTypesQNames.length > 0) {
+ StringBuilder memberTypes = new StringBuilder();
+ for (int i = memberTypesQNames.length - 1; i >= 0; i--) {
+ QName memberTypesQName = memberTypesQNames[i];
+ String namespace = memberTypesQName.getNamespaceURI();
+ if (namespace.length() != 0) {
+ String prefix = schemaNamespace.get(namespace);
+ if (prefix.length() != 0) {
+ memberTypes.append(prefix).append(':');
+ }
+ }
+ memberTypes.append(memberTypesQName.getLocalPart());
+ if (i != 0) {
+ memberTypes.append(' ');
+ }
+ }
+
+ union.setAttribute("memberTypes", memberTypes.toString());
+ }
+ }
+
if (unionObj.getBaseTypes().size() > 0) {
int baseTypesLength = unionObj.getBaseTypes().size();
Element baseType;