You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by "Dmitry Repchevsky (JIRA)" <ji...@apache.org> on 2011/08/02 12:26:27 UTC
[jira] [Updated] (XMLSCHEMA-16) XmlSchemaSerializer doesn't
serialize union memberTypesQNames
[ https://issues.apache.org/jira/browse/XMLSCHEMA-16?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitry Repchevsky updated XMLSCHEMA-16:
---------------------------------------
Index: src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
===================================================================
--- src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java (revision 1153085)
+++ src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java (working copy)
@@ -2138,6 +2138,29 @@
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;
> XmlSchemaSerializer doesn't serialize union memberTypesQNames
> -------------------------------------------------------------
>
> Key: XMLSCHEMA-16
> URL: https://issues.apache.org/jira/browse/XMLSCHEMA-16
> Project: XmlSchema
> Issue Type: Improvement
> Affects Versions: XmlSchema 2.0
> Environment: Java
> Reporter: Dmitry Repchevsky
> Labels: patch
> Original Estimate: 0.05h
> Remaining Estimate: 0.05h
>
> The only way to define member types for an XmlSchemaSimpleTypeUnion is to define its "memberTypesSource" String.
> When a new XmlSchemaSimpleTypeUnion is created it must be possible to specify an array of QNames (memberTypesQNames).
> The problem is that elements specified in the "memberTypes" must be prefixed, but developer have no this information in a time of XmlSchemaSimpleTypeUnion creation.
> The patch creates memberTypes from provided memberTypesQNames when memberTypesSource is null.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org