blob: 6ba49b297d4788a4d7fe7724c8a37943c9acff90 [file]
<?xml version="1.0" ?>
<definitions
name="ref types test"
targetNamespace="urn:ref.types.test"
xmlns:tns="urn:ref.types.test"
xmlns:typens="urn:ref.types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<!-- type defs -->
<types>
<xsd:schema
targetNamespace="urn:ref.types"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<xsd:simpleType name="enum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="one"/>
<xsd:enumeration value="two"/>
<xsd:enumeration value="three"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="phone">
<xsd:all>
<xsd:element name="areaCode" type="xsd:int"/>
<xsd:element name="exchange" type="xsd:string"/>
<xsd:element name="number">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base = "xsd:string">
<xsd:attribute name= "length" type="xsd:int" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="example">
<xsd:all>
<xsd:element name="address" type="soapenc:string"/>
<!-- both example and phone contain anonymous types of number elements. -->
<!-- This should result in two Number classes...one which has a mangled name -->
<xsd:element name="number">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base = "xsd:string">
<xsd:attribute name= "theLength" type="xsd:int" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
<!-- element has the same name as the type. This is allowed by xlm schema -->
<!-- note that the Phone element is a collection of Phone types -->
<!-- no mangling should occur since the same underlying java type is used -->
<xsd:element name="phone" type="typens:phone" maxOccurs="unbounded"/>
<!-- enum element which is the same as the enum type -->
<!-- no mangling should occur since the same java type is used -->
<xsd:element name="enum" type="typens:enum"/>
<!-- This is a 'forward use' of a type. Not sure if this is legal, but we currently accept it -->
<xsd:element name="forward" type="typens:forward" />
<xsd:complexType name="forward">
<xsd:all>
<xsd:element name="address" type="soapenc:string"/>
</xsd:all>
</xsd:complexType>
<!-- The following have same qname but different java types (NoMangle and Example). -->
<!-- No mangling should occur -->
<xsd:complexType name="noMangle">
<xsd:all>
<xsd:element name="address" type="soapenc:string"/>
</xsd:all>
</xsd:complexType>
<xsd:element name="noMangle" type="typens:example" />
<!-- The following two have same qname and same java names (for different java types). -->
<!-- mangling should occur -->
<!-- Note the use of the 'mangle collection' in info..which should be properly mangled -->
<xsd:complexType name="mangle">
<xsd:all>
<xsd:element name="one" type="soapenc:string"/>
</xsd:all>
</xsd:complexType>
<xsd:element name="mangle" >
<xsd:complexType>
<xsd:all>
<xsd:element name="two" type="soapenc:string"/>
</xsd:all>
</xsd:complexType>
</xsd:element >
<xsd:complexType name="info">
<xsd:all>
<!-- This is a reference to phone. It should be a collection since the
phone element has the unbounded attribute -->
<xsd:element ref="typens:phone"/>
<xsd:element ref="typens:enum"/>
<xsd:element name="forward" type="typens:forward"/>
<xsd:element ref="typens:noMangle"/>
<xsd:element name="noMangle2" type="typens:noMangle"/>
<xsd:element ref="typens:mangle"/>
<!-- The following better be Mangle_Type[], not Mangle[] -->
<xsd:element name="mangle2" type="typens:mangle" maxOccurs="unbounded" />
<!-- Make sure WSDL2Java properly sets the option element as referenced -->
<xsd:element ref="typens:option" minOccurs="1" maxOccurs="unbounded" />
</xsd:all>
</xsd:complexType>
<xsd:element name="option" type="typens:optionType"/>
<xsd:complexType name="optionType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
<xsd:element name="value" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<!-- message declns -->
<message name="empty" />
<message name="message">
<part name="arg" type="typens:info" />
</message>
<!-- port type declns -->
<portType name="RefTest">
<operation name="test">
<input message="tns:message"/>
<output message="tns:empty"/>
</operation>
</portType>
<!-- binding declns -->
<binding name="RefTestBinding" type="tns:RefTest">
<soap:binding
style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="test">
<soap:operation soapAction=""/>
<input>
<soap:body
use="encoded"
namespace=""
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body
use="encoded"
namespace=""
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<!-- service decln -->
<service name="RefTestService">
<port name="RefTest" binding="tns:RefTestBinding">
<soap:address location="http://localhost:8080/axis/services/RefTest"/>
</port>
</service>
</definitions>