NAME
SOAP::WSDL::Manual::WS_I - How SOAP::WSDL complies to WS-I Basic Profile 1.0
DESCRIPTION
This document gives an overview about how SOAP::WSDL confirms to the rules of the WS-I Basic Profile 1.0 found at <http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html>
Errata are not yet worked in.
You may find rules mis-categorized, especially in the "not applicable" section.
Such mis-categorizations are documentation bugs, please feel free to report them.
Rules are categorized into the following sections:
- •
-
RULES CONFIRMED
This section contains rules SOAP::WSDL follows. Conformance to these rules may be assured by a test.
- •
-
RULES NOT CONFIRMED
This section contains rules SOAP::WSDL does not follow yet. These may be considered as bugs.
- •
-
RULES NOT APPLICABLE
WS-I Basic Profile contains rules for web services as a whole. SOAP::WSDL only plays the part of one layer in a Web Service CONSUMER / RECEIVER, thus does not implement some parts the WS-I Basic Profile references.
This section contains rules not applicable for SOAP::WSDL, because they refer to parts SOAP::WSDL does not implement.
RULES CONFIRMED
R1005
A MESSAGE MUST NOT contain soap:encodingStyle attributes on any of the elementswhose namespace name is "http://schemas.xmlsoap.org/soap/envelope/".
SOAP::WSDL::Serializer::SOAP11 does not add soap:encodingStyle attributes on any element.
R1006
A MESSAGE MUST NOT contain soap:encodingStyle attributes on any element that isa child of soap:Body.
SOAP::WSDL::Serializer::SOAP11 does not add soap:encodingStyle attributes on any element.
R1008
A MESSAGE MUST NOT contain a Document Type Declaration.
SOAP::WSDL::Serializer::SOAP11 does not add DTDs.
R1009
A MESSAGE MUST NOT contain Processing Instructions.
SOAP::WSDL::Serializer::SOAP11 does not add Processing Instructions
R1010
A RECEIVER MUST accept messages that contain an XML Declaration.
SOAP::WSDL::Expat::MessageParser allows the use of XML Declarations.
R1011
A MESSAGE MUST NOT have any element children of soap:Envelope followingthe soap:Body element.
SOAP::WSDL::Serializer::SOAP11 does not emit children of soap:Envelope following the soap:Body element. Other serializers may behave different.
R1012
A MESSAGE MUST be serialized as either UTF-8 or UTF-16.
SOAP::WSDL::Serializer::SOAP11 serializes messages as UTF-8.
R1018
The media type of a MESSAGE's envelope MUST indicate the correct characterencoding, using the charset parameter.
SOAP::WSDL::Transport::HTTP sets the Content-type header to "text/xml; charset=utf8". SOAP::Transport does, too. Other transport backends may behave different.
R1014
The children of the soap:Body element in a MESSAGE MUST be namespacequalified.
SOAP::WSDL::Serializer::SOAP11 emits namespace-qualified child elements of the soap:Body element.
R1017
A RECEIVER MUST NOT mandate the use of the xsi:type attribute in messagesexcept as required in order to indicate a derived type (see XML SchemaPart 1: Structures, Section 2.6.1).
SOAP::WSDL::Expat::MessageParser does not require the use of xsi:type attributes, but uses typemaps instead.
Other deserializers may not comply to this rule.
R1028
When a Fault is generated by a RECEIVER, further processing SHOULD NOT beperformed on the SOAP message aside from that which is necessary to rollback,or compensate for, any effects of processing the message prior to thegeneration of the Fault.
A fault is generated when an error occurs processing the message. SOAP::WSDL::Deserializer::SOAP11 does not perform any additional processing after an error occurred.
R1029
Where the normal outcome of processing a SOAP message would have resultedin the transmission of a SOAP response, but rather a SOAP Fault is generatedinstead, a RECEIVER MUST transmit a SOAP Fault message in place of theresponse.
A fault is generated when an error occurs processing the message.
R1030
A RECEIVER that generates a SOAP Fault SHOULD notify the end user that aSOAP Fault has been generated when practical, by whatever means is deemedappropriate to the circumstance.
Via return value.
R1140
A MESSAGE SHOULD be sent using HTTP/1.1.
SOAP::WSDL::Transport::HTTP uses HTTP/1.1
R1141
A MESSAGE MUST be sent using either HTTP/1.1 or HTTP/1.0.
SOAP::WSDL::Transport::HTTP uses HTTP/1.1
R1107
A RECEIVER MUST interpret SOAP messages containing only a soap:Fault elementas a Fault.
SOAP::WSDL::Deserializer::SOAP11 does this.
R1132
A HTTP request MESSAGE MUST use the HTTP POST method.
Both SOAP::WSDL::Transport::HTTP and SOAP::Transport::HTTP use POST.
R1108
A MESSAGE MUST NOT use the HTTP Extension Framework (RFC2774).
SOAP::WSDL::Transport::HTTP does not use the HTTP Extension framework, however SOAP::Transport::HTTP use M-POST if POST was not successful.
To be sure you comply to this rule, use SOAP::WSDL::Transport::HTTP as transport backend.
R1109
The value of the SOAPAction HTTP header field in a HTTP requestMESSAGE MUST be a quoted string.
SOAP::WSDL::Client always quotes the SOAPAction header.
R1119
A RECEIVER MAY respond with a Fault if the value of the SOAPActionHTTP header field is not quoted.
SOAP::WSDL does not apply any processing on the SOAPAction header field.
R1131
A CONSUMER MAY automatically redirect a request when it encounters a"307 Temporary Redirect" HTTP status code in a response.
LWP::UserAgent (used by SOAP::WSDL::Transport::HTTP and SOAP::Transport::HTTP) accepts up to 7 levels of redirect by default.
R2113
A MESSAGE containing serialized arrays MUST NOT include thesoapenc:arrayType attribute.
SOAP::WSDL does not natively support soapenc::arrayType.
R2114
The target namespace for WSDL definitions and the target namespace forschema definitions in a DESCRIPTION MAY be the same.
SOAP::WSDL does not impose any constraints on the target namespace for WSDL definitions or schema definitions.
R2301
The order of the elements in the soap:body of a MESSAGE MUST be the sameas that of the wsdl:parts in the wsdl:message that describes it.
SOAP::WSDL obeys the part order.
R2712
A document-literal binding MUST be represented on the wire as aMESSAGE with a soap:Body whose child element is an instance of theglobal element declaration referenced by the corresponding wsdl:messagepart.
If defined accordingly in the DESCRIPTION, SOAP::WSDL issues document-literal binding operation MESSAGES conforming to this rule.
R2748
A CONSUMER MUST NOT interpret the presence of the wsdl:required attributeon a soapbind extension element with a value of "false" to mean the extensionelement is optional in the messages generated from the WSDL description.
SOAP::WSDL does not imterpret the wsdl:required attribute at all.
R5000
An INSTANCE MAY require the use of HTTPS.
SOAP::WSDL supports https.
R5010
An INSTANCE MAY require the use of HTTPS with mutual authentication.
SOAP::WSDL supports all kinds of authentication known to LWP::UserAgent
R2742
A MESSAGE MAY contain a fault detail entry in a SOAP fault that is notdescribed by a wsdl:fault element in the corresponding WSDL description.
SOAP::WSDL does not emit such faults. Such faults can be processed by adding custom maps to the type maps for SOAP::WSDL::Expat::MessageParser.
R2744
A HTTP request MESSAGE MUST contain a SOAPAction HTTP header field with aquoted value equal to the value of the soapAction attribute ofsoapbind:operation, if present in the corresponding WSDL description.
SOAP::WSDL uses the soapAction attribute from soapbind:operation as SOAPAction header in generated code.
Alternative WSDL parsers / code generator have to assure they pass the correct soap_action to SOAP::WSDL::Client.
The interpreting SOAP::WSDL client does not conform to this rule, but "guesses" the SOAPAction header from the operation name and the top node's namespace.
R2745
A HTTP request MESSAGE MUST contain a SOAPAction HTTP header field with aquoted empty string value, if in the corresponding WSDL description, thesoapAction of soapbind:operation is either not present, or present with anempty string as its value.
SOAP::WSDL::Client always assures the SOAPaction header is quoted, thus automatically inserts the empty string if no SOAPAction header is defined.
R1015
A RECEIVER MUST generate a fault if they encounter a message whose documentelement has a local name of "Envelope" but a namespace name that is not"http://schemas.xmlsoap.org/soap/envelope/".
SOAP::WSDL::Expat::MessageParser checks the namespace of the SOAP envelope.
SOAP::WSDL::Expat::MessageParser does not check that Envelope is the root element, yet.
R1110
An INSTANCE MAY accept connections on TCP port 80 (HTTP)
SOAP::WSDL::Server::CGI may be used in a web server listening at port 80.
R1124
An INSTANCE MUST use a 2xx HTTP status code for responses thatindicate a successful outcome of a request.
SOAP::WSDL::Server::CGI sends a 2xx HTTP status code for successful requests.
R1111
An INSTANCE SHOULD use a "200 OK" HTTP status code for responsesthat contain a SOAP message that is not a SOAP fault.
SOAP::WSDL::Server::CGI does this.
R1112
An INSTANCE SHOULD use either a "200 OK" or "202 Accepted" HTTPstatus code for a response that does do not contain a SOAP messagebut indicates successful HTTP outcome of a request.
SOAP::WSDL::Server::CGI does this.
R1130
An INSTANCE MUST use HTTP status code "307 Temporary Redirect"when redirecting a request to a different endpoint.
SOAP::WSDL::Server::CGI has no means of redirecting. The web server running a SOAP::WSDL::Server::CGI script is responsible for redirecting with a 307 HTTP status code.
R1125
An INSTANCE MUST use a 4xx HTTP status code for responses that indicatea problem with the format of the request.
SOAP::WSDL does this.
R1113
An INSTANCE SHOULD use a "400 Bad Request "HTTP status code, if therequest message is a malformed HTTP request, or not well-formed XML.
SOAP::WSDL does this.
R1114
An INSTANCE SHOULD use a "405 Method not Allowed" HTTP status code if therequest method was not "POST".
SOAP::WSDL does this.
R1115
An INSTANCE SHOULD use a "415 Unsupported Media Type" HTTP status code ifthe Content-Type HTTP request header did not have a value consistent withthe value specified for the corresponding binding of the input message.
SOAP::WSDL::Server::CGI does not support any content type other than text/xml and application/xml yet.
RULES NOT CONFIRMED
R4001
A RECEIVER MUST accept messages that include the Unicode Byte Order Mark(BOM).
May automatically work with XML::Parser::Expat, but is not tested yet.
TODO write test. If not confirmed, add encoding support.
R1002
A RECEIVER MUST accept fault messages that have any number of elements,including zero, appearing as children of the detail element. Such childrencan be qualified or unqualified.
Partially confirmed: This only works when the fault detail elements are added to the deserializer's typemap.
TODO add processing of arbitrary content of faults to SOAP::WSDL::Expat::MessageParser
R1003
A RECEIVER MUST accept fault messages that have any number of qualified orunqualified attributes, including zero, appearing on the detail element.The namespace of qualified attributes can be anything other than"http://schemas.xmlsoap.org/soap/envelope/".
TODO add processing of arbitrary attributes to SOAP::WSDL::SOAP::Typelib::Fault11
R1016
A RECEIVER MUST accept fault messages that carry an xml:lang attribute onthe faultstring element.
SOAP::WSDL::Expat::MessageParser currently ignores all attributes.
TODO add processing of the xml:lang attribute to SOAP::WSDL::SOAP::Typelib::Fault11
R1007
A MESSAGE described in an rpc-literal binding MUST NOT contain soap:encodingStyleattribute on any elements are grandchildren of soap:Body.
SOAP::WSDL::Serializer::SOAP11 does not add soap:encodingStyle attributes on any element.
However, rpc-literal bindings are not supported, yet.
TODO support rpc-literal bindings.
R2008
In a DESCRIPTION the value of the location attribute of a wsdl:import elementSHOULD be treated as a hint.
The wsdl:import element imports the referenced WSDL definition.
This is rather hard-wired and does not allow one to specify a wsdl:import without a resolvable location in SOAP::WSDL.
R4002
A DESCRIPTION MAY include the Unicode Byte Order Mark (BOM).
TODO Test.
R4003
A DESCRIPTION MUST use either UTF-8 or UTF-16 encoding.
TODO Test whether UTF-16 works.
R2020
The wsdl:documentation element MAY occur as a child of the wsdl:importelement in a DESCRIPTION.
Not tested yet.
R2024
The wsdl:documentation element MAY occur as a first child of thewsdl:definitions element in a DESCRIPTION.
TODO Test.
R2027
If during the processing of an element in the WSDL namespace in adescription, a consumer encounters a WSDL extension element amongstits element children, that has a wsdl:required attribute with a booleanvalue of "true" that the consumer does not understand or cannot process,the CONSUMER MUST fail processing of that element in the WSDL namespace.
TODO Implement support for wsdl:required
R2750
A CONSUMER MUST ignore a SOAP response carried in a response from aone-way operation.
SOAP::WSDL does not ignore the SOAP response from a one way operation yet.
TODO Define operation type signature, and ignore result from one way operations.
R2747
A CONSUMER MUST understand and process all WSDL 1.1 SOAP Binding extensionelements, irrespective of the presence or absence of the wsdl:requiredattribute on an extension element; and irrespective of the value of thewsdl:required attribute, when present.
SOAP::WSDL does not implement all WSDL 1.1 SOAP Binding extension yet.
TODO check and implement.
R2800
A DESCRIPTION MAY use any construct from XML Schema 1.0.
SOAP::WSDL's WSDL parser doen not allow all constructs from XML Schema 1.0 to be used.
TODO become "minimal conformant".
RULES NOT APPLICABLE
R0004
A MESSAGE MAY contain conformance claims, as specified in the conformance claim schema.
SOAP::WSDL::Serializer::SOAP11 does not add conformance claims. Other serializers may act different.
R0005
A MESSAGE's conformance claims MUST be carried as SOAP header blocks.
SOAP::WSDL::Serializer::SOAP11 does not add conformance claims. Other serializers may act different.
R0006
A MESSAGE MAY contain conformance claims for more than one profile.
SOAP::WSDL::Serializer::SOAP11 does not add conformance claims. Other serializers may act different.
R0007
A SENDER MUST NOT use the soap:mustUnderstand attribute when sending a SOAPheader block containing a conformance claim.
SOAP::WSDL::Serializer::SOAP11 does not add conformance claims. Other serializers may act different.
R3020
REGDATA of type uddi:tModel claiming conformance with a Profile MUST becategorized using the ws-i-org:conformsTo:2002_12 taxonomy.
SOAP::WSDL does not publish web services yet.
R3030
REGDATA of type uddi:tModel claiming conformance with a Profile MUST usethe ws-i-org:conformsTo:2002_12 categorization value corresponding tothe conformance claim URI for that Profile.
SOAP::WSDL does not publish web services yet.
R3021
A REGISTRY MUST support the WS-I Conformance category system by addingthe ws-i-org:conformsTo:2002_12 tModel definition to its registry content.
SOAP::WSDL does not publish web services yet.
R3005
REGDATA other than uddi:tModel elements representing conformant Web servicetypes MUST NOT be categorized using the ws-i-org:conformsTo:2002_12taxonomy and a categorization of "http://ws-i.org/profiles/basic/1.0".
SOAP::WSDL does not publish web services yet.
R3004
REGDATA of type uddi:tModel MUST be constructed so that the conformanceclaim it makes is consistent with the conformance claim made by thewsdl:binding to which it refers.
SOAP::WSDL does not publish web services yet.
R1000
When a MESSAGE contains a soap:Fault element, that element MUST NOT have elementchildren other than faultcode, faultstring, faultactor and detail.
SOAP::WSDL does not send fault messages. However, SOAP::WSDL::SOAP::Typelib::Fault11 complies to this rule.
R1001
When a MESSAGE contains a soap:Fault element its element children MUST beunqualified.
SOAP::WSDL does not send fault messages. However, SOAP::WSDL::SOAP::Typelib::Fault11 complies to this rule.
R1004
When a MESSAGE contains a faultcode element the content of that elementSHOULD be one of the fault codes defined in SOAP 1.1 or a namespace qualifiedfault code.
SOAP::WSDL does not send fault messages. However, the fault issued by SOAP::WSDL::Deserializer comply to this rule.
R1031
When a MESSAGE contains a faultcode element the content of that element SHOULDNOT use of the SOAP 1.1 "dot" notation to refine the meaning of the Fault.
SOAP::WSDL does not send fault messages. However, the fault issued by SOAP::WSDL::Deserializer comply to this rule.
R1013
A MESSAGE containing a soap:mustUnderstand attribute MUST only use the lexicalforms "0" and "1".
SOAP::WSDL does not add soap:mustUnderstand attributes.
R1025
A RECEIVER MUST handle messages in such a way that it appears that allchecking of mandatory header blocks is performed before any actualprocessing.
SOAP::WSDL does not check mandatory header blocks yet.
R1027
A RECEIVER MUST generate a "soap:MustUnderstand" fault when a messagecontains a mandatory header block (i.e., one that has a soap:mustUnderstandattribute with the value "1") targeted at the receiver (via soap:actor)that the receiver does not understand.
SOAP::WSDL does not check mandatory header blocks yet.
R1120
An INSTANCE MAY use the HTTP state mechanism ("Cookies").
SOAP::WSDL::Server::CGI does not use cookies. A web server running a SOAP::WSDL::Server::CGI script may use cookies..
R1122
An INSTANCE using Cookies SHOULD conform to RFC2965.
SOAP::WSDL::Server::CGI does not use cookies. A web server running a SOAP::WSDL::Server::CGI script may use cookies..
R1121
An INSTANCE SHOULD NOT require consumer support for Cookies in order tofunction correctly
SOAP::WSDL::Server::CGI does not use cookies. A web server running a SOAP::WSDL::Server::CGI script may use cookies.
R1123
The value of the cookie MUST be considered to be opaque by the CONSUMER.
SOAP::WSDL::Server::CGI does not use cookies. A web server running a SOAP::WSDL::Server::CGI script may use cookies.
R2028
A DESCRIPTION using the WSDL namespace (prefixed "wsdl" in this Profile)MUST be valid according to the XML Schema found at"http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd".
See 2029.
R2029
A DESCRIPTION using the WSDL SOAP binding namespace (prefixed "soapbind"in this Profile) MUST be valid according to the XML Schema found at"http://schemas.xmlsoap.org/wsdl/soap/2003-02-11.xsd".
Although the Profile requires WSDL descriptions to be Schema valid, it does not require consumers to validate WSDL documents.
It is the responsibility of a WSDL document's author to assure that it is Schema valid.
R2001
A DESCRIPTION MUST only use the WSDL "import" statement to import anotherWSDL description.
SOAP::WSDL (partially) supports the wsdl:import statement. The wsdl:include statement is not supported.
It's the responsibility of the WSDL author to use only the wsdl:import statement for importing WSDL descriptions.
R2002
To import XML Schema Definitions, a DESCRIPTION MUST use the XML Schema"import" statement.
SOAP::WSDL has no means of generating WSDL definitions.
R2003
A DESCRIPTION MUST use the XML Schema "import" statement only within thexsd:schema element of the types section.
SOAP::WSDL has no means of generating WSDL definitions.
R2004
A DESCRIPTION MUST NOT use the XML Schema "import" statement to import aSchema from any document whose root element is not "schema" from thenamespace "http://www.w3.org/2001/XMLSchema".
SOAP::WSDL has no means of generating WSDL definitions.
R2009
An XML Schema directly or indirectly imported by a DESCRIPTION MAY includethe Unicode Byte Order Mark (BOM).
SOAP::WSDL has no means of generating WSDL definitions.
R2010
An XML Schema directly or indirectly imported by a DESCRIPTION MUSTuse either UTF-8 or UTF-16 encoding.
SOAP::WSDL has no means of generating WSDL definitions.
R2011
An XML Schema directly or indirectly imported by a DESCRIPTION MUST useversion 1.0 of the eXtensible Markup Language W3C Recommendation.
SOAP::WSDL has no means of generating WSDL definitions.
R2007
A DESCRIPTION MUST specify a non-empty location attribute on the wsdl:importelement.
SOAP::WSDL has no means of generating WSDL definitions.
R2022
When they appear in a DESCRIPTION, wsdl:import elements MUST precede allother elements from the WSDL namespace except wsdl:documentation.
SOAP::WSDL has no means of generating WSDL definitions.
R2023
When they appear in a DESCRIPTION, wsdl:types elements MUST precede allother elements from the WSDL namespace except wsdl:documentation andwsdl:import.
SOAP::WSDL has no means of generating WSDL definitions.
R4004
A DESCRIPTION MUST use version 1.0 of the eXtensible Markup Language W3CRecommendation.
SOAP::WSDL has no means of generating WSDL definitions.
R2005
The targetNamespace attribute on the wsdl:definitions element of adescription that is being imported MUST have same the value as thenamespace attribute on the wsdl:import element in the importingDESCRIPTION.
SOAP::WSDL has no means of generating WSDL definitions.
R2021
The wsdl:documentation element MAY occur as a child of the wsdl:partelement in a DESCRIPTION.
SOAP::WSDL has no means of generating WSDL definitions.
R2025
A DESCRIPTION containing WSDL extensions MUST NOT use them tocontradict other requirements of the Profile.
SOAP::WSDL has no means of generating WSDL definitions.
R2026
A DESCRIPTION SHOULD NOT include extension elements with a wsdl:requiredattribute value of "true" on any WSDL construct (wsdl:binding,wsdl:portType, wsdl:message, wsdl:types or wsdl:import) that claimsconformance to the Profile.
SOAP::WSDL has no means of generating WSDL definitions.
R2101
A DESCRIPTION MUST NOT use QName references to elements in namespaces thathave been neither imported, nor defined in the referring WSDL document.
SOAP::WSDL has no means of generating WSDL definitions.
R2102
A QName reference to a Schema component in a DESCRIPTION MUST use thenamespace defined in the targetNamespace attribute on the xsd:schemaelement, or to a namespace defined in the namespace attribute on anxsd:import element within the xsd:schema element.
SOAP::WSDL has no means of generating WSDL definitions.
R2105
All xsd:schema elements contained in a wsdl:types element of aDESCRIPTION MUST have a targetNamespace attribute with a valid and non-nullvalue, UNLESS the xsd:schema element has xsd:import and/orxsd:annotation as its only child element(s).
SOAP::WSDL has no means of generating WSDL definitions.
R2110
In a DESCRIPTION, array declarations MUST NOT extend or restrict thesoapenc:Array type.
SOAP::WSDL has no means of generating WSDL definitions.
R2111
In a DESCRIPTION, array declarations MUST NOT use wsdl:arrayType attributein the type declaration.
SOAP::WSDL has no means of generating WSDL definitions.
R2112
In a DESCRIPTION, array declaration wrapper elements SHOULD NOT be namedusing the convention ArrayOfXXX.
SOAP::WSDL has no means of generating WSDL definitions.
R2201
A document-literal binding in a DESCRIPTION MUST, in each of itssoapbind:body element(s), have at most one part listed in the partsattribute, if the parts attribute is specified.
SOAP::WSDL has no means of generating WSDL definitions.
R2210
If a document-literal binding in a DESCRIPTION does not specify the partsattribute on a soapbind:body element, the corresponding abstractwsdl:message MUST define zero or one wsdl:parts.
SOAP::WSDL has no means of generating WSDL definitions.
R2202
A wsdl:binding in a DESCRIPTION MAY contain soapbind:body element(s) thatspecify that zero parts form the soap:Body.
SOAP::WSDL has no means of generating WSDL definitions.
R2203
An rpc-literal binding in a DESCRIPTION MUST refer, in its soapbind:bodyelement(s), only to wsdl:part element(s) that have been defined using thetype attribute.
SOAP::WSDL has no means of generating WSDL definitions.
R2211
A MESSAGE described with an rpc-literal binding MUST NOT have the xsi:nilattribute with a value of "1" or "true" on the part accessors.
R2207
A wsdl:message in a DESCRIPTION MAY contain wsdl:parts that use theelements attribute provided those wsdl:parts are not referred to by asoapbind:body in an rpc-literal binding.
SOAP::WSDL has no means of generating WSDL definitions.
R2204
A document-literal binding in a DESCRIPTION MUST refer, in each of itssoapbind:body element(s), only to wsdl:part element(s) that have beendefined using the element attribute.
SOAP::WSDL has no means of generating WSDL definitions.
Note: SOAP::WSDL requires that a DESCRIPTION confirms to these rules.
R2208
A binding in a DESCRIPTION MAY contain soapbind:header element(s) thatrefer to wsdl:parts in the same wsdl:message that are referred to by itssoapbind:body element(s).
R2205
A wsdl:binding in a DESCRIPTION MUST refer, in each of its soapbind:header,soapbind:headerfault and soapbind:fault elements, only to wsdl:partelement(s) that have been defined using the element attribute.
SOAP::WSDL has no means of generating WSDL definitions.
R2209
A wsdl:binding in a DESCRIPTION SHOULD bind every wsdl:part of awsdl:message in the wsdl:portType to which it refers to one ofsoapbind:body, soapbind:header, soapbind:fault or soapbind:headerfault.
SOAP::WSDL has no means of generating WSDL definitions.
R2206
A wsdl:message in a DESCRIPTION containing a wsdl:part that uses theelement attribute MUST refer, in that attribute, to a global elementdeclaration.
SOAP::WSDL has no means of generating WSDL definitions.
R2302
A DESCRIPTION MAY use the parameterOrder attribute of anwsdl:operation element to indicate the return value and methodsignatures as a hint to code generators.
SOAP::WSDL has no means of generating WSDL definitions.
R2303
A DESCRIPTION MUST NOT use Solicit-Response and Notification typeoperations in a wsdl:portType definition.
R2304
A wsdl:portType in a DESCRIPTION MUST have operations with distinctvalues for their name attributes.
Note: SOAP::WSDL requires that a DESCRIPTION confirms to these rules.
R2305
A wsdl:portType in a DESCRIPTION MUST be constructed so that theparameterOrder attribute, if present, omits at most 1 wsdl:partfrom the output message.
R2306
A wsdl:message in a DESCRIPTION MUST NOT specify both type andelement attributes on the same wsdl:part.
SOAP::WSDL has no means of generating WSDL definitions.
R2401
A wsdl:binding element in a DESCRIPTION MUST use WSDL SOAPBinding as defined in WSDL 1.1 Section 3.
SOAP::WSDL has no means of generating WSDL definitions.
R2701
The wsdl:binding element in a DESCRIPTION MUST be constructed sothat its soapbind:binding child element specifies the transportattribute.
SOAP::WSDL has no means of generating WSDL definitions.
R2702
A wsdl:binding element in a DESCRIPTION MUST specify the HTTPtransport protocol with SOAP binding. Specifically, the transportattribute of its soapbind:binding child MUST have the value"http://schemas.xmlsoap.org/soap/http".
SOAP::WSDL has no means of generating WSDL definitions.
R2705
A wsdl:binding in a DESCRIPTION MUST use either be a rpc-literalbinding or a document-literal binding.
SOAP::WSDL has no means of generating WSDL definitions.
Note: SOAP::WSDL does not support rpc-literal bindings yet.
R2706
A wsdl:binding in a DESCRIPTION MUST use the value of "literal"for the use attribute in all soapbind:body, soapbind:fault,soapbind:header and soapbind:headerfault elements.
SOAP::WSDL has no means of generating WSDL definitions.
R2707
A wsdl:binding in a DESCRIPTION that contains one or moresoapbind:body, soapbind:fault, soapbind:header or soapbind:headerfaultelements that do not specify the use attribute MUST be interpreted asthough the value "literal" had been specified in each case.
SOAP::WSDL has no means of generating WSDL definitions.
R2709
A wsdl:portType in a DESCRIPTION MAY have zero or more wsdl:bindingsthat refer to it, defined in the same or other WSDL documents.
SOAP::WSDL has no means of generating WSDL definitions.
R2710
The operations in a wsdl:binding in a DESCRIPTION MUST result in wiresignatures that are different from one another.
SOAP::WSDL has no means of generating WSDL definitions.
R2711
A DESCRIPTION SHOULD NOT have more than one wsdl:port with the samevalue for the location attribute of the soapbind:address element.
SOAP::WSDL has no means of generating WSDL definitions.
R2714
For one-way operations, an INSTANCE MUST NOT return a HTTP response that contains a SOAP envelope. Specifically, the HTTP response entity-body must be empty.
SOAP::WSDL does not act as a server, yet.
R2727
For one-way operations, a CONSUMER MUST NOT interpret a successfulHTTP response status code (i.e., 2xx) to mean the message is validor that the receiver would process it.
SOAP::WSDL regards a successful HTTP status code for a one-way operation as an acknowledgement of the RECEIVER having receive (not processed!) the message.
SOAP::WSDL makes no assumptions about the processing of SOAP messages, but higher level clients may do.
R2716
A document-literal binding in a DESCRIPTION MUST NOT have thenamespace attribute specified on contained soapbind:body,soapbind:header, soapbind:headerfault and soapbind:fault elements.
SOAP::WSDL has no means of generating WSDL definitions.
R2717
An rpc-literal binding in a DESCRIPTION MUST have the namespace attributespecified, the value of which MUST be an absolute URI, oncontained soapbind:body elements.
SOAP::WSDL has no means of generating WSDL definitions.
R2726
An rpc-literal binding in a DESCRIPTION MUST NOT have the namespaceattribute specified on contained soapbind:header, soapbind:headerfaultand soapbind:fault elements.
SOAP::WSDL has no means of generating WSDL definitions.
R2718
A wsdl:binding in a DESCRIPTION MUST have the same set ofwsdl:operations as the wsdl:portType to which it refers
SOAP::WSDL has no means of generating WSDL definitions.
R2719
A wsdl:binding in a DESCRIPTION MAY contain no soapbind:headerfaultelements if there are no known header faults.
SOAP::WSDL has no means of generating WSDL definitions.
R2740
A wsdl:binding in a DESCRIPTION SHOULD contain a soapbind:fault describingeach known fault.
SOAP::WSDL has no means of generating WSDL definitions.
R2741
A wsdl:binding in a DESCRIPTION SHOULD contain a soapbind:headerfaultdescribing each known header fault.
SOAP::WSDL has no means of generating WSDL definitions.
R2743
A MESSAGE MAY contain the details of a header processing related fault in aSOAP header block that is not described by a wsdl:headerfault element in thecorresponding WSDL description.
R2720
A wsdl:binding in a DESCRIPTION MUST use the attribute named part with aschema type of "NMTOKEN" on all contained soapbind:header andsoapbind:headerfault elements.
R2749
A wsdl:binding in a DESCRIPTION MUST NOT use the attribute named parts oncontained soapbind:header and soapbind:headerfault elements.
R2721
A wsdl:binding in a DESCRIPTION MUST have the name attribute specified on allcontained soapbind:fault elements.
R2754
In a DESCRIPTION, the value of the name attribute on a soapbind:fault elementMUST match the value of the name attribute on its parent wsdl:fault element.
R2722
A wsdl:binding in a DESCRIPTION MAY specify the use attribute on containedsoapbind:fault elements.
R2723
If in a wsdl:binding in a DESCRIPTION the use attribute on a containedsoapbind:fault element is present, its value MUST be "literal".
R2728
A wsdl:binding in a DESCRIPTION that omits the use attribute on a containedsoapbind:fault element MUST be interpreted as though use="literal" had beenspecified.
R2724
If an INSTANCE receives a message that is inconsistent with its WSDLdescription, it SHOULD generate a soap:Fault with a faultcode of "Client",unless a "MustUnderstand" or "VersionMismatch" fault is generated.
R2725
If an INSTANCE receives a message that is inconsistent with its WSDLdescription, it MUST check for "VersionMismatch", "MustUnderstand" and"Client" fault conditions in that order.
R2729
A MESSAGE described with an rpc-literal binding that is a response messageMUST have a wrapper element whose name is the corresponding wsdl:operationname suffixed with the string "Response".
R2735
A MESSAGE described with an rpc-literal binding MUST place the part accessorelements for parameters and return value in no namespace.
R2737
A MESSAGE described with an rpc-literal binding MUST namespace qualify thechildren of part accessor elements for the parameters and the return valuewith the targetNamespace in which their types are defined.
R2738
A MESSAGE MUST include all soapbind:headers specified on a wsdl:input orwsdl:output of a wsdl:operation of a wsdl:binding that describes it.
R2739
A MESSAGE MAY contain SOAP header blocks that are not described in thewsdl:binding that describes it.
R2753
A MESSAGE containing SOAP header blocks that are not described in theappropriate wsdl:binding MAY have the mustUnderstand attribute on such SOAPheader blocks set to '1'.
R2751
The order of soapbind:header elements in soapbind:binding sections of aDESCRIPTION MUST be considered independent of the order of SOAP header blocksin the message.
R2752
A MESSAGE MAY contain more than one instance of each SOAP header block foreach soapbind:header element in the appropriate child of soapbind:binding inthe corresponding description.
R2801
A DESCRIPTION MUST use XML Schema 1.0 Recommendation as the basis of userdefined datatypes and structures.
R3100
REGDATA of type uddi:bindingTemplate representing a conformant INSTANCE MUSTcontain the uddi:accessPoint element.
R3002
REGDATA of type uddi:tModel representing a conformant Web service type MUSTuse WSDL as the description language.
R3003
REGDATA of type uddi:tModel representing a conformant Web service type MUST becategorized using the uddi:types taxonomy and a categorization of "wsdlSpec".
R3010
REGDATA of type uddi:tModel representing a conformant Web service type MUSTfollow V1.08 of the UDDI Best Practice for Using WSDL in a UDDI Registry.
R3011
The wsdl:binding that is referenced by REGDATA of type uddi:tModel MUST itselfconform to the Profile.
R5001
If an INSTANCE requires the use of HTTPS, the location attribute of thesoapbind:address element in its wsdl:port description MUST be a URI whosescheme is "https"; otherwise it MUST be a URI whose scheme is "http".
SOAP::WSDL has no means of generating WSDL definitions.
LICENSE AND COPYRIGHT
This file contains quotes from <http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html>. To these quotes, the legal notice from the document source applies.
Rest of this file: Copyright 2007 Martin Kutter.
This file is part of SOAP-WSDL. You may distribute/modify it under the same terms as perl itself
AUTHOR
Martin Kutter <martin.kutter fen-net.de>
REPOSITORY INFORMATION
$Rev: 562 $$LastChangedBy: kutterma $$Id: WS_I.pod 562 2008-02-22 20:32:17Z kutterma $$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Manual/WS_I.pod $