Skip to content

Commit 557fa9d

Browse files
committed
SWS-339
1 parent 13f5bb8 commit 557fa9d

File tree

7 files changed

+42
-88
lines changed

7 files changed

+42
-88
lines changed

core/src/test/resources/org/springframework/ws/wsdl/wsdl11/include-inline.wsdl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,14 @@
1111
xmlns="http://www.springframework.org/spring-ws/include/schema" elementFormDefault="qualified"
1212
attributeFormDefault="unqualified">
1313

14+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
15+
1416
<xsd:element name="GetOrderRequest">
1517
<xsd:complexType>
1618
<xsd:sequence>
1719
<xsd:element name="child" type="xsd:string"/>
1820
</xsd:sequence>
21+
<xsd:attribute ref="xml:lang" use="required"/>
1922
</xsd:complexType>
2023
</xsd:element>
2124

core/src/test/resources/org/springframework/ws/wsdl/wsdl11/including.xsd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
attributeFormDefault="unqualified">
66

77
<xsd:include schemaLocation="included.xsd"/>
8+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
89

910
<xsd:element name="GetOrderRequest">
1011
<xsd:complexType>
1112
<xsd:sequence>
1213
<xsd:element name="child" type="xsd:string"/>
1314
</xsd:sequence>
15+
<xsd:attribute ref="xml:lang" use="required"/>
1416
</xsd:complexType>
1517
</xsd:element>
1618

core/src/test/resources/org/springframework/ws/wsdl/wsdl11/provider/B.xsd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
targetNamespace="urn:1"
44
xmlns="urn:1"
55
xmlns:imported="urn:2" elementFormDefault="qualified">
6+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
67
<xsd:include schemaLocation="C.xsd"/>
78
<xsd:import schemaLocation="D.xsd" namespace="urn:2"/>
89
<xsd:complexType name="B">
910
<xsd:sequence>
1011
<xsd:element type="C" name="c"/>
1112
<xsd:element type="imported:D" name="d"/>
1213
</xsd:sequence>
14+
<!--<xsd:attribute ref="xml:lang" use="required"/>-->
1315
</xsd:complexType>
1416
</xsd:schema>

samples/airline/src/main/java/org/springframework/ws/samples/airline/security/AcegiFrequentFlyerSecurityService.java

Lines changed: 0 additions & 84 deletions
This file was deleted.

xml/src/main/java/org/springframework/xml/xsd/commons/CommonsXsdSchemaCollection.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,12 +159,12 @@ private void inlineIncludes(XmlSchema schema, List processedSchemas) {
159159

160160
private void findImports(XmlSchema schema, List processedSchemas) {
161161
processedSchemas.add(schema);
162-
XmlSchemaObjectCollection includes = schema.getIncludes();
163-
for (int i = 0; i < includes.getCount(); i++) {
164-
XmlSchemaExternal external = (XmlSchemaExternal) includes.getItem(i);
162+
XmlSchemaObjectCollection imports = schema.getIncludes();
163+
for (int i = 0; i < imports.getCount(); i++) {
164+
XmlSchemaExternal external = (XmlSchemaExternal) imports.getItem(i);
165165
if (external instanceof XmlSchemaImport) {
166166
XmlSchema importedSchema = external.getSchema();
167-
if (!processedSchemas.contains(importedSchema)) {
167+
if (importedSchema != null && !processedSchemas.contains(importedSchema)) {
168168
inlineIncludes(importedSchema, processedSchemas);
169169
findImports(importedSchema, processedSchemas);
170170
xmlSchemas.add(importedSchema);

xml/src/test/java/org/springframework/xml/xsd/AbstractXsdSchemaTestCase.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,19 @@ public void testImports() throws Exception {
8585
assertXMLEqual("Invalid Source returned", expected, result);
8686
}
8787

88+
public void testXmlNamespace() throws Exception {
89+
Resource resource = new ClassPathResource("xmlNamespace.xsd", AbstractXsdSchemaTestCase.class);
90+
XsdSchema importing = createSchema(resource);
91+
String namespace = "http://www.springframework.org/spring-ws/xmlNamespace";
92+
assertEquals("Invalid target namespace", namespace, importing.getTargetNamespace());
93+
resource = new ClassPathResource("xmlNamespace.xsd", AbstractXsdSchemaTestCase.class);
94+
Document expected = documentBuilder.parse(SaxUtils.createInputSource(resource));
95+
DOMResult domResult = new DOMResult();
96+
transformer.transform(importing.getSource(), domResult);
97+
Document result = (Document) domResult.getNode();
98+
assertXMLEqual("Invalid Source returned", expected, result);
99+
}
100+
88101
public void testCreateValidator() throws Exception {
89102
Resource resource = new ClassPathResource("single.xsd", AbstractXsdSchemaTestCase.class);
90103
XsdSchema single = createSchema(resource);
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
3+
targetNamespace="http://www.springframework.org/spring-ws/xmlNamespace"
4+
xmlns="http://www.springframework.org/spring-ws/xmlNamespace" elementFormDefault="qualified"
5+
attributeFormDefault="unqualified">
6+
7+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
8+
9+
<xsd:element name="GetOrderRequest">
10+
<xsd:complexType>
11+
<xsd:sequence>
12+
<xsd:element name="child" type="xsd:string"/>
13+
</xsd:sequence>
14+
<xsd:attribute ref="xml:lang" use="required"/>
15+
</xsd:complexType>
16+
</xsd:element>
17+
18+
</xsd:schema>

0 commit comments

Comments
 (0)