[Bug 5483] WSDL schema defines fault 'element' incorrectly

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[Bug 5483] WSDL schema defines fault 'element' incorrectly

bugzilla (Bugzilla)-14


           Summary: WSDL schema defines fault 'element' incorrectly
           Product: WSDL
           Version: 2.0
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Core
        AssignedTo: [hidden email]
        ReportedBy: [hidden email]
         QAContact: [hidden email]

The Part 1 Core spec defines the interface fault 'element' attribute as a
"The type of the element attribute information item is a union of xs:QName and
xs:token where the allowed token values are #any, #none, or #other.".

The WSDL 2.0 schema at http://www.w3.org/2007/06/wsdl/wsdl20.xsd defines the
'element' attribute as a xs:QName.
<xs:attribute name="element" type="xs:QName" use="optional"/>

The {message content model} property of the Interface Fault component is
constrained by assertion InterfaceFault-1013 which says:
 "An xs:token with one of the values #any, #none, #other, or #element.".

It is not possible to test for this assertion error because a schema validation
error will be reported if a WSDL 2.0 document has an interface fault with an
'element' attribute that contains one of these token values.

The schema validation error reported by Xerces is:
[Error] little.wsdl:20:58: cvc-datatype-valid.1.2.1: '#any' is not a valid
value for 'QName'.

The WSDL testcase is:

<?xml version="1.0" encoding="utf-8" ?>
<description xmlns="http://www.w3.org/ns/wsdl"

                <xs:schema id="items"
                        <xs:element name="confirmationNumber" type="xs:string"
                        <xs:element name="checkInDate" type="xs:date" />
                        <xs:element name="checkOutDate" type="xs:date" />
                        <xs:element name="roomType" type="xs:string" />
                        <xs:element name="smoking" type="xs:boolean" />

    <interface name="reservationInterface">
        <fault name="invalidDataFault1" element="#any" />
                <operation name="queryBooking"
                        <input messageLabel="In"
element="items:confirmationNumber" />
                        <output messageLabel="Out" element="items:checkInDate"
                        <outfault messageLabel="Out"
ref="tns:invalidDataFault1" />