Author: dkulp
Date: Mon Apr 2 15:47:49 2012
New Revision: 1308398
URL: http://svn.apache.org/viewvc?rev=1308398&view=rev
Log:
[XMLSCHEMA-20] Fix problem of serialized import elements always having
a targetNamespace attribute that may be empty.
Added:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test.xsd
(with props)
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test2.xsd
(with props)
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test3.xsd
(with props)
Modified:
webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
webservices/xmlschema/trunk/xmlschema-core/src/test/java/tests/IncludeTest.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=1308398&r1=1308397&r2=1308398&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
Mon Apr 2 15:47:49 2012
@@ -1392,7 +1392,7 @@ public class XmlSchemaSerializer {
Element importEl = createNewElement(doc, "import",
schema.getSchemaNamespacePrefix(),
XmlSchema.SCHEMA_NS);
- if (importObj.namespace != null) {
+ if (importObj.namespace != null && !"".equals(importObj.namespace)) {
importEl.setAttributeNS(null, "namespace", importObj.namespace);
}
@@ -1555,10 +1555,13 @@ public class XmlSchemaSerializer {
schemaElement = serializedSchema;
if (schemaObj.getSyntacticalTargetNamespace() != null) {
- serializedSchema.setAttributeNS(null, "targetNamespace",
schemaObj.getSyntacticalTargetNamespace());
+ String targetNamespace = schemaObj.getSyntacticalTargetNamespace();
+ if (targetNamespace != null && !"".equals(targetNamespace)) {
+ serializedSchema.setAttributeNS(null, "targetNamespace",
targetNamespace);
+ }
String targetNS =
-
(String)schemaNamespace.get(schemaObj.getSyntacticalTargetNamespace());
+ (String)schemaNamespace.get(targetNamespace);
//if the namespace is not entered then add
//the targetNamespace
Modified:
webservices/xmlschema/trunk/xmlschema-core/src/test/java/tests/IncludeTest.java
URL:
http://svn.apache.org/viewvc/webservices/xmlschema/trunk/xmlschema-core/src/test/java/tests/IncludeTest.java?rev=1308398&r1=1308397&r2=1308398&view=diff
==============================================================================
---
webservices/xmlschema/trunk/xmlschema-core/src/test/java/tests/IncludeTest.java
(original)
+++
webservices/xmlschema/trunk/xmlschema-core/src/test/java/tests/IncludeTest.java
Mon Apr 2 15:47:49 2012
@@ -28,6 +28,9 @@ import java.util.Set;
import javax.xml.namespace.QName;
import javax.xml.transform.stream.StreamSource;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
import org.xml.sax.InputSource;
import org.apache.ws.commons.schema.XmlSchema;
@@ -35,6 +38,7 @@ import org.apache.ws.commons.schema.XmlS
import org.apache.ws.commons.schema.XmlSchemaElement;
import org.apache.ws.commons.schema.XmlSchemaExternal;
import org.apache.ws.commons.schema.XmlSchemaInclude;
+import org.apache.ws.commons.schema.constants.Constants;
import org.junit.Assert;
import org.junit.Test;
@@ -161,4 +165,21 @@ public class IncludeTest extends Assert
XmlSchema schema = schemaCol.read(isource);
assertNotNull(schema);
}
+
+
+
+ @Test
+ public void testSerializeSchema() throws Exception {
+ String uri = Resources.asURI("XMLSCHEMA-20/test.xsd");
+ InputSource isource = new InputSource(new FileInputStream(uri));
+ isource.setSystemId(uri);
+ XmlSchemaCollection schemaCol = new XmlSchemaCollection();
+ XmlSchema schema = schemaCol.read(isource);
+ assertNotNull(schema);
+ Document doc = schema.getSchemaDocument();
+ Element el = (Element)doc.getDocumentElement()
+ .getElementsByTagNameNS(Constants.URI_2001_SCHEMA_XSD,
"import").item(0);
+ assertNotNull(el);
+ assertNull(el.getAttributeNodeNS(null, "targetNamespace"));
+ }
}
Added:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test.xsd
URL:
http://svn.apache.org/viewvc/webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test.xsd?rev=1308398&view=auto
==============================================================================
---
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test.xsd
(added)
+++
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test.xsd
Mon Apr 2 15:47:49 2012
@@ -0,0 +1,15 @@
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://example.org/ord"
+ xmlns="http://example.org/ord">
+
+ <xs:include schemaLocation="test2.xsd" />
+ <xs:import schemaLocation="test3.xsd" />
+
+ <xs:element name="order" type="OrderType" />
+ <xs:complexType name="OrderType">
+ <xs:sequence>
+ <xs:element name="number" type="OrderNumType" />
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
\ No newline at end of file
Propchange:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test.xsd
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test.xsd
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test2.xsd
URL:
http://svn.apache.org/viewvc/webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test2.xsd?rev=1308398&view=auto
==============================================================================
---
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test2.xsd
(added)
+++
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test2.xsd
Mon Apr 2 15:47:49 2012
@@ -0,0 +1,9 @@
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://example.org/ord"
+ targetNamespace="http://example.org/ord">
+
+ <xs:simpleType name="OrderNumType">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+</xs:schema>
\ No newline at end of file
Propchange:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test2.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test2.xsd
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test2.xsd
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test3.xsd
URL:
http://svn.apache.org/viewvc/webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test3.xsd?rev=1308398&view=auto
==============================================================================
---
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test3.xsd
(added)
+++
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test3.xsd
Mon Apr 2 15:47:49 2012
@@ -0,0 +1,2 @@
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+</xs:schema>
\ No newline at end of file
Propchange:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test3.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test3.xsd
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
webservices/xmlschema/trunk/xmlschema-core/src/test/resources/XMLSCHEMA-20/test3.xsd
------------------------------------------------------------------------------
svn:mime-type = text/xml