← Prev in month ← Prev in thread
Next in thread → Next in month →

Re: [sca-assembly] Should the 'interface' attribute of interface.wsdl pointto the portType URI?

From
Mike Edwards <>
Date
2008-08-13T10:26:04+00:00
ID
Thread
Re: [sca-assembly] Should the 'interface' attribute of interface.wsdl pointto the portType URI?
Ashok,

I assume for the present that this is
a discussion, rather than a formal new issue?

I'm a bit puzzled as to the change that
you are proposing here.  I don't see examples of what things

would be like if we changed the Assembly
interface attribute to point to the WSDL file itself.

I think that the reason the interface
attribute currently points to the portType is that any given WSDL

could contain multiple portType elements,
but that for an interface definition, it is necessary to choose

one and only one portType, so the attribute
must be explicit.

Without an expression such as:

http://example.org/TicketAgent.wsdl11#wsdl11.portType(TicketAgent)

...how would it be possible to identify
the right portType in the right WSDL?

Yours,  Mike.

Strategist - Emerging Technologies, SCA & SDO.

Co Chair OASIS SCA Assembly TC.

IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.

Phone & FAX: +44-1962-818014    Mobile: +44-7802-467431  

Email:  

From:
ashok malhotra <>

To:
OASIS Assembly <>

Date:
12/08/2008 15:10

Subject:
[sca-assembly] Should the 'interface'
attribute of interface.wsdl point to the portType URI?

Currently the interface attribute of the interface.wsdl
element points 

to the URI of the portType in the WSDL definitions file.

There must be a good reason for this.  I'm looking at writing functions

to attach policySets to interface elements and it would

be better if the attribute pointed to the file itself.

WSDL 1.1 Element Identifiers: http://www.w3.org/TR/wsdl11elementidentifiers

specifies how to identify individual interface elements in a WSDL 1.1 

file using fragment identifiers following the URI of the definitions

file.  The following example is taken from that document.

Assume that the URI of the definitions file is: 

:http://example.org/TicketAgent.wsdl11

The URI for the portType is: 

http://example.org/TicketAgent.wsdl11#wsdl11.portType(TicketAgent)

Now, if you want to refer to a particular message you need tosay:

http://example.org/TicketAgent.wsdl11#wsdl11.portTypeOperation.output(TicketAgent/listFlights)

Construction the identifier for the message seems more complicated than

if you started with the URI for

the file itself.

=======================================================================

Example:

Consider WSDL 1.1 document located at 

http://example.org/TicketAgent.wsdl.
Each WSDL 1.1 Element Identifier is 

shown in comments above the WSDL 1.1 element

 <!-- http://example.org/TicketAgent.wsdl11#wsd11.definitions()
-->

    <wsdl:types>

        <xs:schema xmlns:xsTicketAgent="http://example.org/TicketAgent.xsd"

            targetNamespace="http://example.org/TicketAgent.xsd">

            <xs:element name="listFlightsRequest"
type="xsTicketAgent:tListFlights"/>

            <xs:complexType name="tListFlights">

                <xs:sequence>

                    <xs:element
name="travelDate" type="xs:date"/>

                    <xs:element
name="startCity" type="xs:string"/>

                    <xs:element
name="endCity" type="xs:string"/>

                </xs:sequence>

            </xs:complexType>

            <xs:element name="listFlightsResponse"
type="xsTicketAgent:tFlightsResponse"/>

            <xs:complexType name="tFlightsResponse">

                <xs:sequence>

                    <xs:element
name="flightNumber" type="xs:integer" minOccurs="0"

                    
   maxOccurs="unbounded"/>

                </xs:sequence>

            </xs:complexType>

        </xs:schema>

    </wsdl:types>

    <wsdl:message name="listFlightsRequest">

        <!-- Starting from here, http://example.org/TicketAgent.wsdl11
will be shortened to http://...
-->

        <!-- http://...#wsdl11.message(listFlightsRequest)
-->

        <wsdl:part name="body" element="xsTicketAgent:listFlightsRequest"/>

        <!-- http://...#wsdl11.messagePart(listFlightsRequest/body)
-->

    </wsdl:message>

    <wsdl:message name="listFlightsResponse">

        <!-- http://...#wsdl11.message(listFlightsResponse)
-->

        <wsdl:part name="body" element="xsTicketAgent:listFlightsResponse"/>

        <!-- http://...#wsdl11.messagePart(listFlightsResponse/body)
-->

    </wsdl:message>

    <wsdl:portType name="TicketAgent">

        <!-- http://...#wsdl11.portType(TicketAgent)
-->

        <wsdl:operation name="listFlights">

            <!-- http://...#wsdl11.portTypeOperation(TicketAgent/listFlights)
-->

            <wsdl:input message="tns:listFlightsRequest"/>

            <!-- http://...#wsdl11.portTypeOperation.input(TicketAgent/listFlights)
-->

            <wsdl:output message="tns:listFlightsResponse"/>

            <!-- http://...#wsdl11.portTypeOperation.output(TicketAgent/listFlights)
-->

        </wsdl:operation>

    </wsdl:portType>

    <wsdl:binding name="TicketAgentSoap" type="tns:TicketAgent">

        <!-- http://...#wsdl11.binding(TicketAgentSoap)
-->

        <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>

        <!-- http://...#wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,

             w11soap.binding( wsdl11.binding(TicketAgentSoap))
-->

        <wsdl:operation name="listFlights">

            <!-- http://...#wsdl11.bindingOperation(TicketAgentSoap/listFlights)
-->

            <wsdl:input>

                <!-- http://...#wsdl11.bindingOperation.input(TicketAgentSoap/listFlights)
-->

                <soap:body parts="body"
use="literal"/>

                <!-- http://...#wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,

                    
          w11soap.body(wsdl11.bindingOperation.input
                    
                     
(TicketAgentSoap/listFlights)) -->

            </wsdl:input>

            <wsdl:output>

                <!-- http://...#wsdl11.bindingOperation.output(TicketAgentSoap/listFlights)
-->

                <soap:body parts="body"
use="literal"/>

                <!-- http://...#wsdl11.extension(http://schemas.xmlsoap.org/wsdl/soap/,

                    
          w11soap.body(wsdl11.bindingOperation.output
                    
                     
(TicketAgentSoap/listFlights)) -->

            </wsdl:output>

        </wsdl:operation>

    </wsdl:binding>

-- 

All the best, Ashok

---------------------------------------------------------------------

To unsubscribe from this mail list, you must leave the OASIS TC that

generates this mail.  Follow this link to all your TCs in OASIS at:

https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php

Unless stated otherwise above:

IBM United Kingdom Limited - Registered in England and Wales with number
741598. 

Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
← Prev in month ← Prev in thread
Next in thread → Next in month →