This document contains the test assertions for the
WS-I Basic Profile definition. These test assertions are
used by the analyzer testing tool to determine if
a Web service is conformant to the Basic Profile.
The Basic Profile requires support for UDDI V2.0.
For one uddi:tModel from a candidate REGISTRY
The uddi:tModel has a "name" element of value "ws-i-org:conformsTo:2002_12" , has an overviewURL value of "http://ws-i.org/schemas/conformanceClaim/", and has a keyedReference element with keyName attribute value of "uddi-org:types:categorization".
The UDDI registry that was referred to does not contain a tModel element with name value "ws-i-org:conformsTo:2002_12" , overviewURL value of "http://ws-i.org/schemas/conformanceClaim/", and keyedReference element with keyName attribute value of "uddi-org:types:categorization".
UDDI URI
none
none
R3021
WSI3021 has been disabled because it is the only test assertion about the conformance of Registries, which we do not support inthe tools at this time.
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}
none
definitions
R3002
R3010
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
none
none
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}
none
none
R3003
For a candidate uddi:tModel
The conformance claims in the uddi:tModel are the same as those in the wsdl:binding which is referenced by the uddi:tModel.
The uddi:tModel conformance claims are not the same as those in the wsdl:binding that it references.
{tModel key}{conformance claims in tModel and binding}
none
binding
WSI3001
WSI3003
R3004
For a candidate uddi:tModel with one or more conformance claims
i.e. which has a categoryBag with a reference to the ws-i-org:conformsTo:2002_12 tModel
The uddi:tModel uses the ws-i-org:conformsTo:2002_12 categorization value of
"http://ws-i.org/profiles/basic/1.0". The categoryBag in the tModel contains a keyedReference with a tModelKey that contains the key value uuid:65719168-72c6-3f29-8c20-62defb0961c0 for the ws-i-org:conformsTo:2002_12 tModel.
The uddi:tModel does not have a categorization value of "http://ws-i.org/profiles/basic/1.0", or the categorybag does not contain a keyedReference with a tModelKey that contains the key value uuid:65719168-72c6-3f29-8c20-62defb0961c0 for the ws-i-org:conformsTo:2002_12 tModel.
{tModel key}{categoryBag}
none
none
R3030
R3020
R3021
For a candidate uddi:bindingTemplate
A uddi:businessEntity or uddi:businessService associated with this uddi:bindingTemplate is not categorized using the ws-i-org:conformsTo:2002_12 taxonomy.
A uddi:businessEntity or uddi:businessService associated with the uddi:bindingTemplate is categorized using the ws-i-org:conformsTo:2002_12 taxonomy, while it should not.
{businessEntity key and/or businessService key}{categoryBag}
none
none
R3005
R3021
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.
none
none
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.
none
none
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
none
none
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.
none
none
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}
none
none
WSI2102
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/.
none
none
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://schemas.xmlsoap.org/wsdl/2003-02-11.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://schemas.xmlsoap.org/wsdl/soap/2003-02-11.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.
none
none
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 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.
none
none
WSI2703
R2023
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.
none
none
WSI2703
R2303
For a candidate wsdl:portType definition
"Name" attributes of Operations are unique across the wsdl:portType definition
names are not unique within the portType definition.
list of duplicate name(s) and of elements that use them.
none
none
WSI2703
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 soapbind:body element does not have a namespace attribute, or the namespace attribute
value is not an absolute URI.
soapbind:body elements that failed the assertion
none
none
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.
none
none
WSI2703
R2720
R2749
Generally WSI2703 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.
none
none
WSI2703
R2401
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
none
none
WSI2402
R2401
R9801
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/
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
none
none
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
none
none
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.
none
none
WSI2703
WSI2402
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.
The binding (in soapbind:body elements) refers to part(s) of a soap:body element that do not have the "element" attribute.
soapbind:body element(s) that have non "element" parts attributes.
none
none
WSI2404
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.
none
none
WSI2703
R2706
R2723
R2707
R2707 is not the verified Req, but an assumed Req for this verification.
For a candidate wsdl:binding element, if the contained soap:binding element has a "style" attribute equal to "document" and soap:operations have "use" attribute equal to "literal":
The "namespace" attribute is not specified in any contained soapbind:body, soapbind:header, soapbind::headerfault, soapbind:fault elements
The binding is of style "document" and use "literal", and the "namespace" attribute is specified in some soapbind:body, soapbind:header, soapbind::headerfault, soapbind:fault element
Contained element with namespace attribute.
none
none
WSI2406
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
soap:binding (in soapbind:body elements) refers to part(s) that do not have the "type" attribute.
{binding}{message with failed part}
none
none
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 operation name}{output wsdl:message}
none
none
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.
none
none
WSI2404
R2705
R2706
For a candidate wsdl:definitions with conformance annotations,
Each WS-I conformance annotation is child of the wsdl:documentation of either wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message elements.
A WS-I conformance annotation appears within an element where it is not permitted, i.e. is not a child of the wsdl:documentation of either wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message elements.
Defective element name(s) that contain the conformance annotation.
none
none
R0003
This assertion is processed once for each WSDL description.
For a candidate wsdl:definitions, if it contains a wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message, which in turn contains a conformance annotation
The conformance annotation of the wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message, validates to the schema defined in the Basic Profile, and is direct child of the documentation element for the WSDL element. The schema definition uses "http://ws-i.org/schemas/conformanceClaim/" as the targetNamespace.
The conformance annotation for a wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message is not correct: either no direct child of the documentation element, or does not validate to the conformanceClaim schema.
Element name(s) that contain the defective conformance annotation.
none
none
WSI2099
R0002
This assertion is processed once for each WSDL description.
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.
none
none
WSI2703
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.
none
none
R2007
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.
none
none
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.
none
none
WSI2101
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.
none
none
R2022
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).
none
none
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 (WSI2417).
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).
none
none
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).
none
none
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).
none
none
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).
none
none
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).
none
none
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)}
none
none
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.
none
none
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.
none
none
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.
none
none
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}
none
none
WSI2017
WSI2406
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}
none
none
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}
none
none
WSI2118
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.
none
none
WSI2404
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).
none
none
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.
none
none
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.
none
none
R2026
Driver testable.
Driver testable.
Driver testable.
Driver testable.
none
none
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.
Not testable.
none
none
R2025
R2027
R2008
R2020
R2021
R2024
R2202
R2208
R2302
R2750
R4001
R2707
R2709
R2711
R2727
R2719
R2722
R2728
R2724
R2725
R2741
R2747
R2748
R2751
R2752
R2800
R4002
R2009
R9800
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.
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.
none
none
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.
none
none
R1109
For a candidate message in the message log file, which is not an empty message
The soap:envelope and soap:body in the message are well-formed XML 1.0 documents.
The soap:Envelope or soap:Body does not conform to XML 1.0.
{SOAP message}{any XML parser error messages}
none
none
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 message in the message log file, that has an HTTP entity-body
The message entity-body is a soap:Envelope the namespace of which has value: http://schemas.xmlsoap.org/soap/envelope/.
The soap:envelope of a message does not use SOAP 1.1, i.e. does not have a namespace value of http://schemas.xmlsoap.org/soap/envelope/.
SOAP message.
none
none
WSI1601
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 message in the message log file, that has an HTTP entity-body
The HTTP entity-body is a soap:Envelope conforming to the SOAP schema located at http://schemas.xmlsoap.org/soap/envelope/
The message entity-body does not contain a soap:Envelope conforming to the SOAP schema located at http://schemas.xmlsoap.org/soap/envelope/.
SOAP message.
none
none
WSI1201
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 message in the message log file, if it contains a soap:Body element
The children elements of soap:Body do not have a soap:encodingStyle attribute.
A child of the soap:Body element has a soap:encodingStyle attribute.
SOAP message
none
none
WSI1701
R1006
For a candidate request message in the message log file, without soap:Fault
The content of the message 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. 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 corresponding wsdl:message.
The content of the request message did not match the wsdl:message definition. The order of parts in soap:body does not match the order of wsdl:partS in wsdl:message, or the child element of soap:body is not an instance of the global element declaration referenced by the corresponding wsdl:part.
Non-matching WSDL operation and message.
none
operation
WSI1701
WSI1308
R2301
R2712
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 WSI1308 on children, is not done for grand-children (WSI1318 coul dnot be a pre-req)
For a candidate response message in the message log file, if it does not contain a soap:Fault
The content of the message matches the definition in the WSDL document. In case of an rpc-lit binding, the body contains a wrapper element that matches theoperation 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. 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 corresponding wsdl:message.
The content of the response message did not match the wsdl:message definition. The order of parts in soap:body does not match the order of wsdl:partS in wsdl:message, 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, or it has an rpc-lit binding but no wrapper element.
Non-matching WSDL operation and message.
requestMessage
operation
WSI1701
R2301
R2712
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 WSI1005 which could not be a pre-requisite due to a narrower context)
For a candidate message, in the message log file
DTDs relating to soap:header or soap:body documents, are not present in the message: no DOCTYPE element is present.
The soap:header or soap:body elements in message, were described with an included DTD.
SOAP message.
none
none
WSI1701
R1008
For a candidate message in the message log file, with 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 message.
none
none
WSI1701
R1014
For a candidate message, containing a soap:envelope, in the message log file
The message soap:body does not contain the soapenc:arrayType attribute.
The message soap:body contains the soapenc:arrayType attribute.
SOAP message.
none
none
WSI1701
R2113
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 message in the message log file
The SOAP message does not include XML processing instructions.
a SOAP message contains XML processing instructions.
SOAP message.
none
none
WSI1701
R1009
For a candidate message in the message log file, if "mustUnderstand" attribute is present
The "mustUnderstand" attribute in the message has one of two values: 1, 0.
The "mustUnderstand" attribute in a message has a value different from: 1, 0.
SOAP message, plus request message if it is a response.
none
none
WSI1701
R1013
For a candidate message in the message log file, if it contains 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 children elements are not standard, i.e. is neither soap:faultcode, soap:faultstring, soap:faultactor nor soap:detail.
SOAP message
none
none
WSI1701
R1000
For a candidate message in the message log file, if it contains 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 message
none
none
WSI1701
R1031
For a candidate message in the message log file, if it contains 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 children elements are qualified.
SOAP message
none
none
WSI1701
R1001
For a candidate message in the message log file, if it contains elements with namespace "http://schemas.xmlsoap.org/soap/envelope/"
The elements of the message that are namespaced "http://schemas.xmlsoap.org/soap/envelope/" do not have a soap:encodingStyle attribute.
One or more message elements namespaced "http://schemas.xmlsoap.org/soap/envelope/" have a soap:encodingStyle attribute.
SOAP message
none
none
WSI1701
R1005
For a candidate message in the message log file, if it contains a soap:Body element, and is referred by an rpc-literal binding
The grandchildren elements of soap:Body of the message referred by an rpc-literal binding do not have a soap:encodingStyle attribute.
At least one grandchild of the soap:Body element of a message referred by an rpc-literal binding has a soap:encodingStyle attribute.
SOAP message
none
operation
WSI1701
WSI1202
R1007
For a candidate message in the message log file, if it contains 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.
none
none
WSI1701
R1011
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}.
none
binding
WSI1006
WSI1701
R2744
R2745
For a candidate message in the message log file, that is not a fault message, that has a soap:body with at least a child element, and is referred by a binding style RPC-literal
Message 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.
Message 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.
none
binding
WSI1701
R2735
R2737
For a candidate message without soap:Fault in the message log file, that is referred by a binding style RPC-literal, and that has a soap:body with at least a child element
Part accessor elements in the message do not have an xsi:nil attribute with a value of "1" or "true".
Message referenced by an RPC-literal binding has part accessor elements with an xsi:nil attribute with a value of "1" or "true".
none
binding
WSI1701
R2211
For a candidate message in the message log file, that has a soap:body with at least a child element, does not have a soap:Fault, and that is not a response message to a one-way WSDL operation
The Message 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.
Message does not include all soapbind:headers specified in the wsdl:input (if request) or wsdl:output (if response) of its bound operation.
none
binding
WSI1601
WSI1202
R2738
R2739
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.
none
none
R1141
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.
none
none
WSI1002
R1140
For a candidate response message in the message log file, that belongs to 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/"
requestMessage
operation
WSI1701
R1015
For a candidate response message in the message log file, that is
referenced by a rpc-literal binding to a WSDL request-response operation, that has a soap:body with at least a child element
The Message 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 response message does not have a value equal to the name attribute on the wsdl:operation element suffixed with string "Response".
requestMessage
binding
WSI1601
WSI1202
R2729
Assume a correlation with WSDL binding entry is needed.
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 each response message in the message log file, which is a response to <bad> inbound messages to a candidate Web service/port, if it contains a soap:Fault element with a faultcode child element
The soap:faultcode value in the soap:Fault element of the response message 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 response message is not one of: VersionMismatch, MustUnderstand, Client, Server, or is not qualified by a namespace.
Response SOAP message.
none
none
WSI1701
R1004
If namespace qualified, the namespace is other than http://schemas.xmlsoap.org/soap/envelope/, per (assumed) conformance to SOAP.
For a candidate response message in the message log file, which is a response to <bad> inbound messages to a candidate Web service/port, if it contains 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 message.
none
none
WSI1701
R1126
For a candidate message in the log message file, that is a soap:Fault message, 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.
none
none
WSI1701
R1003
this is a narrowing of the schema, which allows any namespace.
For a candidate message in the log file, which has a non-empty entity-body
The logged message is a UTF-8 transcript of a message originally encoded as UTF-8 or UTF-16. The HTTP Content-Type header 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 (4) there is no BOM attribute and no XML declaration, and the charset value is UTF-8.
Either (1a) the message does not contain a Content-Type header, or (1b) the message contains a Content-Type header but no charset value, or (1c) 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.
none
none
R1012
R1018
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 response message in the log file, that contains a soap:Envelope without a soap:Fault
The message uses a "200 OK" HTTP status code.
A message does not contain a soap:Fault and does not use a "200 OK" HTTP status code.
Complete message.
none
none
WSI1701
R1111
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
none
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
none
R1114
For a candidate response message in the message log file, to a request message that does not contain a content-type of "text/xml"
The response contains a "415 Unsupported Media Type" HTTP status code
The response message to a request that does not contain a content-type of "text/xml", did not contain a 415 HTTP status code
Both the request and response message.
requestMessage
none
R1115
For a candidate response message in the message log file, that contains a soapbind:fault element
The contained soapbind:fault is defined in the wsdl:binding.
The response message contained soapbind:fault element(s), but they
were not defined in the WSDL description.
Undefined soapbind:fault element(s).
none
binding
R2740
For a candidate message in the message log file, that contains WS-I conformance claims
Each conformance claim element is a child of the soap:Header element.
A message contained a conformance claim which is not a child of the soap:Header element.
Defective SOAP message.
none
none
R0005
R0006
For a candidate message in the message log file, that contains WS-I conformance claims
Each contained conformance claims adheres to the WS-I conformance claim schema defined in the Basic Profile.
A message contained a conformance claim that does not adhere to the conformance claim schema.
Defective SOAP message.
none
none
WSI1109
R0004
R0006
For a candidate message in the message log file, that contains WS-I conformance claims
Each contained conformance claim does not have a soap:mustUnderstand attribute.
A message contained a conformance claim with a soap:mustUnderstand attribute.
Defective SOAP message.
none
none
WSI1110
R0007
Driver testable.
Driver testable.
Driver testable..
Driver testable.
none
none
R1002
R1016
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.
Not testable.
none
none
R1122
R1010
R1017
R1025
R1027
R1028
R1029
R1030
R1107
R1110
R1113
R1119
R1120
R1121
R1123
R1124
R1125
R1130
R1131
R5000
R5001
R5010
All of these profile requirements are NOT testable. Some of these test assertions represent capabilities which
can not be validated.