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.

When a Fault is generated by a RECEIVER, further processing SHOULD NOT be
performed on the SOAP message aside from that which is necessary to rollback,
or compensate for, any effects of processing the message prior to the
generation 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 occured.

Where the normal outcome of processing a SOAP message would have resulted
in the transmission of a SOAP response, but rather a SOAP Fault is generated
instead, a RECEIVER MUST transmit a SOAP Fault message in place of the
response.

A document-literal binding MUST be represented on the wire as a
MESSAGE with a soap:Body whose child element is an instance of the
global element declaration referenced by the corresponding wsdl:message
part.

If defined accordingly in the DESCRIPTION, SOAP::WSDL issues document-literal binding operation MESSAGES conforming to this rule.

A CONSUMER MUST NOT interpret the presence of the wsdl:required attribute
on a soapbind extension element with a value of "false" to mean the extension
element is optional in the messages generated from the WSDL description.

A HTTP request MESSAGE MUST contain a SOAPAction HTTP header field with a
quoted value equal to the value of the soapAction attribute of
soapbind: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.

A HTTP request MESSAGE MUST contain a SOAPAction HTTP header field with a
quoted empty string value, if in the corresponding WSDL description, the
soapAction of soapbind:operation is either not present, or present with an
empty 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.

An INSTANCE SHOULD use a "415 Unsupported Media Type" HTTP status code if
the Content-Type HTTP request header did not have a value consistent with
the 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.

A RECEIVER MUST accept fault messages that have any number of qualified or
unqualified attributes, including zero, appearing on the detail element.
The namespace of qualified attributes can be anything other than
"http://schemas.xmlsoap.org/soap/envelope/".

If during the processing of an element in the WSDL namespace in a
description, a consumer encounters a WSDL extension element amongst
its element children, that has a wsdl:required attribute with a boolean
value of "true" that the consumer does not understand or cannot process,
the CONSUMER MUST fail processing of that element in the WSDL namespace.

A CONSUMER MUST understand and process all WSDL 1.1 SOAP Binding extension
elements, irrespective of the presence or absence of the wsdl:required
attribute on an extension element; and irrespective of the value of the
wsdl:required attribute, when present.

REGDATA other than uddi:tModel elements representing conformant Web service
types MUST NOT be categorized using the ws-i-org:conformsTo:2002_12
taxonomy and a categorization of "http://ws-i.org/profiles/basic/1.0".

A RECEIVER MUST generate a "soap:MustUnderstand" fault when a message
contains a mandatory header block (i.e., one that has a soap:mustUnderstand
attribute with the value "1") targeted at the receiver (via soap:actor)
that the receiver does not understand.

The targetNamespace attribute on the wsdl:definitions element of a
description that is being imported MUST have same the value as the
namespace attribute on the wsdl:import element in the importing
DESCRIPTION.

A DESCRIPTION SHOULD NOT include extension elements with a wsdl:required
attribute value of "true" on any WSDL construct (wsdl:binding,
wsdl:portType, wsdl:message, wsdl:types or wsdl:import) that claims
conformance to the Profile.

A QName reference to a Schema component in a DESCRIPTION MUST use the
namespace defined in the targetNamespace attribute on the xsd:schema
element, or to a namespace defined in the namespace attribute on an
xsd:import element within the xsd:schema element.

All xsd:schema elements contained in a wsdl:types element of a
DESCRIPTION MUST have a targetNamespace attribute with a valid and non-null
value, UNLESS the xsd:schema element has xsd:import and/or
xsd:annotation as its only child element(s).

A wsdl:binding in a DESCRIPTION MUST refer, in each of its soapbind:header,
soapbind:headerfault and soapbind:fault elements, only to wsdl:part
element(s) that have been defined using the element attribute.

A wsdl:binding element in a DESCRIPTION MUST specify the HTTP
transport protocol with SOAP binding. Specifically, the transport
attribute of its soapbind:binding child MUST have the value
"http://schemas.xmlsoap.org/soap/http".

A wsdl:binding in a DESCRIPTION that contains one or more
soapbind:body, soapbind:fault, soapbind:header or soapbind:headerfault
elements that do not specify the use attribute MUST be interpreted as
though the value "literal" had been specified in each case.

If an INSTANCE receives a message that is inconsistent with its WSDL
description, it SHOULD generate a soap:Fault with a faultcode of "Client",
unless a "MustUnderstand" or "VersionMismatch" fault is generated.

A MESSAGE described with an rpc-literal binding MUST namespace qualify the
children of part accessor elements for the parameters and the return value
with the targetNamespace in which their types are defined.

If an INSTANCE requires the use of HTTPS, the location attribute of the
soapbind:address element in its wsdl:port description MUST be a URI whose
scheme is "https"; otherwise it MUST be a URI whose scheme is "http".