SWS-247 in 1.0 branch

This commit is contained in:
Arjen Poutsma
2007-12-07 14:49:13 +00:00
parent ba6d9e736e
commit fc317b0f63
2 changed files with 22 additions and 5 deletions

View File

@@ -37,15 +37,16 @@ import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.Resource;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.ws.wsdl.wsdl11.DynamicWsdl11Definition;
import org.springframework.xml.namespace.QNameUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
/**
* Builds a <code>WsdlDefinition</code> with a SOAP 1.1 binding based on an XSD schema. This builder iterates over all
@@ -281,7 +282,7 @@ public class XsdBasedSoap11Wsdl4jDefinitionBuilder extends AbstractSoap11Wsdl4jD
QName elementName = (QName) iterator.next();
if (elementName != null &&
(isRequestMessage(elementName) || isResponseMessage(elementName) || isFaultMessage(elementName))) {
if (!StringUtils.hasLength(definition.getPrefix(elementName.getNamespaceURI()))) {
if (definition.getPrefix(elementName.getNamespaceURI()) == null) {
int i = 0;
while (true) {
String prefix = schemaPrefix + Integer.toString(i);

View File

@@ -24,9 +24,11 @@ import javax.xml.transform.dom.DOMResult;
import org.custommonkey.xmlunit.XMLTestCase;
import org.custommonkey.xmlunit.XMLUnit;
import org.w3c.dom.Document;
import org.springframework.core.io.ClassPathResource;
import org.springframework.ws.wsdl.wsdl11.Wsdl11Definition;
import org.w3c.dom.Document;
import org.springframework.xml.transform.StringResult;
public class XsdBasedSoap11Wsdl4jDefinitionBuilderTest extends XMLTestCase {
@@ -144,6 +146,20 @@ public class XsdBasedSoap11Wsdl4jDefinitionBuilderTest extends XMLTestCase {
assertXMLEqual("Invalid WSDL built", expected, result);
}
public void testNoSchemaPrefix() throws Exception {
builder.setSchema(new ClassPathResource("single.xsd", getClass()));
builder.setPortTypeName("Order");
builder.setTargetNamespace("http://www.springframework.org/spring-ws/single/definitions");
builder.setSchemaPrefix("");
builder.afterPropertiesSet();
buildAll();
Wsdl11Definition definition = builder.getDefinition();
transformer.transform(definition.getSource(), new StringResult());
}
private void buildAll() {
builder.buildDefinition();
builder.buildImports();