WSDL 1.1 Element Identifiers defines a syntax to identify individual elements in a WSDL 1.1 document.
This is a
A list of
As of the publication of this document as a Working Group Note, the Web Services Policy Working Group has completed work on this document. Discussion of this document took place on the public
Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the
Last Modified: $Date: 2007/07/17 13:22:33 $ CET
This document defines an element identifier syntax for WSDL 1.1 elements.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" in this document are to be interpreted as
described in RFC 2119 [
With the exception of examples and sections explicitly marked as "Non-Normative", all parts of this specification are normative.
This section defines a fragment identifier syntax for identifying elements of a WSDL 1.1 document.
This fragment identifier syntax is compliant with the
[
A WSDL 1.1 fragment identifier is an XPointer [xmlns
pointer
parts (see 3.4 Namespace Binding Context in [
For QNames, any prefix MUST be defined by a preceding xmlns pointer part. If a QName does not have a prefix then its namespace name is the target namespace of the WSDL 1.1 document.
The fragment identifier is typically constructed from the name
property of the element and the name
properties of its
ancestors as a path according to
name
property, although in
several cases references to other elements are used. These
identifiers are then used to construct the pointer part in
the last column.
The fragment identifier in a WSDL 1.1 element IRI-reference
MUST resolve to some element as defined by the construction rules
in
element | 1 | 2 | 3 | Pointer Part |
---|---|---|---|---|
Definitions | n/a | n/a | n/a | wsdl11.definitions() |
Message | message NCName | n/a | n/a | wsdl11.message( message ) |
Message Part | message NCName | part NCName | n/a | wsdl11.messagePart( message/part ) |
portType | portType NCName | n/a | n/a | wsdl11.portType( portType ) |
portType Operation | portType NCName | operation NCName | n/a | wsdl11.portTypeOperation( portType/operation ) |
portType Operation Input | portType NCName | operation NCName | n/a | wsdl11.portTypeOperation.input( portType/operation ) |
portType Operation Output | portType NCName | operation NCName | n/a | wsdl11.portTypeOperation.output( portType/operation ) |
portType Operation Fault | portType NCName | operation NCName | fault NCName | wsdl11.portTypeOperation.fault( portType/operation/fault ) |
Binding | binding NCName | n/a | n/a | wsdl11.binding( binding ) |
Binding Operation | binding NCName | operation QName | n/a | wsdl11.bindingOperation( binding/operation ) |
Binding Operation Input | binding NCName | operation QName | na/ | wsdl11.bindingOperation.input( binding/operation ) |
Binding Operation Output | binding NCName | operation QName | na/ | wsdl11.bindingOperation.output( binding/operation ) |
Binding Operation Fault | binding NCName | operation QName | fault NCName | wsdl11.bindingOperation.fault( binding/operation/fault ) |
Service | service NCName | n/a | n/a | wsdl11.service( service ) |
port | service NCName | port NCName | n/a | wsdl11.port( service/port ) |
Extensions | namespace URI | identifier extension-specific-syntax | n/a | wsdl11.extension( namespace,identifier ) |
This section provides a syntax for IRI-references for all
elements found in a [
There are two main cases for WSDL 1.1 IRIs:
the IRI of a WSDL 1.1 document
the IRI of a WSDL 1.1 namespace
The IRI of a WSDL 1.1 document can be dereferenced to give a resource representation that contributes elements to a single WSDL 1.1 namespace. If the media type is set to the WSDL 1.1 media type i.e. application/xml, then the fragment identifiers can be used to identify the main elements that are defined in the document.
In keeping with WSDL 1.1, which has a recommendation that that the namespace URI be dereferencible to a WSDL 1.1 document, this section specifies the use of the namespace IRI with the WSDL 1.1 fragment identifiers to form an IRI-reference.
The IRI in an IRI-reference for a WSDL 1.1 element is the
namespace name of the
name
property of either the element itself, in the case of
portType
,
Binding
, and
Service
elements, or the
name
property of the ancestor top-level element. The IRI provided
by the namespace name of the
name
property is combined with a zero or more
xmlns
pointer parts (see
3.4 Namespace Binding Context
in
[
SOAP Binding
elements (binding, operation, body, header, fault, headerfault, and address) can be identified using the
wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,
w11soap.binding(
parent
)
), where:
parent
SOAP Binding's parent
element
wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,
w11soap.operation(
parent
)
)
parent
SOAP Operation's parent
element
wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,
w11soap.body(
parent
)
)
parent
SOAP Body's parent
element
wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,
w11soap.header(
parent
)
)
parent
SOAP Header's parent
element
wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,
w11soap.headerfault(
parent
)
)
parent
SOAP HeaderFault's parent
element
wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,
w11soap.fault(
parent
)
)
parent
SOAP Fault's parent
element
wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,
w11soap.address(
parent
)
)
parent
SOAP Address's parent
element
The IRI-references described above MAY be used as WSDL 1.1 element identifiers. For ease of comparison, the fragment identifier of WSDL 1.1 element identifiers SHOULD conform to the following canonicalization rules:
The fragment identifier consists of a sequence
zero or more
xmlns()
pointer parts followed by exactly one
wsd11.*()
pointer part.
Each
xmlns()
pointer part that appears in the fragment
identifier defines a namespace that is
referenced by the
wsd11.*()
pointer part.
Each
xmlns()
pointer part defines a unique namespace.
The
xmlns()
pointer parts define namespaces in the same
order as they are referenced in the
wsd11.*()
pointer part.
The namespace prefixes defined by the
xmlns()
pointer parts are named
ns1
,
ns2
, etc., in the order of their appearance.
The fragment identifier contains no optional whitespace.
Consider WSDL 1.1 document located at http://example.org/TicketAgent.wsdl. Each WSDL 1.1 Element Identifier is shown in comments above the WSDL 1.1 element
Who | When | What |
---|---|---|
DBO | 20061108 | Initial Revision |
DBO | 20061212 | Uncommented canonical section, fixed editorial items |
DBO | 20070122 | Resolution of bug |
FS | 20070127 | Editorial fixes for publication preparation |
DBO | 20070219 | Changed MessageReference to .input and .output, resolution of bug |
DBO | 20070308 | Added note about targetnamespace being required. |
DBO | 20070308 | Removed Schema element and type defs. |
FS | 20070717 | Updated Reference to WSDL20 |