Editors:
David Lauzon, IBM Corporation (lauzond@ca.ibm.com)
Shrikant Wagh, Optimyz Software, Inc. (shrikant@optimyz.com)
Other Contributors
Simeon Greene (Oracle Corporation), Narendra Patil (Optimyz
Software, Inc.), Keith Stobie (Microsoft Corporation)
Administrative contact:
Copyright (c)
2002-2005 by The Web Services-Interoperability
Organization (WS-I) and Certain of its Members. All Rights Reserved.
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.
A "candidate" element
is one that is to be verified for conformance. The binding of the tModel if
<wsi-analyzerConfig:uddiReference> is given or the
<wsi-analyzerConfig:wsdlElement> in the configuration file of the
Analyzer define a candidate element for verification. A verification on an
element also implies that the same verification is made for all the elements
that it uses. That is, the elements it uses also become candidate elements.
Verification it based on the following transitivity rules, applied recursively.
For WSDL element references:
For UDDI references:
The analyzer
specification contains a detailed explanation of all of the fields listed
in this document.
The material contained herein is
not a license, either expressly or impliedly, to any intellectual property
owned or controlled by any of the authors or developers of this material or
WS-I. The material contained herein is provided on an "AS IS" basis
and to the maximum extent permitted by applicable law, this material is
provided AS IS AND WITH ALL FAULTS, and the authors and developers of this
material and WS-I hereby disclaim all other warranties and conditions, either
express, implied or statutory, including, but not limited to, any (if any)
implied warranties, duties or conditions of merchantability, of fitness for a
particular purpose, of accuracy or completeness of responses, of results, of
workmanlike effort, of lack of viruses, and of lack of negligence. ALSO, THERE
IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION,
CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT WITH REGARD TO THIS MATERIAL.
IN NO EVENT WILL ANY AUTHOR OR
DEVELOPER OF THIS MATERIAL OR WS-I BE LIABLE TO ANY OTHER PARTY FOR THE COST OF
PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE, LOSS OF
DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES
WHETHER UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY WAY OUT OF
THIS OR ANY OTHER AGREEMENT RELATING TO THIS MATERIAL, WHETHER OR NOT SUCH
PARTY HAD ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
The Web
Services-Interoperability Organization (WS-I) would like to receive input,
suggestions and other feedback ("Feedback") on this work from a wide
variety of industry participants to improve its quality over time.
By sending email, or otherwise
communicating with WS-I, you (on behalf of yourself if you are an individual,
and your company if you are providing Feedback on behalf of the company) will
be deemed to have granted to WS-I, the members of WS-I, and other parties that
have access to your Feedback, a non-exclusive, non-transferable, worldwide,
perpetual, irrevocable, royalty-free license to use, disclose, copy, license,
modify, sublicense or otherwise distribute and exploit in any manner whatsoever
the Feedback you provide regarding the work. You acknowledge that you have no
expectation of confidentiality with respect to any Feedback you provide. You
represent and warrant that you have rights to provide this Feedback, and if you
are providing Feedback on behalf of a company, you represent and warrant that
you have the rights to provide Feedback on behalf of your company. You also
acknowledge that WS-I is not required to review, discuss, use, consider or in
any way incorporate your Feedback into future versions of its work. If WS-I
does incorporate some or all of your Feedback in a future version of the work,
it may, but is not obligated to include your name (or, if you are identified as
acting on behalf of your company, the name of your company) on a list of
contributors to the work. If the foregoing is not acceptable to you and any
company on whose behalf you are acting, please do not provide any Feedback.
WS-I members should direct
feedback on this document to wsi_testing@lists.ws-i.org;
non-members should direct feedback to wsi-tools@ws-i.org.
Test assertion headings that
have this background color are disabled and will not
be processed by the analyzer.
Profile Definitions
Test Assertion Artifacts
discovery
description
message
envelope
Test Assertion Counts
Profile Requirements Index
Appendix A: Referenced Specifications
ID |
Name |
Version |
Revision |
Location |
Attachments Profile |
1.0 |
Final Material |
http://ws-i.org/Profiles/AttachmentsProfile-1.0-2004-08-24.html |
|
Basic Profile |
1.1 |
Final Material |
||
Simple Soap Binding Profile |
1.0 |
Final Material |
http://ws-i.org/Profiles/SimpleSoapBindingProfile-1.0-2004-08-24.html |
The Basic Profile requires
support for UDDI V2.0.
Specification Reference List:
Test Assertions [as they appear in the
document]:
ID |
Entry Type |
Test Type |
Enabled |
tModel |
required |
true |
|
bindingTemplate |
required |
true |
|
tModel |
required |
true |
|
tModel |
driverTestable |
false |
Test Assertions
[sorted by ID]:
ID |
Entry Type |
Test Type |
Enabled |
tModel |
required |
true |
|
bindingTemplate |
required |
true |
|
tModel |
required |
true |
|
tModel |
driverTestable |
false |
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
tModel |
required |
true |
|
definitions |
[Not specified] |
|
|
Context:
For a candidate uddi:tModel
Assertion
Description:
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.
Failure
Message:
The uddi:tModel does not reference a WSDL based Web
service definition or the uddi:tModel does not reference a wsdl:binding.
Failure
Detail Description:
{tModel key}{uddi:overviewDoc}
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
bindingTemplate |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate uddi:bindingTemplate
Assertion
Description:
The uddi:bindingTemplate element contains a
uddi:accessPoint element, with a non-empty value.
Failure
Message:
The uddi:bindingTemplate does not contain an
uddi:accessPoint element, or it is empty.
Failure
Detail Description:
bindingTemplate key
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
tModel |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate uddi:tModel
Assertion
Description:
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".
Failure
Message:
The uddi:tModel is not categorized using the
uddi:types taxonomy with a categorization of "wsdlSpec".
Failure
Detail Description:
{tModel key}{categoryBag}
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
tModel |
driverTestable |
false |
|
|
[Not specified] |
|
|
|
Context:
Driver testable.
Assertion
Description:
Driver testable.
Failure
Message:
Failure
Detail Description:
Comments:
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.
Specification Reference List:
Test Assertions [as they appear in the
document]:
ID |
Entry Type |
Test Type |
Enabled |
definitions |
required |
true |
|
types |
required |
true |
|
definitions |
required |
true |
|
types |
required |
true |
|
types |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
definitions |
recommended |
true |
|
definitions |
required |
true |
|
operation |
required |
true |
|
portType |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
operation |
required |
true |
|
binding |
required |
true |
|
definitions |
required |
true |
|
import |
required |
true |
|
import |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
types |
required |
true |
|
types |
required |
true |
|
types |
recommended |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
message |
required |
true |
|
message |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
recommended |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
types |
required |
true |
|
definitions |
recommended |
true |
|
definitions |
informational |
true |
|
definitions |
informational |
true |
|
types |
informational |
true |
|
definitions |
driverTestable |
false |
|
definitions |
notTestable |
false |
|
binding |
recommended |
false |
|
binding |
required |
false |
|
definitions |
notTestable |
false |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
recommended |
true |
|
binding |
recommended |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
definitions |
driverTestable |
false |
|
definitions |
notTestable |
false |
Test Assertions
[sorted by ID]:
ID |
Entry Type |
Test Type |
Enabled |
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
recommended |
true |
|
binding |
recommended |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
definitions |
notTestable |
false |
|
definitions |
driverTestable |
false |
|
portType |
required |
true |
|
types |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
operation |
required |
true |
|
binding |
required |
true |
|
definitions |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
definitions |
recommended |
true |
|
import |
required |
true |
|
definitions |
required |
true |
|
types |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
types |
required |
true |
|
types |
required |
true |
|
types |
recommended |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
recommended |
true |
|
message |
required |
true |
|
message |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
types |
required |
true |
|
definitions |
recommended |
true |
|
definitions |
required |
true |
|
types |
required |
true |
|
operation |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
binding |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
definitions |
required |
true |
|
import |
required |
true |
|
definitions |
driverTestable |
false |
|
definitions |
notTestable |
false |
|
definitions |
informational |
true |
|
definitions |
informational |
true |
|
types |
informational |
true |
|
binding |
recommended |
false |
|
binding |
required |
false |
|
definitions |
notTestable |
false |
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate Web service definition within a WSDL
document with a XML declaration statement.
Assertion
Description:
The XML declaration statement uses UTF-8 or UTF-16 for
the encoding.
Failure
Message:
XML declaration statement within WSDL document does
not use expected encoding (UTF-8 or UTF-16).
Failure
Detail Description:
XML declaration statement.
Comments:
checks WSDL encoding.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
types |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:types element within a WSDL
document which imports an XML schema directly or indirectly.
Assertion
Description:
The imported schema uses UTF-8 or UTF-16 for the
encoding.
Failure
Message:
The XML declaration statement within the imported XML
Schema does not use expected encoding (UTF-8 or UTF-16).
Failure
Detail Description:
XML declaration statement.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
[Not specified] |
|
Context:
For a candidate wsdl:definitions element within a WSDL
document.
Assertion Description:
The wsdl:definitions is a well-formed XML 1.0
document.
Failure Message:
The wsdl:definitions is not a well-formed XML 1.0
document.
Failure Detail Description:
Error message from the XML parser
Comments:
1st step in a 3-phase verification process:
XML+namespace+schemavalid.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
types |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:types element, with XML schema
import elements
Assertion Description:
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).
Failure Message:
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.
Failure Detail Description:
Defective XML schema import element.
Comments:
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.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
types |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:types element within a WSDL
document, which imports an XML schema directly or indirectly
Assertion Description:
The imported XML schema is a well-formed XML 1.0
document and if it contains an XML declaration, it is version 1.0.
Failure Message:
The imported XML schema is not a well-formed XML 1.0
document.
Failure Detail Description:
{Error message from the XML parser}{imported XML
schema}
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:definitions element within a WSDL
document.
Assertion Description:
The wsdl:definitions namespace has value:
http://schemas.xmlsoap.org/wsdl/.
Failure Message:
The wsdl:definitions namespace is not:
http://schemas.xmlsoap.org/wsdl/.
Failure Detail Description:
Comments:
2nd step in a 3-phase verification process:
XML+namespace+schemavalid.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
[Not specified] |
|
Context:
For a candidate description within a WSDL document
Assertion
Description:
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.
Failure
Message:
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.
Failure
Detail Description:
Error message from the XML parser.
Comments:
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.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
recommended |
true |
|
|
|
|
Context:
For a candidate description within a WSDL document
Assertion
Description:
The candidate description does not contain the
namespace declaration
xmlns:xml="http://www.w3.org/XML/1998/namespace".
Failure
Message:
The candidate description contains the namespace
declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".
Failure
Detail Description:
[Not specified]
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
|
Context:
For a candidate Web service definition with wsdl:types
elements
Assertion Description:
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).
Failure Message:
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.
Failure Detail Description:
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
operation |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:operation in a wsdl:portType
definition
Assertion Description:
The wsdl:operation element is either a WSDL
request/response or a one-way operation (no Notification or Sollicit-Response).
Failure Message:
wsdl:operation was not a request/response or one-way
operation.
Failure Detail Description:
Operation.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
portType |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:portType definition
Assertion Description:
name attributes of Operations are unique in the
wsdl:portType definition
Failure Message:
name attributes are not unique within the portType
definition.
Failure Detail Description:
list of duplicate name(s) and of elements that use
them.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:binding element, if the style
attribute of the contained soapbind:binding is "rpc" and the use
attribute is "literal".
Assertion Description:
The namespace attribute is specified on all
soapbind:body elements and the value of the namespace attribute is an absolute
URI.
Failure Message:
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.
Failure Detail Description:
soapbind:body elements that failed the assertion
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:binding element
Assertion Description:
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.
Failure Message:
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".
Failure Detail Description:
wsdl:input element or wsdl:output element of the
defective operation.
Comments:
Generally BP2703 will fail as a pre-req first because
this will not pass a specialized schema check.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:binding element
Assertion Description:
The wsdl:binding element has a soapbind:binding child
element.
Failure Message:
The wsdl:binding element does not use a soapbind:binding
element as defined in section "3 SOAP Binding." of the WSDL 1.1
specification.
Failure Detail Description:
wsdl:binding.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:binding element
Assertion Description:
the name attribute is specified on the soapbind:fault
element.
Failure Message:
Defective soapbind:fault element: the name attribute
is not specified on the soapbind:fault element.
Failure Detail Description:
Defective soapbind:fault element
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:binding element
Assertion Description:
the name attribute that is specified on the
soapbind:fault element matches the value specified on the parent element
wsdl:fault.
Failure Message:
Defective soapbind:fault element: the "name"
attribute value does not match the value of the "name" attribute on
the parent element wsdl:fault.
Failure Detail Description:
Defective soapbind:fault element
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:binding element
Assertion Description:
The contained soap:binding element has a
"transport" attribute, which has value:
http://schemas.xmlsoap.org/soap/http.
Failure Message:
Transport attribute of the soap:binding does not
contain http://schemas.xmlsoap.org/soap/http.
Failure Detail Description:
soap:binding element.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:binding element, if the style
attribute of the binding is "document" and use is "literal"
Assertion Description:
The binding (in soapbind:body elements) only refers to
part elements that have been defined using the "element" attribute.
Failure Message:
A document-literal binding contains soapbind:body
element(s) that refer to message part element(s) that do not have the element
attribute.
Failure Detail Description:
soapbind:body element(s) that have non
"element" parts attributes.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
Context:
For a candidate wsdl:binding element, if the use
attribute is specified on the soapbind:body, soapbind:fault, soapbind:header,
or soapbind:headerfault elements.
Assertion Description:
The use attribute has a value of "literal".
Failure Message:
The use attribute of a soapbind:body, soapbind:fault,
soapbind:header and soapbind:headerfault does not have value of
"literal".
Failure Detail Description:
Defective soapbind:body, soapbind:fault,
soapbind:header, or soapbind:headerfault elements.
Comments:
R2707 is not the verified Req, but an assumed Req for
this verification.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:binding element, if the
"style" attribute of the contained soap:binding is
"document" and use attribute is "literal"
Assertion Description:
The "namespace" attribute is not specified
in any contained soapbind:body, soapbind:header, soapbind::headerfault,
soapbind:fault elements.
Failure Message:
A document-literal binding has the
"namespace" attribute specified in some soapbind:body,
soapbind:header, soapbind::headerfault, soapbind:fault element.
Failure Detail Description:
Contained element with namespace attribute.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:binding element, if the
"style" attribute of the contained soap:binding is "rpc"
and use attribute is "literal"
Assertion Description:
The binding (in soapbind:body elements) only refers to
part elements that have been defined using the "type" attribute.
Failure Message:
A rpc-literal binding contains soapbind:body
element(s) that refer to message part element(s) that do not have the type
attribute.
Failure Detail Description:
{binding}{message with failed part}
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
operation |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:operation with a parameterOrder
attribute, if referred to by a candidate rpc-literal wsdl:binding element
Assertion Description:
The parameterOrder attribute omits at most 1 part from
an output wsdl:message.
Failure Message:
An operation associated with an rpc-literal binding
has a parameterOrder attribute that omits more than 1 part.
Failure Detail Description:
{defective portType}{output wsdl:message}
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
Context:
For a candidate wsdl:binding
Assertion Description:
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.
Failure Message:
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.
Failure Detail Description:
defective soap:binding element.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:definition, if it contains
wsdl:import statements
Assertion Description:
Each wsdl:import statement is only used to import
another WSDL description.
Failure Message:
A wsdl:import element does not contain a reference to
another WSDL description.
Failure Detail Description:
wsdl:import element(s) that does not reference a WSDL
description.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
import |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:import element
Assertion Description:
The "location" attribute is specified for
the wsdl:import element, and has a non-empty value.
Failure Message:
A wsdl:import element does not have a
"location" attribute, or has an empty value for the location
attribute.
Failure Detail Description:
Defective wsdl:import element.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
import |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:import element
Assertion Description:
The "namespace" attribute's value is not a
relative URI.
Failure Message:
The wsdl:import element's "namespace"
attribute value is a relative URI.
Failure Detail Description:
Defective wsdl:import element.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
[Not specified] |
|
|
Context:
For each a candidate wsdl:definitions
Assertion Description:
For the referenced definitions as well as all imported
descriptions, The XML schema import statement is only used within an xsd:schema
element.
Failure Message:
A XML schema import element was found outside of an
xsd:schema element.
Failure Detail Description:
Defective XML schema import element.
Comments:
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.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:import
Assertion Description:
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.
Failure Message:
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.
Failure Detail Description:
wsdl:import element.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
[Not specified] |
|
Context:
For a candidate wsdl:definitions with wsdl:import
elements
Assertion Description:
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.
Failure Message:
A wsdl:import element in the WSDL namespace under the
wsdl:definitions element, is preceded by child elements other than
wsdl:documentation elements.
Failure Detail Description:
Display the WSDL import element(s) that failed the
assertion.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:definitions
Assertion Description:
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.
Failure Message:
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.
Failure Detail Description:
Defective QName(s).
Comments:
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).
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:definitions
Assertion Description:
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.
Failure Message:
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.
Failure Detail Description:
Defective QName(s).
Comments:
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.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
types |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:types element containing an
xsd:schema element
Assertion Description:
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).
Failure Message:
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.
Failure Detail Description:
Defective xsd:schema element(s).
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
types |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:types
Assertion Description:
The type soapenc:Array does not appear in these
declarations, and the wsdl:arrayType attribute is not used in the type
declaration.
Failure Message:
An Array declaration uses - restricts or extends - the
soapenc:Array type, or the wsdl:arrayType attribute is used in the type
declaration.
Failure Detail Description:
Defective declaration(s).
Comments:
R2110 and R2111 have been interpreted as applying to
any declaration, as we cannot assume the intent of declaring arrays, which is
untestable.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
types |
recommended |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:types that is used by an
rpc-literal binding
Assertion Description:
The declaration does not use the naming convention
ArrayOfXXX.
Failure Message:
A declaration is using the convention ArrayOfXXX.
Failure Detail Description:
Defective declaration(s).
Comments:
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.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:binding, which contains a
document-literal soap:binding
Assertion Description:
If the "parts" attribute is present, then
the soapbind:body element(s) have at most one part listed in the parts
attribute.
Failure Message:
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.
Failure Detail Description:
Defective soapbind:body element(s).
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:binding, with a style
"rpc" attribute and containing at least a soapbind:body element
Assertion Description:
No wsdl:part referred by such a soapbind:body element
is defined using the "element" attribute.
Failure Message:
The referred wsdl:part element uses the
"element" attribute in an rpc-literal soapbind:body.
Failure Detail Description:
{soapbind:body}{wsdl:part element(s)}
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:binding element
Assertion Description:
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.
Failure Message:
The soapbind:header, soapbind:headerfault or
soapbind:fault elements refer to wsd:part element(s) that are not defined using
only the "element" attribute.
Failure Detail Description:
Defective wsdl:binding and wsdl:part elements.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
message |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:message
Assertion Description:
An "element" attribute on any wsdl:part
element refers to a global element declaration.
Failure Message:
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.
Failure Detail Description:
Defective wsdl:message element.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
message |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:message element
Assertion Description:
The wsdl:message element does not contain part
elements that use both "type" and "element" attributes.
Failure Message:
A wsdl:message element has at least one wsdl:part
element that contains both type and element attributes.
Failure Detail Description:
Defective wsdl:message element.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:binding element, referred to by
an rpc-literal soap:binding
Assertion Description:
The rpc-literal binding does not have a namespace
attribute specified on a contained soapbind:header, soapbind:headerfault, and
soapbind:fault element.
Failure Message:
An rpc-literal binding has the namespace attribute
specified on contained soapbind:header, soapbind:headerfault and soapbind:fault
elements.
Failure Detail Description:
{Defective wsdl:binding}{defective soapbind:header,
soapbind:headerfault, or soapbind:fault element}
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:binding element
Assertion Description:
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.
Failure Message:
A wsdl:binding does not have the same list of
wsdl:operations as the wsdl:portType to which it refers.
Failure Detail Description:
{unmatching wsdl:binding element}{unmatching portType
element}
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
recommended |
true |
|
|
|
|
Context:
For a candidate wsdl:binding element
Assertion Description:
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.
Failure Message:
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.
Failure Detail Description:
{Defective wsdl:binding element}{message with part(s)
unbound}
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
|
|
Context:
For a candidate wsdl:binding, which is of type
document-literal
Assertion Description:
If it does not specify the parts attribute on a
soapbind:body element, the corresponding abstract wsdl:message defines zero or
one wsdl:part.
Failure Message:
A document-literal binding which does not specify the
parts attribute, has more than one wsdl:part in the associated wsdl:message
element.
Failure Detail Description:
Defective wsdl:binding element.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
binding |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:binding
Assertion Description:
Each operation referenced by the binding results in a
unique wire signature.
Failure Message:
A binding has operations that are not unique.
Failure Detail Description:
Defective wsdl:operation element(s).
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
types |
required |
true |
|
|
[Not specified] |
|
|
Context:
For a candidate wsdl:types element
Assertion Description:
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".
Failure Message:
A wsdl:types element contained a data type definition
that is not an XML schema definition.
Failure Detail Description:
Defective data type definition.
Comments:
Validating the data type definitions includes any
imported XML schema definitions.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
recommended |
true |
|
|
[Not specified] |
|
|
Context:
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.
Assertion Description:
Contained WSDL extension elements do not use the
wsdl:required attribute value of "true".
Failure Message:
An extension element within a WSDL element that claims
conformance to the Basic Profile has a wsdl:required attribute with a value of
"true".
Failure Detail Description:
Display the extension element that failed the
assertion.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
informational |
true |
|
|
[Not specified] |
|
|
Context:
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/".
Assertion Description:
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.
Detail Description:
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.
Comments:
Extension elements other than those belonging to one
of the following namespaces (...) are considered extensibility points.
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |
|||
Message Input |
WSDL Input |
Target |
Partial-Target |
Collateral |
||||
definitions |
informational |
true |
|
|
[Not specified] |
|
|
Context:
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.
Assertion Description:
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.
Detail Description:
The element(s) in question.
Comments:
[Not specified]
Entry Type |
Test Type |
Enabled |
Additional Entry Types |
Prerequisites |
Profile Requirements |