This document contains the test assertions for the WS-I Attachments Profile 1.0
combined with the test assertions for the WS-I Simple Soap Binding Profile 1.0 and WS-I Basic Profile 1.1.
These test assertions are used by the analyzer testing tool to determine if
a Web service is conformant to the Attachments Profile 1.0 in conjunction with the Simple Soap Binding Profile 1.0 and the Basic Profile 1.1.
David Lauzon
Shrikant Wagh
Simeon Greene (Oracle Corporation),
Narendra Patil (Optimyz Software, Inc.),
Keith Stobie (Microsoft Corporation)
The Basic Profile requires support for UDDI V2.0.
For a candidate uddi:tModel
The uddi:tModel element uses WSDL as the description language and
the uddi:tModel contains a reference to a WSDL binding.
The uddi:overviewDoc/uddi:overviewURL element contains a reference to a WSDL definition,
which uses a namespace of http://schemas.xmlsoap.org/wsdl/. The uddi:overviewURL may
use the fragment notation to resolve to a specific wsdl:binding.
The uddi:tModel does not reference a WSDL based Web service
definition or the uddi:tModel does not reference a wsdl:binding.
{tModel key}{uddi:overviewDoc}
definitions
R3002
R3010
R3011
For a candidate uddi:bindingTemplate
The uddi:bindingTemplate element contains a uddi:accessPoint element, with a non-empty value.
The uddi:bindingTemplate does not contain an uddi:accessPoint element, or it is empty.
bindingTemplate key
R3100
For a candidate uddi:tModel
The uddi:tModel is categorized using the uddi:types taxonomy, as "wsdlSpec": the uddi:keyedReference element has a tModelKey attribute value equal to "uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" and a keyValue attribute value equal to "wsdlSpec".
The uddi:tModel is not categorized using the uddi:types taxonomy with a categorization of "wsdlSpec".
{tModel key}{categoryBag}
R3003
Driver testable.
Driver testable.
Driver testable.
All of these profile requirements are testable only by using a driver test program, since a test assertion would
require application-level knowledge of the message exchange.
The Basic Profile requires support for XML Schema 1.0 and WSDL 1.1.
For a candidate Web service definition within a WSDL document with a XML declaration statement.
The XML declaration statement uses UTF-8 or UTF-16 for the encoding.
XML declaration statement within WSDL document does not use expected encoding (UTF-8 or UTF-16).
XML declaration statement.
R4003
checks WSDL encoding.
For a candidate wsdl:types element within a WSDL document which imports an XML schema directly or indirectly.
The imported schema uses UTF-8 or UTF-16 for the encoding.
The XML declaration statement within the imported XML Schema does not
use expected encoding (UTF-8 or UTF-16).
XML declaration statement.
R2010
For a candidate wsdl:definitions element within a WSDL document.
The wsdl:definitions is a well-formed XML 1.0 document.
The wsdl:definitions is not a well-formed XML 1.0 document.
Error message from the XML parser
R4004
R0001
1st step in a 3-phase verification process: XML+namespace+schemavalid.
For a candidate wsdl:types element, with XML schema import elements
Each XML schema import statement (xsd:import) is only used to directly reference an XML schema definition, which has "schema" from XML namespace "http://www.w3.org/2001/XMLSchema" as root element. It does not contain a reference to another document embedding the XML schema definition (e.g. WSDL).
An XML schema import element references something other than an XML schema definition: the referenced element does not have "schema" from XML namespace "http://www.w3.org/2001/XMLSchema" as root element.
Defective XML schema import element.
R2002
R2004
NOTE: XML schema definitions within a WSDL document must adhere to the same rules as XML schema definitions which appear in separate XSD files. For example, two WSDL definitions can not contain the same complex type definition for the same targetNamespace.
For a candidate wsdl:types element within a WSDL document, which imports an XML schema directly or indirectly
The imported XML schema is a well-formed XML 1.0 document and if it contains an
XML declaration, it is version 1.0.
The imported XML schema is not a well-formed XML 1.0 document.
{Error message from the XML parser}{imported XML schema}
BP2102
R2011
For a candidate wsdl:definitions element within a WSDL document.
The wsdl:definitions namespace has value: http://schemas.xmlsoap.org/wsdl/.
The wsdl:definitions namespace is not: http://schemas.xmlsoap.org/wsdl/.
R0001
2nd step in a 3-phase verification process: XML+namespace+schemavalid.
For a candidate description within a WSDL document
If it uses the WSDL namespace, then it conforms to the schema located at http://ws-i.org/profiles/basic/1.1/wsdl-2004-08-24.xsd, and if it uses the WSDL-SOAP binding namespace then it conforms to the schema located at http://schemas.xmlsoap.org/wsdl/soap/2003-02-11.xsd.
WSDL definition does not conform to the schema located at http://ws-i.org/profiles/basic/1.1/wsdl-2004-08-24.xsd for some element using the WSDL-SOAP binding namespace, or does not conform to the schema located at http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd for some element using the WSDL namespace.
Error message from the XML parser.
R2029
R2028
R0001
A description using WSDL-SOAP namespace is prefixed soapbind: in this doc as well as in the profile def. This verification is 3rd step in a 3-phase verification process: XML+namespace+schemavalid.
For a candidate description within a WSDL document
The candidate description does not contain the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".
The candidate description contains the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".
BP2703
R1034
R4005
For a candidate Web service definition with wsdl:types elements
The wsdl:types elements occur either as first children in the WSDL namespace of the wsdl:definitions element, or they are only preceded by wsdl:documentation element(s) and/or wsdl:import(s) element(s).
wsdl:types element(s) in the WSDL namespace of the wsdl:definitions element were preceded by child elements other than wsdl:documentation or wsdl:import elements.
BP2703
R2023
R2030
For a candidate wsdl:operation in a wsdl:portType definition
The wsdl:operation element is either a WSDL request/response or a one-way operation (no Notification or Sollicit-Response).
wsdl:operation was not a request/response or one-way operation.
Operation.
BP2703
R2303
For a candidate wsdl:portType definition
name attributes of Operations are unique in the wsdl:portType definition
name attributes are not unique within the portType definition.
list of duplicate name(s) and of elements that use them.
BP2703
R2304
For a candidate wsdl:binding element, if the style attribute of the contained soapbind:binding is "rpc"
and the use attribute is "literal".
The namespace attribute is specified on all soapbind:body elements and the value of the
namespace attribute is an absolute URI.
A rpc-literal binding contains soapbind:body element(s) that either does not have a namespace attribute, or has a namespace attribute value that is not an absolute URI.
soapbind:body elements that failed the assertion
BP2404
BP2406
R2717
For a candidate wsdl:binding element
The wsdl:input element and wsdl:output element of each operation uses the attribute name "part" with a Schema type of "NMTOKEN" and does not use "parts", for both soapbind:header elements and soapbind:headerfault elements.
The wsdl:input element or wsdl:output element of an operation does not use the attribute name "part" with a Schema type of "NMTOKEN" for soapbind:header elements or soapbind:headerfault elements, or it uses "parts".
wsdl:input element or wsdl:output element of the defective operation.
BP2703
R2720
R2749
Generally BP2703 will fail as a pre-req first because this will not pass a specialized schema check.
For a candidate wsdl:binding element
The wsdl:binding element has a soapbind:binding child element.
The wsdl:binding element does not use a soapbind:binding element as defined in section "3 SOAP Binding." of the WSDL 1.1 specification.
wsdl:binding.
BP2703
R2401
For a candidate wsdl:binding element
the name attribute is specified on the soapbind:fault element.
Defective soapbind:fault element: the name attribute is not specified on the soapbind:fault element.
Defective soapbind:fault element
R2721
For a candidate wsdl:binding element
the name attribute that is specified on the soapbind:fault element matches the value specified on the parent element wsdl:fault.
Defective soapbind:fault element: the "name" attribute value does not match the value of the "name" attribute on the parent element wsdl:fault.
Defective soapbind:fault element
R2754
For a candidate wsdl:binding element
The contained soap:binding element has a "transport" attribute, which has value: http://schemas.xmlsoap.org/soap/http.
Transport attribute of the soap:binding does not contain http://schemas.xmlsoap.org/soap/http.
soap:binding element.
BP2703
BP2402
R2701
R2702
For a candidate wsdl:binding element, if the style attribute of the binding is "document" and use is "literal"
The binding (in soapbind:body elements) only refers to part elements that have been defined using the "element" attribute.
A document-literal binding contains soapbind:body element(s) that refer to message part element(s) that do not have the element attribute.
soapbind:body element(s) that have non "element" parts attributes.
BP2404
BP2406
R2204
For a candidate wsdl:binding element, if the use attribute is specified on the soapbind:body, soapbind:fault, soapbind:header, or soapbind:headerfault elements.
The use attribute has a value of "literal".
The use attribute of a soapbind:body, soapbind:fault, soapbind:header and soapbind:headerfault does not have value of "literal".
Defective soapbind:body, soapbind:fault, soapbind:header, or soapbind:headerfault elements.
BP2703
R2706
R2723
R2707
R2707 is not the verified Req, but an assumed Req for this verification.
For a candidate wsdl:binding element, if the "style" attribute of the contained soap:binding is "document" and use attribute is "literal"
The "namespace" attribute is not specified in any contained soapbind:body, soapbind:header, soapbind::headerfault, soapbind:fault elements.
A document-literal binding has the "namespace" attribute specified in some soapbind:body, soapbind:header, soapbind::headerfault, soapbind:fault element.
Contained element with namespace attribute.
BP2404
BP2406
R2716
For a candidate wsdl:binding element, if the "style" attribute of the contained soap:binding is "rpc" and use attribute is "literal"
The binding (in soapbind:body elements) only refers to part elements that have been defined using the "type" attribute.
A rpc-literal binding contains soapbind:body element(s) that refer to message part element(s) that do not have the type attribute.
{binding}{message with failed part}
BP2404
BP2406
R2203
For a candidate wsdl:operation with a parameterOrder attribute, if referred to by a candidate rpc-literal wsdl:binding element
The parameterOrder attribute omits at most 1 part from an output wsdl:message.
An operation associated with an rpc-literal binding has a parameterOrder attribute that omits more than 1 part.
{defective portType}{output wsdl:message}
R2305
For a candidate wsdl:binding
The "style" attribute of each operation in the contained soap:binding has the same value of "document" or "rpc", for all operations of the wsdl:binding.
The "style" attribute of an operation in soap:binding, does not have the same value of "document" or "rpc", as other operations of the binding.
defective soap:binding element.
BP2404
R2705
R2706
For a candidate wsdl:definition, if it contains wsdl:import statements
Each wsdl:import statement is only used to import another WSDL description.
A wsdl:import element does not contain a reference to another WSDL description.
wsdl:import element(s) that does not reference a WSDL description.
BP2703
R2001
For a candidate wsdl:import element
The "location" attribute is specified for the wsdl:import element, and has a non-empty value.
A wsdl:import element does not have a "location" attribute, or has an empty value for the location attribute.
Defective wsdl:import element.
R2007
For a candidate wsdl:import element
The "namespace" attribute's value is not a relative URI.
The wsdl:import element's "namespace" attribute value is a relative URI.
Defective wsdl:import element.
BP2703
R2803
For each a candidate wsdl:definitions
For the referenced definitions as well as all imported descriptions, The XML schema import statement is only used within an xsd:schema element.
A XML schema import element was found outside of an xsd:schema element.
Defective XML schema import element.
R2003
This assertion is processed once for each WSDL description which fulfills the context criteria. The target for this assertion is the definitions element, because the XML schema import element might be specified anywhere within a WSDL document.
For a candidate wsdl:import
The targetNamespace attribute on the wsdl:definitions element for the imported WSDL description has the same value as the namespace attribute on the wsdl:import element that imported the WSDL description.
The targetNamespace attribute on the wsdl:definitions element for an imported WSDL description does not have the same value as the namespace attribute on the wsdl:import element that imported the WSDL description.
wsdl:import element.
BP2101
R2005
For a candidate wsdl:definitions with wsdl:import elements
wsdl:import elements occur either as first children elements in the WSDL namespace of the wsdl:defintitions element, or they are only preceded by wsdl:documentation elements.
A wsdl:import element in the WSDL namespace under the wsdl:definitions element, is preceded by child elements other than wsdl:documentation elements.
Display the WSDL import element(s) that failed the assertion.
R2022
R2030
For a candidate wsdl:definitions
Every QName in the WSDL document that is not referring to a schema component, is either using the target namespace of this WSDL or the target namespace of a directly imported WSDL component.
A QName reference that does not refer to a schema component, is using neither the target namespace of this WSDL nor the target namespace of a directly imported WSDL component.
Defective QName(s).
R2101
This assertion is processed once for each WSDL description which fulfills the context criteria. Only direct WSDL imports are considered for QName resolution. Note that this test does not require resolving the qualified element itself in the imported namespace: only the namespace is verified. Some sub cases of R2101 related to schema target namespaces, are not handled here and are covered by another TA covering R2102 (BP2417).
For a candidate wsdl:definitions
Every QName in the WSDL document and its imports, that is referring to a schema component, uses the namespace defined in the targetNamespace attribute on the xs:schema element, or a namespace defined in the namespace attribute on an xs:import element within the xs:schema element.
A QName reference that is referring to a schema component, uses a namespace not defined in the targetNamespace attribute on the xs:schema element, or in the namespace attribute on an xs:import element within the xs:schema element.
Defective QName(s).
R2102
R2101
This assertion is processed once for each WSDL description which fulfills the context criteria. Only the subcases of R2101 that are related to schema imports are covered by this test, as these overlap with R2102 requirements.
For a candidate wsdl:types element containing an xsd:schema element
The xsd:schema element contains 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 xsd:schema element contained in a wsdl:types element does not have a targetNamespace attribute with a valid and non-null value, while having child element(s) other than xsd:import or xsd:annotation.
Defective xsd:schema element(s).
R2105
For a candidate wsdl:types
The type soapenc:Array does not appear in these declarations, and the wsdl:arrayType attribute is not used in the type declaration.
An Array declaration uses - restricts or extends - the soapenc:Array type, or the wsdl:arrayType attribute is used in the type declaration.
Defective declaration(s).
R2110
R2111
R2110 and R2111 have been interpreted as applying to any declaration, as we cannot assume the intent of declaring arrays, which is untestable.
For a candidate wsdl:types that is used by an rpc-literal binding
The declaration does not use the naming convention ArrayOfXXX.
A declaration is using the convention ArrayOfXXX.
Defective declaration(s).
R2112
R2112 has been interpreted as applying to any declaration, as we cannot assume the intent of declaring arrays, which is untestable. However, R2112 should only concern "wrapper elements", i.e. RPC-lit cases. The narrowing of the context here, is not sufficient to restrict properly the application of this TA.
For a candidate wsdl:binding, which contains a document-literal soap:binding
If the "parts" attribute is present, then the soapbind:body element(s) have at most one part listed in the parts attribute.
One or more soapbind:body element(s) in a document-literal soap:binding does not have at most one part listed in the parts attribute.
Defective soapbind:body element(s).
R2201
For a candidate wsdl:binding, with a style "rpc" attribute and containing at least a soapbind:body element
No wsdl:part referred by such a soapbind:body element is defined using the "element" attribute.
The referred wsdl:part element uses the "element" attribute in an rpc-literal soapbind:body.
{soapbind:body}{wsdl:part element(s)}
R2207
For a candidate wsdl:binding element
When they contain references to message parts, the soapbind:header, soapbind:headerfault and soapbind:fault elements only refer to wsdl:part element(s) that have been defined using the "element" attribute.
The soapbind:header, soapbind:headerfault or soapbind:fault elements refer to wsd:part element(s) that are not defined using only the "element" attribute.
Defective wsdl:binding and wsdl:part elements.
R2205
For a candidate wsdl:message
An "element" attribute on any wsdl:part element refers to a global element declaration.
A wsdl:message element containing a wsdl:part element that uses the "element" attribute does not refer, via that attribute, to a global element declaration.
Defective wsdl:message element.
R2206
For a candidate wsdl:message element
The wsdl:message element does not contain part elements that use both "type" and "element" attributes.
A wsdl:message element has at least one wsdl:part element that contains both type and element attributes.
Defective wsdl:message element.
R2306
For a candidate wsdl:binding element, referred to by an rpc-literal soap:binding
The rpc-literal binding does not have a namespace attribute specified on a contained soapbind:header, soapbind:headerfault, and soapbind:fault element.
An rpc-literal binding has the namespace attribute specified on contained soapbind:header, soapbind:headerfault and soapbind:fault elements.
{Defective wsdl:binding}{defective soapbind:header, soapbind:headerfault, or soapbind:fault element}
BP2017
BP2406
R2726
For a candidate wsdl:binding element
The list (or set) of wsdl:operation elements for the contained wsdl:binding is the same as the list of wsdl:operations for the referred wsdl:portType.
A wsdl:binding does not have the same list of wsdl:operations as the wsdl:portType to which it refers.
{unmatching wsdl:binding element}{unmatching portType element}
R2718
For a candidate wsdl:binding element
Every wsdl:part from each wsdl:message in the associated wsdl:portType is referenced either by the soapbind:body, soapbind:header, soapbind:fault, or soapbind:headerfault.
A wsdl:binding does not bind every wsdl:part of a wsdl:message in the wsdl:portType to which it refers to one of soapbind:body, soapbind:header, soapbind:fault or soapbind:headerfault.
{Defective wsdl:binding element}{message with part(s) unbound}
BP2118
R2209
For a candidate wsdl:binding, which is of type document-literal
If it does not specify the parts attribute on a soapbind:body element, the corresponding abstract wsdl:message defines zero or one wsdl:part.
A document-literal binding which does not specify the parts attribute, has more than one wsdl:part in the associated wsdl:message element.
Defective wsdl:binding element.
BP2404
R2210
For a candidate wsdl:binding
Each operation referenced by the binding results in a unique wire signature.
A binding has operations that are not unique.
Defective wsdl:operation element(s).
R2710
For a candidate wsdl:types element
The data type definition if any within the wsdl:types element is an XML schema definition defined in the XML Schema 1.0 Recommendation with the namespace URI "http://www.w3.org/2001/XMLSchema".
A wsdl:types element contained a data type definition that is not an XML schema definition.
Defective data type definition.
R2801
Validating the data type definitions includes any imported XML schema definitions.
For a candidate wsdl:definitions, if it contains a wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation,
or wsdl:message that claims conformance to the Profile.
Contained WSDL extension elements do not use the wsdl:required attribute value of "true".
An extension element within a WSDL element that claims conformance to the Basic Profile has a wsdl:required attribute with a value of "true".
Display the extension element that failed the assertion.
R2026
For a candidate wsdl:definitions element containing an extension element or attribute from a namespace other than "http://schemas.xmlsoap.org/wsdl/soap/" or "http://schemas.xmlsoap.org/wsdl/mime/".
The WSDL contains an extension element or attribute that does not belong to the "http://schemas.xmlsoap.org/wsdl/soap/" or "http://schemas.xmlsoap.org/wsdl/mime/" namespace.
The use of a WSDL extension element or attribute from a namespace other than "http://schemas.xmlsoap.org/wsdl/soap/" or "http://schemas.xmlsoap.org/wsdl/mime/" may require out of band negotiation.
The use of a WSDL extension element or attribute from a namespace other than "http://schemas.xmlsoap.org/wsdl/soap/" or "http://schemas.xmlsoap.org/wsdl/mime/" may require out of band negotiation.
E0013
Extension elements other than those belonging to one of the following namespaces (...) are considered extensibility points.
For a candidate wsdl:import element, where the location attribute or the namespace attribute has a value that is a relative URI, or a for soap:address element where the location attribute is a relative URI.
The use of a relative URI as the value for a wsdl:import location or namespace attribute, or for a soap:address location attribute may require out of band coordination.
A wsdl:import location or namespace attribute, or a soap:address location attribute is a relative URI.
The element(s) in question.
E0016
For an XML schema definition defined in the wsdl:types element, or imported directly or indirectly by a schema definition defined in the wsdl:types element, which contains any schema annotation elements.
An XML schema definition defined in the wsdl:types element, or imported directly or indirectly by a schema definition defined in the wsdl:types element, may use schema annotation elements as an extensibility mechanism.
An XML schema defined in the wsdl:types element, or imported directly or indirectly by a schema defined in the wsdl:types element, contains annotation elements.
The annotation elements included in the schema.
BP2202
BP2011
E0017
Schema annotations are an extensibility point.
Driver testable.
Driver testable.
Driver testable.
R2709
All of these profile requirements are testable only by using a driver test program, since a test assertion would
require application-level knowledge of the message exchange.
Not testable.
Not testable.
Not testable.
R2025
R2027
R2008
R4002
R2200
R2202
R2208
R2302
R2750
R2707
R2711
R2727
R2719
R2722
R2724
R2725
R2741
R2742
R2743
R2747
R2748
R2751
R2752
R2800
R2009
R2114
R2030
E0014
E0015
All of these profile requirements are NOT testable, or NOT testable using the
current test tools. For example, some of these test assertions represent
capabilities which can not be validated.
Note, BP2200 is NOT testable using the current test tools because any
BOM detected within a WSDL document is pre-processed by the WSDL
reader/parser and hence becomes inaccessible.
Note, R2724 could be tested. If a request is inconsistent with the WSDL for the request,
we could flag returning a non-error response. We currently do not check the status of a
request when we are processing the response. However this is within the scope of the test-tools
and we are tracking this omission defect/feature in bugzilla RE: bug#: 8.
For a candidate wsdl:binding element
The wsdl:binding binds every wsdl:part of a wsdl:message in the wsdl:portType to which it refers to one of soapbind:body, soapbind:header, soapbind:fault or soapbind:headerfault.
A wsdl:part of a wsdl:message in the wsdl:portType to which it refers does not bind to one of soapbind:body, soapbind:header, soapbind:fault or soapbind:headerfault in the wsdl:binding.
wsdl:binding.
BP2703
R2209
The essence of this assertion is captured in AP2941 but also allows binding to mime:content.. As such, we have disabled this assertion.
For a candidate wsdl:binding element
Descendant elements and attributes in the wsdl:binding are not from the namespaces of WSDL MIME, HTTP GET/POST or DIME binding extensions.
A descendant element or attribute in the wsdl:binding is from a namespace of WSDL MIME, HTTP GET/POST or DIME binding extensions.
Defective descendant element or attribute
BP2402
R9801
Note this assertion, which originates from the SSBP TAD, is disabled in this document
since it treats the detection of a namespace for a WSDL MIME extension as a failure.
The namespace for the WSDL MIME, HTTP GET/POST and DIME binding extensions respectively are assumed to be:
http://schemas.xmlsoap.org/wsdl/mime/
http://schemas.xmlsoap.org/wsdl/http/
http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/
Not testable.
Not testable.
Not testable.
R4001
R9800
R9802
All of these profile requirements are NOT testable, or NOT testable using the current test tools. For example, some of these test assertions represent capabilities which can not be validated.
For a candidate wsdl:binding element
A description uses either the WSDL MIME Binding as described in WSDL 1.1 Section 5 or WSDL SOAP binding as described in WSDL 1.1 Section 3 on each of the wsdl:input or wsdl:output elements of a wsdl:binding.
A description uses neither the WSDL MIME Binding as described in WSDL 1.1 Section 5 nor WSDL SOAP binding as described in WSDL 1.1 Section 3 on each of the wsdl:input or wsdl:output elements of a wsdl:binding.
Defective wsdl:input or wsdl:output element
R2901
For a candidate wsdl:binding with at least one mime:content element
The part attribute of each mime:content element in a wsdl:binding references
a wsdl:part element of a wsdl:message that is present in the respective wsdl:input or wsdl:output of the
corresponding wsdl:operation of the corresponding wsdl:portType.
A part attribute of a mime:content element in a wsdl:binding
does not reference a wsdl:part element of a wsdl:message that is present in the respective wsdl:input or
wsdl:output of the corresponding wsdl:operation of the corresponding wsdl:portType.
Defective wsdl:input or wsdl:output element
R2903
For a candidate wsdl:binding with at least one mime:content element
The part attribute of each mime:content element in a wsdl:binding
does not reference a sub-component of a wsdl:part of the wsdl:message that is present in the
respective wsdl:input or wsdl:output of the corresponding wsdl:operation of the corresponding
wsdl:portType.
The part attribute of a mime:content element in a wsdl:binding references
a sub-component of a wsdl:part of a wsdl:message that is present in the respective
wsdl:input or wsdl:output of the corresponding wsdl:operation of the corresponding
wsdl:portType.
Defective wsdl:input or wsdl:output element
AP2903
R2904
For a candidate wsdl:binding containing a mime:multipartRelated element
A non-root MIME part in a wsdl:binding does not contain a soapbind:header element.
A non-root MIME part in a wsdl:binding contains a soapbind:header element.
The defective mime:part
AP2911
R2906
R2905
For a candidate wsdl:binding containing a mime:multipartRelated element
Each MIME part in a description is defined using an element with a local name of part in the namespace of the WSDL MIME Binding extension.
A MIME part in a description is not defined using an element with a local name of part in the namespace of the WSDL MIME Binding extension.
Defective MIME part(s)
R2907
For a candidate wsdl:binding containing a mime:multipartRelated element
The mime:part element in a DESCRIPTION does not have a name attribute.
The mime:part element in a DESCRIPTION has a name attribute.
Defective MIME part(s)
R2908
For a candidate wsdl:binding with at least one mime:content element
Multiple mime:content child elements of a mime:part element in a desciption reference the same wsdl:part.
Multiple mime:content child elements of a mime:part element in a desciption do not reference the same wsdl:part.
Defective mime:content element of mime:part
R2909
For a candidate wsdl:binding with at least one mime:content element
A mime:content in a DESCRIPTION references a wsdl:part that is defined using either the type attribute or the element attribute.
A mime:content in a DESCRIPTION does not reference a wsdl:part that is defined using either the type attribute or the element attribute.
Defective mime:content element of mime:part
R2910
For a candidate wsdl:binding containing a mime:multipartRelated element
The mime:multipartRelated elements in wsdl:input and wsdl:ouput elements of operations in a wsdl:binding, contain exactly one mime:part child element that contains a soapbind:body child element.
A mime:multipartRelated element in a wsdl:input or wsdl:output element of an operation in a wsdl:binding, contains greater or less than one mime:part child element that contains a soapbind:body child element.
The defective mime:multipartRelated element
R2911
For a candidate wsdl:binding containing a mime:multipartRelated element
A wsdl:fault element in a description does not have mime:multipartRelated element as its child element.
A wsdl:fault element in a description has mime:multipartRelated element as its child element.
Defective wsdl:fault element
R2930
For a candidate wsdl:binding containing a mime:multipartRelated element
In a description, a wsdl:part defined with the ref:swaRef schema type is bound to a soapbind:body, or a soapbind:header in a MIME binding.
In a description, a wsdl:part defined with the ref:swaRef schema type is not bound to a soapbind:body, or a soapbind:header in a MIME binding.
Defective MIME binding
R2940
R2905
For a candidate wsdl:binding
A wsdl:binding in a description binds every wsdl:part of a wsdl:message in the wsdl:portType to which it refers to one of soapbind:body, soapbind:header, soapbind:fault , soapbind:headerfault, or mime:content.
A wsdl:binding in a description does not bind every wsdl:part of a wsdl:message in the wsdl:portType to which it refers to one of soapbind:body, soapbind:header, soapbind:fault , soapbind:headerfault, or mime:content.
Defective wsdl:binding element
R2941
R2905
For a candidate wsdl:binding with at least one mime:content element
In a DESCRIPTION, if a wsdl:part element refers to a global element declaration (via the element attribute of the wsdl:part element) then the value of the type attribute of a mime:content element that binds that part is a content type suitable for carrying an XML serialization.
The value of the type attribute of a mime:content element that binds that part is not a content type suitable for carrying an XML serialization.
Defective mime:content element
R2944
For a candidate wsdl:binding with at least one mime:content element
In a DESCRIPTION, a mime:content element includes the part attribute.
A mime:content element does not include the part attribute.
Defective mime:content element
R2946
Driver testable.
Driver testable.
Driver testable.
R2905
R2943
All of these profile requirements are testable only by using a driver test program, since a test assertion would
require application-level knowledge of the message exchange.
For a candidate wsdl:binding
Not testable.
Not testable.
R2947
All of these profile requirements are NOT testable, or NOT testable using the test tools. For example, some of these test assertions represent capabilities which can not be validated.
The Basic Profile requires support for SOAP 1.1 and HTTP 1.0 or 1.1.
For a candidate request message in the message log file
The request message is a POST message, without any use of framework extension.
The message is not an HTTP POST message, or makes use of HTTP framework extension.
All HTTP headers.
R1132
R1108
For a candidate request message in the message log file, when a SOAPAction header is present
The SOAPAction header contains a quoted string of any value, including "".
SOAPAction HTTP header does not contain a quoted string.
All HTTP headers.
R1109
For a candidate request message in the message log file, when a SOAPAction header is present
The SOAPAction header contains a quoted string that has same value as the value of the soapbind:operation/@soapAction attribute, and an empty string ("") if there is no such attribute.
SOAPAction header does not contain the correct string value.
{All HTTP headers}{soapAction value from the soap:binding}.
binding
BP1006
R2744
R2745
For a candidate message in the log file, that is either a POST HTTP request, or a response to a POST HTTP request
If it is a request, the arg #2 of POST is <HTTP/1.1>. If absent, first line of the body is: HTTP-Version = HTTP/1.1. If it is a response, it starts with <HTTP/1.1>
The message is not sent using HTTP/1.1.
All HTTP headers.
BP1002
R1140
For a candidate message in the log file, that is either a POST HTTP request, or a response to a POST HTTP request
If it is a request, the arg #2 of POST is <HTTP/1.1> or <HTTP/1.0>. If absent, first line of the body is: HTTP-Version = HTTP/1.1. (or HTTP/1.0). If it is a response, it starts with <HTTP/1.1> or <HTTP/1.0>
The message is not sent using HTTP/1.1 or HTTP/1.0.
All HTTP headers.
R1141
For a candidate response message in the message log file, which is bound to a One-Way wsdl:operation
It does not contain a soap:Envelope: the HTTP entity-body is empty
One-Way operation response contains a soap:Envelope (HTTP entity-body must be empty)
requestMessage
operation
R2714
Need the request to determine if it is a One-Way.
We could have targeted the request as well (as primary entry), and correlate with the response.
For a candidate response message in the log file, that does not contain a SOAP message and that does not contain an HTTP 4xx status code
The response message, if successfully processed at HTTP level, is sent using either a "200 OK" or "202 Accepted" HTTP status code.
A response message without a SOAP message, is not using either a "200 OK" or
"202 Accepted" HTTP status code, though successful at HTTP level.
Complete message.
requestMessage
R1112
This test assertion is targeted at one-way operations.
For a candidate response message in the message log file, associated with a request message that does not contain an HTTP POST method
The response contains a "405 Method not Allowed" HTTP status code.
The response message to a request that was not a POST message, did not contain an 405 HTTP status code.
Both the request and response message.
requestMessage
R1114
For a candidate message in the message log file containing an HTTP Authentication header field with an authentication mechanism other than "Basic" or "Digest"
The message contains an HTTP Authentication header field with an authentication mechanism other than "Basic" or "Digest".
HTTP authentication allows for extension schemes, arbitrary digest hash algorithms and parameters.
E0007
HTTP Authentication is an extensibility point for HTTP 1.1.
For a candidate message in the message log file containing an HTTP Header field that is not from the following list of specified header fields: (http://www.mnot.net/drafts/draft-nottingham-http-header-reg-00.txt)
The message contains an HTTP Header field that is not from the following list of specified header fields: (http://www.mnot.net/drafts/draft-nottingham-http-header-reg-00.txt)
The message contains an HTTP Header field that is not from the following list of specified header fields: (http://www.mnot.net/drafts/draft-nottingham-http-header-reg-00.txt)
HTTP allows arbitrary headers to occur in messages.
E0008
If all HTTP headers in a message are in the standardized list of draft-nottingham-http-header-reg-00 it will cause the informationalassertion 4104 to be notApplicable; otherwise 4101 will pass and headers not in the draft-nottingham-http-header-reg-00 will be listed.
For a candidate message in the message log file containing a Content-encoding HTTP header field with a value other than "gzip", "compress" or "deflate"
The contained Content-encoding HTTP header field has a value other than "gzip", "compress" or "deflate".
The Content-encoding HTTP header field has a value other than "gzip", "compress" or "deflate".
The set of content-codings allowed by HTTP is open-ended.
E0010
Any Content-encoding header field with a value other than the specified list is considered to be an extensibility point.
For a candidate response message in the message log file containing a transfer-encoding HTTP header field with a value other than "chunked"
The contained transfer-encoding HTTP header field has a value other than "chunked".
The contained transfer-encoding HTTP header field has a value other than "chunked".
Any Transfer-encoding header field with a value other than chunked is considered to be an extensibility point.
E0011
Any Transfer-encoding header field with a value other than chunked is considered to be an extensibility point.
For a request message containing an Upgrade header field in the HTTP Headers.
The request message contains an Upgrade header field in the HTTP Headers.
The message contains an Upgrade header field in its HTTP Headers.
The Upgrade header field is considered an HTTP Extensibility point.
E0012
The Upgrade header field is considered an HTTP Extensibility point.
Driver testable.
Driver testable.
Driver testable.
All of these profile requirements are testable only by using a driver test program, since a test assertion would
require application-level knowledge of the message exchange.
Not testable.
Not testable.
Not testable.
R1115
R1122
R1113
R1119
R1120
R1121
R1123
R1124
R1125
R1127
R1130
R1131
R1127
R5000
R5001
R5010
E0009
E0019
E0020
E0021
E0022
E0023
All of these profile requirements are NOT testable. Some of these test assertions represent capabilities which
can not be validated.
For a candidate non-multipart/related message in the log file, which has a non-empty entity-body
The logged SOAP envelope is a UTF-8 transcript of an envelope originally encoded as UTF-8 or UTF-16.
The HTTP Content-Type header's charset value is either UTF-8 or UTF-16. Looking at the messageContent
element of the logged message, either
(1) it has a BOM attribute which maps the charset value in the Content-Type header, or
(2) it has it has an XML declaration which matches the charset value in the Content-Type header, or
(3) there is no BOM attribute and no XML declaration, and the charset value is UTF-8.
Either
(1a) the message contains a Content-Type header but no charset value, or
(1b) the charset value is neither UTF-8 nor UTF-16, or
(2) there is a BOM attribute in the messageContent element, but its value does not match the charset value, or
(3) there is an XML declaration, and the charset value does not match its value, or
(4) there is no BOM attribute, no XML declaration, and the charset value in Content-Type header is not UTF-8.
Complete message.
R1012
R1018
Note the context for this assertion which originated from the SSBP TAD, is more specific in
this document to ensure that it does not apply to multipart/related messages.
The optional BOM attribute of the messagContent element is added by the Monitor into the log file, based on the original value in the HTTP payload.
For a candidate non-multipart/related message in the log file, with an HTTP entity-body.
The SOAP envelope is the exclusive payload of the HTTP entity-body.
The SOAP envelope is not the exclusive payload of the message HTTP entity-body.
The message in question.
R9700
Note the context for this assertion which originated from the SSBP TAD, is more specific in this document to ensure that it does not apply to multipart/related messages.
For a non-multipart/related candidate message in the log file.
A message must have a "Content-Type" HTTP header field. The "Content-Type" HTTP header field must have a field-value whose media type is "text/xml".
The message either (1) did not have a "Content-Type" HTTP header field, or (2) the "Content-Type" HTTP header field had a field-value whose media type was something other than "text/xml"
The value of the media-type field, if any.
R9702
R9703
Note the context for this assertion which originated from the SSBP TAD, is more specific in this document to ensure that it does not apply to multipart/related messages.
Not testable.
Not testable.
Not testable.
R1010
R1019
All of these profile requirements are NOT testable. Some of these test assertions represent capabilities which can not be validated.
For a candidate message
In a description, if the wsdl:input or wsdl:output element in the wsdl:binding specifies WSDL MIME binding, then the message can contain SOAP attachments.
The message cannot contain SOAP attachments because in a description the wsdl:output or wsdl:input element in wsdl:binding does not describe WSDL MIME binding.
SOAP message.
operation
R2902
For a candidate root-part of a multipart/related message
The entity body of the root-part of a multipart/related message is serialized using either UTF-8 or UTF-16 character encoding.
The entity body of the root-part of a multipart/related message is not serialized using either UTF-8 or UTF-16 character encoding.
root-part of a multipart/related message
R2915
For a candidate message containing zero attachment parts
A message containing zero attachment parts is sent using a content-type of either "text/xml" as though a SOAP HTTP binding were used or "multipart/related" when the WSDL description for the message specifies the mime:multipartRelated element on the corresponding wsdl:input or wsdl:output element in its wsdl:binding.
A message containing zero attachment parts is not sent using a content-type of either "text/xml" as though a SOAP HTTP binding were used or "multipart/related" when the WSDL description for the message specifies the mime:multipartRelated element on the corresponding wsdl:input or wsdl:output element in its wsdl:binding.
SOAP message.
operation
R2917
For a candidate message
If the WSDL description lists at least one non-root MIME part, then the corresponding message has a Content-Type HTTP header field-value with a media-type of "multipart/related".
The WSDL description lists at least one non-root MIME part and the corresponding message does not have a Content-Type HTTP header field-value with a media-type of "multipart/related".
Incorrect Content-Type value in HTTP header
operation
R2925
For a candidate message
A message includes all of the MIME parts described by its WSDL MIME binding.
A message does not include all of the MIME parts described by its WSDL MIME binding.
SOAP message.
operation
R2926
For a candidate root-part of a multipart/related message
The entity body of the root-part of multipart/related message is a soap:Envelope.
The entity body of the root-part of multipart/related message is NOT a soap:Envelope.
root-part of a multipart/related message
R2931
For a candidate message containing a Content-Type HTTP header field-value with a media type of "multipart/related"
In a message, the Content-Type HTTP header field-value has a "type" parameter with a value of "text/xml" when it has a media type of "multipart/related".
In a message, the Content-Type HTTP header field-value does not have a "type" parameter with a value of "text/xml" when it has a media type of "multipart/related".
SOAP message.
R2932
For a candidate message
If a description binds a wsdl:message part to a mime:content element, then the corresponding MIME part's content-id field-value in a message must conform to the content-id part encoding.
A description binds a wsdl:message part to a mime:content element and the corresponding MIME part's content-id field-value in a message does not conform to the content-id part encoding.
SOAP message.
operation
R2933
For a candidate part of a multipart/related message
The Content-Transfer-Encoding field of a part in a multipart/related message has a value of "7bit", "8bit", "binary", "quoted-printable" or "base64".
The Content-Transfer-Encoding field of a part in a multipart/related message does not have a value of "7bit", "8bit", "binary", "quoted-printable" or "base64".
a part of a multipart/related message
R2934
For a candidate part of a multipart/related message
The encoding of the body of a part in a multipart/related message conforms to the encoding indicated by the Content-Transfer-Encoding field-value, as specified by RFC2045.
The encoding of the body of a part in a multipart/related message does not conform to the encoding indicated by the Content-Transfer-Encoding field-value, as specified by RFC2045.
a part of a multipart/related message
R2935
For a candidate multipart/related message
In a message, all MIME encapsulation boundary strings are preceded with the ascii characters CR (13) and LF (10) in that sequence.
In a message, all MIME encapsulation boundary strings are not preceded with the ascii characters CR (13) and LF (10) in that sequence.
SOAP message.
R2936
For a candidate part of a multipart/related message that is bound to a mime:content that refers to global element declaration (via the element attribute of the wsdl:part element)
The bound message part is serialized within the MIME part as a serialization of an XML infoset whose root element is described by the referenced element.
The bound message part is not serialized within the MIME part as a serialization of an XML infoset whose root element is described by the referenced element.
a part of a multipart/related message
operation
R2942
For a candidate message
The Content-Type HTTP header field-value in a message is either "multipart/related" or "text/xml".
The Content-Type HTTP header field-value in a message is neither "multipart/related" nor "text/xml".
SOAP message.
R2945
For a candidate multipart/related message containing non-root parts
The candidate multipart/related message contains non-root parts.
The candidate multipart/related message contains non-root parts.
There is no restriction on the type of any non-root part in a multipart/related message.
E0001
For a candidate message
Not testable.
Not testable.
R2912
R2913
R2916
R2919
R2921
R2922
R2923
R2929
All of these profile requirements are NOT testable, or NOT testable using the test tools. For example, some of these test assertions represent capabilities which can not be validated.
SOAP 1.1 defines a structure for transmitting messages, the envelope. The profile mandates the use of that structure.SOAP 1.1 defines a structure for transmitting messages, the envelope. The profile mandates the use of that structure.
For a candidate response envelope containing a soap:Fault element
The contained soap:Fault element is defined in the wsdl:binding.
The response envelope contained soap:Fault element(s), but they
were not defined in the WSDL description.
Undefined soap:Fault element(s).
binding
R2740
R2927
For a candidate envelope containing a soap:Body element
No child element of soap:Body has a soap:encodingStyle attribute.
A child of the soap:Body element has a soap:encodingStyle attribute.
SOAP message
BP1701
R1006
R2927
For a candidate envelope in a request message
The content of the envelope matches the definition in the WSDL document. In case of a doc-lit binding, the child element of soap:body is an instance of the global element declaration referenced by the corresponding wsdl:part bound to the envelope's soapbind:body element. If the message has "parts", the order of the part elements in the soap:body of the wired message, is same as that of the wsdl:partS, in the wsdl:message that describes it for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element.
The content of the envelope does not match the wsdl:message definition. The order of parts in soap:body does not match the order of wsdl:partS in wsdl:message that describes it for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element. Or the child element of soap:body is not an instance of the global element declaration referenced by the corresponding wsdl:part bound to the envelope's corresponding soapbind:body element.
Non-matching WSDL operation and envelope.
operation
1
BP1701
BP1308
R2301
R2712
R2927
R2710
R2742
R2743
R2748
R2710, R2742 R2743 and R2748 used as "assumed" reqts, not reqts to verify. The soap:encodingStyle verification done by pre-req BP1308 on children, is not done for grand-children (BP1318 could not be a pre-req)
For a candidate envelope in a response message, if it does not contain a soap:Fault
The content of the envelope matches the definition in the WSDL document. In case of an rpc-lit binding, the body contains a wrapper element that matches the operation name. In case of a doc-lit binding, the child element of soap:body is an instance of the global element declaration referenced by the corresponding wsdl:part bound to the envelope's soapbind:body element. If the message has "parts", the order of the part elements in the soap:body of the envelope, is same as that of the wsdl:partS, in the wsdl:message that describes it for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element.
The content of the envelope does not match the wsdl:message definition. The order of parts in soap:body does not match the order of wsdl:partS in wsdl:message that describes it for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element. Or it has a doc-lit binding but the child element of soap:body is not an instance of the global element declaration referenced by the corresponding wsdl:part bound to the envelope's corresponding soapbind:body element. Or it has an rpc-lit binding but no wrapper element.
Non-matching WSDL operation and envelope.
requestEnvelope
operation
BP1701
R2301
R2712
R2927
R2710
R2742
R2743
R2748
R2710, R2742 R2743 and R2748 used as "assumed" reqts, not reqts to verify. The test assertion also verifies the wrapper element in case of an rpc-binding (in a same way as BP1005 which could not be a pre-requisite due to a narrower context)
For a candidate envelope
The soap:body of the envelope does not contain the soapenc:arrayType attribute.
The soap:body of an envelope contains the soapenc:arrayType attribute.
SOAP envelope.
BP1701
R2113
R2927
R2113 has been interpreted as applying to any message body, as it is unclear how to narrow to serialized array declarations. The narrowing of the context here,may not be sufficient to restrict properly the application of this TA.
For a candidate envelope containing a "mustUnderstand" attribute
The "mustUnderstand" attribute in the envelope has one of two values: 1, 0.
The "mustUnderstand" attribute in an envelope has a value different from: 1, 0.
SOAP envelope, plus envelope of a request message if it is a response.
BP1701
R1013
R2927
For a candidate envelope in a response message containing a soap:Fault element
The soap:Fault element is contained in an HTTP 500 message with "Server" Error code.
The soap:Fault message is not returned in an HTTP 500 message.
SOAP envelope.
responseMessage
BP1701
R1126
R2927
For a candidate envelope in a response message containing a soap:Fault element
The soap:Fault element does not have children other than soap:faultcode, soap:faultstring, soap:faultactor or soap:detail.
One or more soap:Fault child elements are not standard, i.e. is neither soap:faultcode, soap:faultstring, soap:faultactor nor soap:detail.
SOAP envelope
BP1701
R1000
R2927
For a candidate envelope in a response message containing a soap:Fault element
The content of the soap:Fault element does not make use of the SOAP 1.1 dot notation, i.e. is a string without a dot character in it.
A soap:Fault element makes use of the SOAP 1.1 dot notation.
SOAP envelope
BP1701
R1031
R2927
For a candidate envelope
The soap:Envelope, soap:Header, and soap:Body elements do not have any attributes in the namespace "http://schemas.xmlsoap.org/soap/envelope/"
A soap:Envelope, soap:Header, or soap:Body element has an attribute in the namespace "http://schemas.xmlsoap.org/soap/envelope/".
SOAP envelope
BP1701
R1032
R2927
For a candidate envelope
The SOAP envelope does not contain the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".
The SOAP envelope contains the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".
SOAP envelope
BP1701
R1033
R2927
For a candidate envelope in a response message containing a soap:Fault element
The soap:Fault element children (soap:faultcode, soap:faultstring, soap:faultactor or soap:detail) are unqualified.
One or more soap:Fault child elements are qualified.
SOAP envelope
BP1701
R1001
R2927
For a candidate envelope containing elements with namespace "http://schemas.xmlsoap.org/soap/envelope/"
The envelope contains elements in the namespaced "http://schemas.xmlsoap.org/soap/envelope/" namespace that do not have a soap:encodingStyle attribute.
The envelope contains one or more elements in the "http://schemas.xmlsoap.org/soap/envelope/" namespace that have asoap:encodingStyle attribute.
SOAP envelope
BP1701
R1005
R2927
For a candidate non-fault envelope containing a soap:body with at least one grandchild, and is referred by an rpc-literal binding
The grandchild elements of soap:Body referred by an rpc-literal binding do not have a soap:encodingStyle attribute.
At least one grandchild of the soap:Body element referred by an rpc-literal binding has a soap:encodingStyle attribute.
SOAP envelope
operation
BP1701
BP1202
R1007
R2927
For a candidate non-fault envelope containing a soap:body with at least one element, and that is referred by a binding style rpc-literal
The envelope has part accessor elements for parameters and return value, in no namespaces, but the descendants of these are namespace qualified as defined by the schema in which their types are defined.
The envelope has part accessor elements for parameters and return value, within namespaces, or the descendants of these elements are not namespace qualified as defined by the schema in which their types are defined.
binding
BP1701
R2735
R2737
R2927
For a candidate non-fault envelope containing a soap:body with at least one element, and that is referred by a binding style rpc-literal
Part accessor elements in the envelope do not have an xsi:nil attribute with a value of "1" or "true".
Envelope referenced by an rpc-literal binding has part accessor elements with an xsi:nil attribute with a value of "1" or "true".
binding
BP1701
R2211
R2927
For a candidate non-fault envelope containing a soap:body with at least one element
The envelope contains exactly one part accessor element for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element.
The content of the soap:Body element is inconsistent with its description. The envelope does not contain exactly one part accessor element for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element.
binding
BP1701
R2212
R2927
For a candidate non-fault envelope containing a soap:Body element, and is referred by a doc-literal binding
The envelope has no element content in the soap:Body element if the value of the parts attribute of the soapbind:body is an empty string in the corresponding doc-literal description.
The soap:Body element must be empty when, in the corresponding doc-literal description, the value of the parts attribute of soapbind:body is an empty string.
SOAP envelope
binding
BP1701
R2213
R2927
For a candidate non-fault envelope containing a soap:Body element, and is referred by a rpc-literal binding
The envelope does not contain any part accessor elements if the value of the parts attribute of the soapbind:body is an empty string in the corresponding rpc-literal description.
The content of the soap:Body element is inconsistent with its description. The envelope must not have any part accessor elements when, in the corresponding rpc-literal description, the value of the parts attribute of soapbind:body is an empty string.
SOAP envelope
binding
BP1701
R2214
R2927
For a candidate non-fault envelope containing a soap:body with at least one element, and that is referred by a binding style rpc-literal
Each part accessor element in the envelope has a local name of the same value as the name attribute of the corresponding wsdl:part element.
The envelope referenced by an rpc-literal binding has a part accessor element with a local name that is not the same value as the name attribute of the corresponding wsdl:part element.
binding
BP1701
R2755
R2927
For a candidate non-fault envelope in a response message, that has a soap:body with at least a child element, and is
referenced by a rpc-literal binding to a WSDL request-response operation
The envelope has a wrapper element with a name equal to the name attribute on the wsdl:operation element suffixed with string "Response".
Wrapper element in the envelope does not have a value equal to the name attribute on the wsdl:operation element suffixed with string "Response".
requestEnvelope
binding
BP1601
BP1202
R2729
R2927
Assume a correlation with WSDL binding entry is needed.
For an envelope in a response message containing a soap:Fault element with a faultcode child element
The soap:faultcode value in the soap:Fault element of the envelope is either one of: VersionMismatch, MustUnderstand, Client, Server, or is qualified by a namespace.
The soap:faultcode value in the soap:Fault element of the envelope is not one of: VersionMismatch, MustUnderstand, Client, Server, or is not qualified by a namespace.
SOAP envelope in a response message.
BP1701
R1004
R2927
If namespace qualified, the namespace is other than http://schemas.xmlsoap.org/soap/envelope/, per (assumed) conformance to SOAP.
For an envelope in a response message containing a soap:Fault element, if there is any qualified attribute for the detail element
The namespace of a qualified attribute appearing on the detail element in the soap:Fault
is a foreign namespace, different from "http://schemas.xmlsoap.org/soap/envelope/".
The soap:Fault message contains detail element with attributes qualified with a non-foreign namespace.
SOAP message.
BP1701
R1003
R2927
this is a narrowing of the schema, which allows any namespace.
For a candidate non-fault envelope in a response message
The message uses a "200 OK" HTTP status code.
The envelope of the response message does not contain a soap:Fault and the message does not use a "200 OK" HTTP status code.
Complete message.
responseMessage
BP1701
R1111
R2927
For a candidate envelope
The envelope conforms to the structure specified in SOAP 1.1 Section 4.
The envelope does not conform to the structure specified in SOAP 1.1 Section 4
SOAP envelope.
R9980
R2927
For a candidate non-empty envelope
The soap:envelope and soap:body are well-formed XML 1.0 documents.
The soap:Envelope or soap:Body does not conform to XML 1.0.
{SOAP envelope}{any XML parser error messages}
R2927
Assumed in underlying spec, though no formal Rxxxx for it. 1st step in a 3-phase verification process: XMLvalid + namespace check + schemavalid.
For a candidate envelope
The envelope has a document element named "Envelope" with namespace http://schemas.xmlsoap.org/soap/envelope/.
The envelope does not use SOAP 1.1, i.e. does not have a document element named "Envelope" or a namespace value of http://schemas.xmlsoap.org/soap/envelope/.
SOAP envelope.
BP1601
R2927
Assumed in underlying spec, though no formal Rxxxx for it (run-time version of R2700). 2nd step in a 3-phase verification process: XMLvalid + namespace check + schemavalid.
For a candidate envelope containing a soap:body with at least one child element
Each child element (if any) of the soap:Body element is namespace qualified (not the grandchildren).
A child element of the soap:Body element is not namespace qualified.
SOAP envelope.
BP1701
R1014
R2927
For a candidate envelope
The envelope conforms to the SOAP schema located at http://schemas.xmlsoap.org/soap/envelope/
The envelope does not conform to the SOAP schema located at http://schemas.xmlsoap.org/soap/envelope/.
SOAP message.
BP1201
R2927
Assumed in underlying spec, though no formal Rxxxx for it. 3rd step in a 3-phase verification process: XMLvalid + namespace check + schemavalid.
For a candidate envelope in a response message, that is a part of a Request-Response operation where the request contains a soap:Envelope with a document element with name: "Envelope" and a namespace different than "http://schemas.xmlsoap.org/soap/envelope/".
A soap:Fault is generated as response.
A soap:Fault is not generated for a document element named "Envelope" that had namespace
different from: "http://schemas.xmlsoap.org/soap/envelope/"
requestEnvelope
operation
BP1701
R1015
R2927
For a candidate envelope
DTDs relating to soap:header or soap:body documents, are not present in the envelope: no DOCTYPE element is present.
The soap:header or soap:body elements in the envelope, were described with an included DTD.
SOAP envelope.
BP1701
R1008
R2927
For a candidate envelope
The SOAP envelope does not include XML processing instructions.
a SOAP envelope contains XML processing instructions.
SOAP envelope.
BP1701
R1009
R2927
For a candidate non-fault envelope containing a soap:body with at least a child element, and that is not a response message to a one-way WSDL operation
The Envelope includes all soapbind:headers specified in the wsdl:input (if request) or wsdl:output (if response) of the operation referred to by its wsdl:binding, and may also include headers that were not specified.
Envelope does not include all soapbind:headers specified in the wsdl:input (if request) or wsdl:output (if response) of its bound operation.
binding
BP1601
BP1202
R2738
R2739
R2927
R2747
R2748
For a candidate envelope containing a soap:Body element
The soap:Envelope does not have direct children after the soap:Body element
The soap:Envelope has a direct child after the soap:Body element.
BP1701
R1011
R2927
For a candidate envelope containing a header block that is either mandatory or is not described in the wsdl:binding.
An envelope contains a header block that is either mandatory or is not described in the wsdl:binding.
A header block in the envelope is either mandatory or is not described in the appropriate wsdl:binding.
Header blocks are the fundamental extensibility mechanism in SOAP.
binding
E0001
R2927
This assertion is for the header blocks extensibility element.
For a candidate envelope containing a soap:actor attribute with a value other than the special uri "http://schemas.xmlsoap.org/soap/actor/next".
A header element in the envelope contains a soap:actor attribute with a value other than the special uri "http://schemas.xmlsoap.org/soap/actor/next".
A header element in the envelope contains a soap:actor attribute with a value other than the special uri "http://schemas.xmlsoap.org/soap/actor/next".
Values of the soap:actor attribute, other than the special uri "http://schemas.xmlsoap.org/soap/actor/next", represent a private agreement between parties of the web service.
E0004
R2927
The soap:actor attribute is an extensibility point.
For a candidate envelope containing a fault with a non-empty detail element.
A Fault element in an envelope contains a non-empty detail element.
A Fault element in an envelope contains a non-empty detail element.
The contents of a Fault's detail element are not prescribed by SOAP 1.1.
E0005
R2927
For a candidate envelope containing a soap:Body element with local or namespaced attributes.
An envelope contains a soap:Body element with local or namespaced attributes.
A namespaced or local attribute on a soap:Body element is considered an extensibility point because it is not constrained by SOAP 1.1.
E0025
R2927
Note that a namespace declaration on a soap:Body element is not considered an extensibility point.
Driver testable.
Driver testable.
Driver testable.
R1002
R1016
R2927
All of these profile requirements are testable only by using a driver test program, since a test assertion would
require application-level knowledge of the message exchange.
Not testable.
Not testable.
Not testable.
R1017
R1025
R1027
R1028
R1029
R1030
R1107
R2753
E0002
E0003
E0006
E0024
All of these profile requirements are NOT testable.
Some of these test assertions represent capabilities which
can not be validated.
Note: That E0024 as stated, is really not worth testing because
it is always true since there is always at least one namespace declaration
(i.e., the SOAP namespace) defined on the Envelope element.
For a candidate message in the message log file, which is not an empty response message
The soap:envelope in the message is a well-formed XML 1.0 document.
The soap:Envelope does not conform to XML 1.0.
{SOAP message}{any XML parser error messages}
R9701
For a candidate envelope
The ENVELOPE does not contain the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".
An ENVELOPE contains the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".
SOAP envelope.
R9704
For an envelope in a response message containing a soap:Fault element with attachments
In a description, if and only if, the wsdl:output element is described using WSDL MIME binding, then the envelope in the response message can contain faults with attachments.
The envelope in a response message contains a fault with attachments and the corresponding wsdl:output element in the description is not described using the WSDL MIME binding.
SOAP message.
operation
R2920
For a candidate envelope containing a URI reference that is typed using the ref:swaRef schema type
In an envelope, a URI reference that is typed using the ref:swaRef schema type resolves to a MIME part in the same message as the envelope.
In an envelope, a URI reference that is typed using the ref:swaRef schema type does not resolve to a MIME part in the same message as the envelope.
SOAP message.
anyMessage
R2928
Not testable.
Not testable.
Not testable.
R2918
All of these profile requirements are NOT testable. Some of these test assertions represent capabilities which
can not be validated.