- From: <matthew.d.rawlings@jpmchase.com>
- Date: Sun, 6 Aug 2006 17:25:14 +0100
- To: www-ws-desc@w3.org
- Cc: ylafon@w3.org, Steve Ross-Talbot <steve@pi4tech.com>, stabet@ruleml.org
- Message-ID: <OF5EB23EFB.36F436FC-ON802571C2.00586FD3-802571C2.005A3393@jpmchase.com>
This is implementation feedback on the Candidate Recommendation WSDL 2.0.
WSDL 2.0 uses the element name to identify a message. The example from the
primer below uses the element names “ghns:checkAvailability” and
“ghns:checkAvailabilityResponse” as references to messages.
<operation name="opCheckAvailability" pattern="
http://www.w3.org/2006/01/wsdl/in-out" style="
http://www.w3.org/2006/01/wsdl/style/iri" wsdlx:safe="true">
<input messageLabel="In" element="ghns:checkAvailability"/>
<output messageLabel="Out" element="
ghns:checkAvailabilityResponse"/>
<outfault ref="tns:invalidDataFault" messageLabel="Out"/>
</operation>
The problem is that the name of an element is not sufficient to identify
the message type when using XML Schema. The type of the element must also
be supplied in addition to the name. This is because XML Schema allows the
type to be overridden using the xsi:type construct.
In the below example the type of the element is overridden in the root
node by the use of xsi:type.
<FpML version="4-2" xsi:type="DataDocument" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.fpml.org/2005/FpML-4-2 ../fpml-main-4-2.xsd" xmlns="
http://www.fpml.org/2005/FpML-4-2">
….
</FpML>
This is an example from the FpML schema http://www.fpml.org/. FpML is the
XML Schema standard banks, brokers, and fund managers use to communicate
within the Financial Services industry sector. FpML is frequently extended
and used internally by the participants in the Financial Services sector,
so these patterns are widespread within this sector.
FpML is an example of a schema using the Universal Root pattern
http://www.xmlpatterns.com/UniversalRootMain.shtml.
In the FpML schema the root element is FpML and is declared as being of
type Document. This means that the hundreds of different types of FpML
message all use the same element as their root. This makes the root
element name useless in distinguishing between messages because all
messages have the same root element.
FpML is declared of type Document.
<xsd:element name="FpML" type="Document">
<xsd:annotation>
<xsd:documentation xml:lang="en">The FpML element
forms the root for any conforming FpML instance document. The actual
structure of the document is determined by setting the 'type' attribute to
an appropriate derived subtype of the complex type Document.</
xsd:documentation>
</xsd:annotation>
</xsd:element>
The Document complex type is abstract. This means that as the type of the
universal root element is abstract, then all XML instance documents must
override the type using xsi:type. Every XML document has the same element
name, and only the type changes.
<xsd:complexType name="Document" abstract="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">The abstract base
type from which all FpML compliant messages and documents must be derived.
</xsd:documentation>
</xsd:annotation>
<xsd:attributeGroup ref="StandardAttributes.atts"/>
</xsd:complexType>
I suggest the type of the element is added to the Interface definition.
This would support the usage of xsi:type in XML Schema. This would change
the primer example to the below structure.
<operation name="opCheckAvailability" pattern="
http://www.w3.org/2006/01/wsdl/in-out" style="
http://www.w3.org/2006/01/wsdl/style/iri" wsdlx:safe="true">
<input messageLabel="In" element="ghns:checkAvailability" type
="ghns:tcheckAvailability"/>
<output messageLabel="Out" element="
ghns:checkAvailabilityResponse" type="xs:double"/>
<outfault ref="tns:invalidDataFault" messageLabel="Out"/>
</operation>
This implementation feedback is the product of using WSDL 2.0 to define
services using the FpML messaging schema defined in XML Schema. The aim is
to use WSDL 2 in conjunction with XML Schema and WS-CDL within the
International Standard for Financial Services Messaging, ISO 20022
http://www.iso20022.org/.
Matthew Rawlings
+44 791 539 7824
-----------------------------------------
This transmission may contain information that is privileged,
confidential, legally privileged, and/or exempt from disclosure
under applicable law. If you are not the intended recipient, you
are hereby notified that any disclosure, copying, distribution, or
use of the information contained herein (including any reliance
thereon) is STRICTLY PROHIBITED. Although this transmission and
any attachments are believed to be free of any virus or other
defect that might affect any computer system into which it is
received and opened, it is the responsibility of the recipient to
ensure that it is virus free and no responsibility is accepted by
JPMorgan Chase & Co., its subsidiaries and affiliates, as
applicable, for any loss or damage arising in any way from its use.
If you received this transmission in error, please immediately
contact the sender and destroy the material in its entirety,
whether in electronic or hard copy format. Thank you.
Received on Sunday, 6 August 2006 18:54:03 UTC