Examples for ws reference presentation WSD WG f2f Sept 2003

Example 1A

Fully static type information. Neither the interface nor binding of the Manager and Engineer services are sent in the
message. Both the interface and binding service type information is described in the Department WSDL using derived types
of xs:anyUri.

<soap:Envelope>
<soap:Body>
<hr:Department deptNo="123" xmlns:hr="http://hr.example.com">
<hr:Manager>http://hr.example.com/employee/smith/judy</hr:Manager>
<hr:Engineer>http://hr.example.com/employee/jones/tom</hr:Engineer>
<hr:Engineer>http://hr.example.com/employee/lee/jin</hr:Engineer>
</hr:Department>
</soap:Body>
</soap:Envelope>

<wsdl:definitions targetnamespace="http://hr.example.com"
xmlns:hr="http://hr.example.com">

<wsdl:types>
<xs:schema targetnamespace="http://hr.example.com">

<xs:simpleType name="ManagerReference">
<xs:restriction base="xs:anyUri"/>
</xs:simpleType>

<xs:simpleType name="EngineerReference">
<xs:restriction base="xs:anyUri"/>
</xs:simpleType>

<xs:element name="DepartmentNumber" type="xs:string"/>

<xs:element name="Department">
<xs:complexType>
<xs:sequence>
<xs:element name="Manager" type="hr:ManagerReference"/>
<xs:element name="Engineer" type="hr:EngineerReference"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="deptno" type="xs:string"/>
</xs:complexType>
</xs:element>

</xs:schema>
</wsdl:types>

<wsdl:interface name="Manager">...</wsdl:interface>

<wsdl:interface name="Engineer">...</wsdl:interface>

<wsdl:interface name="Department">
<wsdl:operation name="getDepartment">
<wsdl: name="Example_2A">Example 2A

Partially dynamic type information. Both the interface and binding of the Manager and Engineer services are sent in the
message using derived types of wsdl:Service. Only the interface service type information is described in the Department WSDL.

<soap:Envelope>
<soap:Body>
<hr:Department deptNo="123" xmlns:hr="http://hr.example.com"
wsdl:descriptionLocation="http://hr.example.com http://hr.example.com/department.wsdl">
<hr:Manager interface="hr:Manager">
<wsdl:endpoint binding="hr:ManagerSOAP">
<soap:address location="http://hr.example.com/employee/smith/judy">
</wsdl:endpoint>
</hr:Manager>
<hr:Engineer interface="hr:Engineer">
<wsdl:enpoint binding="hr:EngineerSOAP">
<soap:address location="http://hr.example.com/employee/jones/tom"/>
</wsdl:endpoint>
</hr:Engineer>
<hr:Engineer interface="hr:Engineer">
<wsdl:enpoint binding="hr:EngineerSOAP">
<soap:address location="http://hr.example.com/employee/lee/jin"/>
</wsdl:endpoint>
</hr:Engineer>
</hr:Department>
</soap:Body>
</soap:Envelope>

<wsdl:definitions targetnamespace="http://hr.example.com"
xmlns:hr="http://hr.example.com">

<wsdl:types>
<xs:schema targetnamespace="http://hr.example.com">

<xs:complexType name="ManagerReference">
<xs:complexContent>
<xs:extension base="wsdl:Service"/>
<xs:complexContent>
</xs:complexType>

<xs:complexType name="EngineerReference">
<xs:complexContent>
<xs:extension base="wsdl:Service"/>
<xs:complexContent>
</xs:complexType>

<xs:element name="DepartmentNumber" type="xs:string"/>

<xs:element name="Department">
<xs:complexType>
Example 3A

Fully dynamic type information. Both the interface and binding of the Manager and Engineer services are sent in the
message using wsdl:Service. No service type information is described in the Department WSDL.

<soap:Envelope>
<soap:Body>
<hr:Department deptNo="123" xmlns:hr="http://hr.example.com"
wsdl:descriptionLocation="http://hr.example.com http://hr.example.com/department.wsdl">
<hr:Manager interface="hr:Manager">
<wsdl:endpoint binding="hr:ManagerSOAP">
<soap:address location="http://hr.example.com/employee/smith/judy">
</wsdl:endpoint>
</hr:Manager>
<hr:Engineer interface="hr:Engineer">
<wsdl:enpoint binding="hr:EngineerSOAP">
<soap:address location="http://hr.example.com/employee/jones/tom"/>
</wsdl:endpoint>
</hr:Engineer>
<hr:Engineer interface="hr:Engineer">
<wsdl:enpoint binding="hr:EngineerSOAP">
<soap:address location="http://hr.example.com/employee/lee/jin"/>
</wsdl:endpoint>
</hr:Engineer>
</hr:Department>
</soap:Body>
</soap:Envelope>

<wsdl:definitions targetnamespace="http://hr.example.com"
xmlns:hr="http://hr.example.com">

<wsdl:types>
<xs:schema targetnamespace="http://hr.example.com">

<xs:element name="DepartmentNumber" type="xs:string"/>

<xs:element name="Department">
<xs:complexType>
<xs:sequence>
<xs:element name="Manager" type="wsdl:Service"/>
<xs:element name="Engineer" type="wsdl:Service"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="deptno" type="xs:string"/>
<xs:attribute ref="wsdl:descriptionLocation"/>
</xs:complexType>
</xs:element>

</xs:schema>
<