Announcement Announcement Module
Collapse
No announcement yet.
existing wsdl with import xsd Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • existing wsdl with import xsd

    hallo @all,

    sping-ws 1.5.7.
    spring 2.5.6.

    I have a wsdl which SHALL include an external xsd file.
    The wsdl is valid as it is, e.g. it is not a prob to reference it from a browser or using it in .NET. (this is NOT my problem)

    It look more or less this (snippet):

    .<?xml version="1.0" encoding="utf-8"?>
    .<definitions xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:tns="http://SOMETHING/wsdl/" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" .xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" .xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://SOMETHING/message/" targetNamespace="http://SOMETHING/" xmlns="http://schemas.xmlsoap.org/wsdl/">
    . <types>
    . <xsd:schema elementFormDefault="qualified">
    . <xsd:import namespace="http://SOMETHING/message/" schemaLocation="external.xsd"/>
    . </xsd:schema>
    . </types>
    . <message name="ReadRequest">
    . <part name="parameters" element="ns1:Read" />
    . </message>
    . <message name="SetResponse">
    . <part name="parameters" element="ns1:SetResponse" />
    . </message>
    . [...]


    My goal is that the xsd:import SHALL be replace with the xsd types when a client asks for this wsdl, like this

    .<?xml version="1.0" encoding="utf-8"?>
    .<definitions xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:tns="http://SOMETHING/wsdl/" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" .xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" .xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://SOMETHING/message/" targetNamespace="http://SOMETHING/" xmlns="http://schemas.xmlsoap.org/wsdl/">
    . <types>
    . <xsd:schema elementFormDefault="qualified">
    . <xsd:complexType name="MyItem">
    . <xsd:complexContent>
    . <xsd:extension base="ns1:MyBase"/>
    . </xsd:complexContent>
    . </xsd:complexType>
    . </xsd:schema>
    . </types>
    . <message name="ReadRequest">
    . <part name="parameters" element="ns1:Read" />
    . </message>
    . <message name="SetResponse">
    . <part name="parameters" element="ns1:SetResponse" />
    . </message>
    . [...]


    1) When I take 'org.springframework.ws.wsdl.wsdl11.SimpleWsdl11De finition', my problem is that spring takes it as it is (none replace)

    2) Taking 'org.springframework.ws.wsdl.wsdl11.DefaultWsdl11D efinition', spring creates completly a wsdl which contains my xsd but the rest of wsdl is also generated.

    . <property name="schema">
    . <bean class="org.springframework.xml.xsd.SimpleXsdSchema ">
    . <property name="xsd" value="classpath:external.xsd"/>
    . </bean>
    . </property>

    3) when I copy my external.xsd-types as an implicit wsdl:types (instead of the xsd:import, like my SHALL be snippet) everything is fine.

    Any comments would be helpful.
    Thanks
    Adrian
Working...
X