WSDL Tutorials - Herong's Tutorial Examples - v2.22, by Herong Yang
elementFormDefault="qualified" - Refill Order
This section provides a tutorial example on how to write a WSDL 1.1 example that uses SOAP 1.2 over HTTP with style='document' and elementFormDefault='qualified' in the schema to use qualified names for sub elements in SOAP Body.
When you design an XML document based Web service, you have an option to use the "elementFormDefault" schema attribute to hide or expose namespace on non-root elements:
To help testing the impact of elementFormDefault="unqualified", I wrote the forth example with:
In this WSDL example, I defined a RefillOrder Web service, which allows you to send a SOAP request to place drug refill order. And I expect the server to return the status of my order. Here is the WSDL document, RefillOrder_WSDL_11_SOAP_11_Document.wsdl:
<?xml version="1.0"?> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:hy="https://www.herongyang.com/Service/" targetNamespace="https://www.herongyang.com/Service/"> <wsdl:documentation> RefillOrder_WSDL_11_SOAP_12_Document.wsdl Copyright (c) 2007 HerongYang.com. All Rights Reserved. Version 1.0 </wsdl:documentation> <wsdl:types> <xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.herongyang.com/Service/"> <xsd:element name="RefillOrderRequest" type="hy:RefillOrderRequestType"/> <xsd:element name="RefillOrderResponse" type="hy:RefillOrderResponseType"/> <xsd:complexType name="RefillOrderRequestType"> <xsd:sequence> <xsd:element name="Patient" type="hy:PatientType"/> <xsd:element name="Prescription" type="hy:PrescriptionType"/> </xsd:sequence> <xsd:attribute name="version" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="RefillOrderResponseType"> <xsd:sequence> <xsd:element name="OrderStatus" type="hy:OrderStatusType"/> </xsd:sequence> <xsd:attribute name="version" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="PatientType"> <xsd:attribute name="name" type="xsd:string"/> <xsd:attribute name="birthDate" type="xsd:date"/> </xsd:complexType> <xsd:complexType name="PrescriptionType"> <xsd:attribute name="drug" type="xsd:string"/> <xsd:attribute name="doctor" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="OrderStatusType"> <xsd:attribute name="number" type="xsd:string"/> <xsd:attribute name="status" type="xsd:string"/> </xsd:complexType> </xsd:schema> </wsdl:types> <wsdl:message name="refillOrderInputMessage"> <wsdl:part name="refillOrderInputPart" element="hy:RefillOrderRequest"/> </wsdl:message> <wsdl:message name="refillOrderOutputMessage"> <wsdl:part name="refillOrderOutputPart" element="hy:RefillOrderResponse"/> </wsdl:message> <wsdl:portType name="refillOrderPortType"> <wsdl:operation name="RefillOrder"> <wsdl:input name="refillOrderInput" message="hy:refillOrderInputMessage"/> <wsdl:output name="refillOrderOutput" message="hy:refillOrderOutputMessage"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="refillOrderBinding" type="hy:refillOrderPortType"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="RefillOrder"> <soap12:operation style="document" soapActionRequired="false"/> <wsdl:input name="refillOrderInput"> <soap12:body use="literal"/> </wsdl:input> <wsdl:output name="refillOrderOutput"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="refillOrderService"> <wsdl:port name="refillOrderPort" binding="hy:refillOrderBinding"> <soap12:address location= "https://www.herongyang.com/Service/RefillOrder.php"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
See the next tutorial for testing requests and responses.
Table of Contents
WSDL 2.0 Document Structure and Syntax
WSDL Version 2.0 Part 2: Adjuncts
WSDL 2.0 Document Examples with SOAP Binding
Using WSDL Document in Java Apache Axis2/Java for WSDL
Apache Woden for WSDL Documents in Java
SoapUI - Web Service Testing Tool
WSDL 1.1 Document Structure and Syntax
WSDL 1.1 Binding Extension for SOAP 1.1
SoapUI as WSDL 1.1 Testing Tool
WSDL 1.1 and SOAP 1.1 Examples - Document and RPC Styles
PHP SOAP Extension for WSDL 1.1
Apache Axis2/Java for WSDL 1.1
Using WSDL2Java to Generate Web Service Stub Classes
WSDL 1.1 Binding Extension for SOAP 1.2
►WSDL 1.1 and SOAP 1.2 Examples - Document and RPC Styles
SOAP 1.2 Message Styles and Encoding Options
document/literal Example - Guest Registration
Request and Response - Guest Registration
rpc/encoded Example - Get Exchange Rate
Request and Response - Get Exchange Rate
SOAP Body and Operation Name - Book Reservation
Request and Response - Book Reservation
►elementFormDefault="qualified" - Refill Order
Request and Response - Refill Order