OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

regrep message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [regrep] WSDL Issues


Okay. I've changed the WSDLs to represent the Content element as an
attachment.
I found this document [1] to be helpful in figuring out how to describe the
Mime elements.

In registry-abstract:
I changed the <types> section -- removed the complex types and elements that
I had defined before. Now there are only two elements defined -- Content and
dispositionReport.

I changed the first three <messages> -- now there are two parts again. The
first (name="body") references the appropriate schema element, and the
second (name="attachment") references the Content element.

In registry-soap:
I added the <mime> elements to the appropriate <input> and <output>
elements.

I also noticed another possible error:
In registry-abstract, on the UpdateObjects operation, shouldn't the output
message be msgRegistryResponse?

[1] http://ws.apache.org/wsif/developers/mime_attachments.pdf

Best regards,
Anne
----- Original Message -----
From: "Farrukh Najmi" <farrukh.najmi@sun.com>
To: "Anne Thomas Manes" <anne@manes.net>
Cc: <regrep@lists.oasis-open.org>; "matt" <matt@yellowdragonsoft.com>
Sent: Tuesday, June 24, 2003 10:02 PM
Subject: Re: [regrep] WSDL Issues


> Anne Thomas Manes wrote:
>
> >Some questions and comments:
> >
> >
> >If partContent is required to be included in the input message, why is it
> >not included in the message structure?  Also, keep in mind that WS-I BP
> >permits only one <part> on document/literal messages, so to be WS-I
> >compliant, you would have to include it in the message structure.
> >
> >One reason why you might want to define multiple parts in a message
> >definition is to define header or headerfault messages (which should
always
> >be defined as document/literal) -- but in that case you should always
> >reference the specific part to be used in the <binding> elements. e.g.:
> >
> >   <message name='foo'>
> >      <part name='body' element='foobody' />
> >      <part name='header' element='fooheader' />
> >      <part name='headerfault' element='fooheaderfault' />
> >   </message>
> >
> >   <soap:body parts='body' use='literal' />
> >   <soap:header message='tns:foo' part='header' use='literal' />
> >   <soap:headerfault message='tns:foo' part='headerfault' use='literal'
/>
> >
> >Bottom line: the three messages containing partContent have to be fixed.
> >
> >
> >
> Anne, the messages with partContent are those that are supposed to
> support mime attachments. Clearly we seem to have lost
>
> <mime:multipartRelated>
>
> in the input and output element defs for these operations. I suspect
> this was silently swallowed by a tool I used. I will doublecheck this.
>
> I know that WS-I BP does not touch attachments. Are there any other
> considerations besides just following?
>
> http://www.w3.org/TR/2003/WD-wsdl12-bindings-20030611/#_mime
>
>
>
> --
> Farrukh
>
>
>
> You may leave a Technical Committee at any time by visiting
http://www.oasis-open.org/apps/org/workgroup/regrep/members/leave_workgroup.
php
>
ÿþ<?xml version="1.0" encoding="UTF-8"?>

<definitions name="ebXMLRegistrySOAPService" 

   targetNamespace="urn:oasis:names:tc:ebxml-regrep:registry-soap:wsdl:2.5" 

   xmlns="http://schemas.xmlsoap.org/wsdl/" 

   xmlns:lcm="urn:oasis:names:tc:ebxml-regrep:lcm:xsd:2.5" 

   xmlns:query="urn:oasis:names:tc:ebxml-regrep:query:xsd:2.5" 

   xmlns:rs="urn:oasis:names:tc:ebxml-regrep:rs:xsd:2.5" 

   xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime" 

   xmlns:registry-types="urn:oasis:names:tc:ebxml-regrep:registry-types:wsdl:2.5" 

   xmlns:registry-abstract="urn:oasis:names:tc:ebxml-regrep:registry-abstract:wsdl:2.5" 

   xmlns:registry-soap="urn:oasis:names:tc:ebxml-regrep:registry-soap:wsdl:2.5"

   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 

   xmlns:tns="urn:oasis:names:tc:ebxml-regrep:registry-soap:wsdl:2.5" 

   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<documentation>

$Header: /cvsroot/ebxmlrr/ebxmlrr-spec/misc/2.5/services/ebXMLRegistrySOAPService.wsdl,v 1.1 2003/06/05 16:03:29 farrukh_najmi Exp $

Author: Matt MacKenzie

This is the the normative SOAP binding in WSDL for the OASIS ebXML Registry services.

It relies on ebXMLRegistryAbstractService.wsdl for types, messages, and portTypes.

	</documentation>



   <import namespace="urn:oasis:names:tc:ebxml-regrep:registry-abstract:wsdl:2.5"

location="http://www.oasis-open.org/committees/regrep/documents/2.5/services/ebXMLRegistryAbstractService.wsdl" />



	<binding name="QueryManagerBinding" type="registry-abstract:QueryManagerPortType">

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

		<operation name="getContent">

			<soap:operation soapAction="getContent" style="document"/>

			<input>

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

        		</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

		<operation name="submitAdhocQuery">

			<soap:operation soapAction="submitAdhocQuery" style="document"/>

			<input>

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

			</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

		<operation name="getNotifications">

			<soap:operation soapAction="getNotifications" style="document"/>

			<input>

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

			</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

	</binding>

	<binding name="LifeCycleManagerBinding" type="registry-abstract:LifeCycleManagerPortType">

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

		<operation name="addSlots">

			<soap:operation soapAction="addSlots" style="document"/>

			<input>

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

			</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

		<operation name="approveObjects">

			<soap:operation soapAction="approveObjects" style="document"/>

			<input>

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

			</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

		<operation name="deprecateObjects">

			<soap:operation soapAction="deprecateObjects" style="document"/>

			<input>

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

			</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

		<operation name="removeObjects">

			<soap:operation soapAction="removeObjects" style="document"/>

			<input>

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

			</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

		<operation name="removeSlots">

			<soap:operation soapAction="removeSlots" style="document"/>

			<input>

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

			</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

		<operation name="submitObjects">

			<soap:operation soapAction="submitObjects" style="document"/>

			<input>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

		<operation name="updateObjects">

			<soap:operation soapAction="updateObjects" style="document"/>

			<input>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</input>

			<output>

                     <mime:multipartRelated>

                        <mime:part>

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

                        </mime:part>

                        <mime:part>

                            <mime:content part="attachment" type="text/xml"/>

                        </mime:part>

                     </mime:multipartRelated>

			</output>

                  <fault name="error">

                        <soap:fault name="error" use="literal"/>

                  </fault>

		</operation>

	</binding>

</definitions>

ÿþ<?xml version = "1.0" encoding = "UTF-8"?>



<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" 

    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime" 

    xmlns:query="urn:oasis:names:tc:ebxml-regrep:query:xsd:2.5" 

    xmlns:rs="urn:oasis:names:tc:ebxml-regrep:rs:xsd:2.5"

    xmlns:lcm="urn:oasis:names:tc:ebxml-regrep:lcm:xsd:2.5" 

    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 

    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

    xmlns:registry-types="="urn:oasis:names:tc:ebxml-regrep:registry-types:wsdl:2.5"

    xmlns:registry-abstract="urn:oasis:names:tc:ebxml-regrep:registry-abstract:wsdl:2.5" 

    targetNamespace="urn:oasis:names:tc:ebxml-regrep:registry-abstract:wsdl:2.5" 

    name="ebXMLRegistryAbstractService">



	<documentation>

$Header: /cvsroot/ebxmlrr/ebxmlrr-spec/misc/2.5/services/ebXMLRegistryAbstractService.wsdl,v 1.1 2003/06/04 21:31:40 farrukh_najmi Exp $

Author: Matt MacKenzie

This is the the normative abstract service definition in WSDL for the OASIS ebXML Registry services.



This WSDL file defines the types, messages, and portTypes needed to communicate with a compliant 

ebXML Registry.  It is abstract in that it does not define the bindings.  Examples

of suitable bindings are defined in ebXMLRegistrySOAPService.wsdl.



This document is maintained by Matthew MacKenzie (matt@mac-kenzie.net), who does not offer any

warranty or guarantee for this file.  A general lack of solid support for SOAP with Attachments

among current WSDL tools has made it difficult to verify all of the definitions here.

	</documentation>



      <types>

         <xsd:schema targetNamespace="urn:oasis:names:tc:ebxml-regrep:registry-types:wsdl:2.5"

            xmlns:registry-types="urn:oasis:names:tc:ebxml-regrep:registry-types:wsdl:2.5"

            xmlns:query="urn:oasis:names:tc:ebxml-regrep:query:xsd:2.5" 

            xmlns:rs="urn:oasis:names:tc:ebxml-regrep:rs:xsd:2.5"

            xmlns:lcm="urn:oasis:names:tc:ebxml-regrep:lcm:xsd:2.5" 

            xmlns:xsd="http://www.w3.org/2001/XMLSchema">



            <!-- Import the rs.xsd. -->

	      <xsd:import namespace="urn:oasis:names:tc:ebxml-regrep:rs:xsd:2.5"

		  location="http://www.oasis-open.org/committees/regrep/documents/2.5/schema/rs.xsd"/>



            <!-- Import the lcm.xsd. -->

            <xsd:import namespace="urn:oasis:names:tc:ebxml-regrep:lcm:xsd:2.5"

              location="http://www.oasis-open.org/committees/regrep/documents/2.5/schema/lcm.xsd"/>



            <!-- Import the query.xsd. -->

            <xsd:import namespace="urn:oasis:names:tc:ebxml-regrep:query:xsd:2.5"

              location="http://www.oasis-open.org/committees/regrep/documents/2.5/schema/query.xsd"/>



            <xsd:element name="Content" type="xsd:string"

            

            <xsd:element name="dispositionReport" type="xsd:string"

            <!-- I assume that you would like to define the format of your disposition report -->



         </xsd:schema>

      </types>



	<!-- The Response message definition. -->

	<message name="msgRegistryResponse">

		<documentation>Defines a RegistryResponse message.</documentation>

		<part name="body" element="rs:RegistryResponse"/>

            <part name="attachment" element="registry-types:Content"/>

	</message>



	<!-- Request message definitions. -->

	<message name="msgUpdateObjectsRequest">

		<part name="body" element="lcm:UpdateObjectsRequest"/>

            <part name="attachment" element="registry-types:Content"/>

	</message>



	<message name="msgSubmitObjectsRequest">

		<part name="body" element="lcm:SubmitObjectsRequest"/>

            <part name="attachment" element="registry-types:Content"/>

	</message>



	<message name="msgDeprecateObjectsRequest">

		<part name="body" element="lcm:DeprecateObjectsRequest"/>

	</message>



	<message name="msgGetContentRequest">

		<!-- w query -->

		<part name="body" element="query:GetContentRequest"/>

	</message>



	<message name="msgAddSlotsRequest">

		<part name="body" element="lcm:AddSlotsRequest"/>

	</message>



	<message name="msgRemoveSlotsRequest">

		<part name="body" element="lcm:RemoveSlotsRequest"/>

	</message>



	<message name="msgRemoveObjectsRequest">

		<part name="body" element="lcm:RemoveObjectsRequest"/>

	</message>



	<message name="msgApproveObjectsRequest">

		<part name="body" element="lcm:ApproveObjectsRequest"/>

	</message>



	<message name="msgAdhocQueryRequest">

		<part name="body" element="query:AdhocQueryRequest"/>

	</message>



	<message name="msgGetNotificationsRequest">

		<part name="body" element="query:GetNotificationsRequest"/>

	</message>



      <message name="dispositionReport">

            <part name="body" element="registry-types:dispositionReport"/>

      </message>

	

	<!-- Port Types 

	     A port type is a piece of markup which defines a class of methods, or in WSDL

	     nomenclature, operations.  In object-oriented-ese, a portType maps to a class, and

	     an operation maps to a method.

	     

	     Each operation has an input message and an output message. 

	-->

	<portType name="QueryManagerPortType">

		<operation name="getContent">

			<input message="registry-abstract:msgGetContentRequest"/>

			<output message="registry-abstract:msgRegistryResponse"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>

		<operation name="submitAdhocQuery">

			<input message="registry-abstract:msgAdhocQueryRequest"/>

			<output message="registry-abstract:msgRegistryResponse"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>

		<operation name="getNotifications">

			<input message="registry-abstract:msgGetNotificationsRequest"/>

			<output message="registry-abstract:msgRegistryResponse"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>



	</portType>



	<portType name="LifeCycleManagerPortType">

		<operation name="addSlots">

			<input message="registry-abstract:msgAddSlotsRequest"/>

			<output message="registry-abstract:msgRegistryResponse"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>

		<operation name="approveObjects">

			<input message="registry-abstract:msgApproveObjectsRequest"/>

			<output message="registry-abstract:msgRegistryResponse"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>

		<operation name="deprecateObjects">

			<input message="registry-abstract:msgDeprecateObjectsRequest"/>

			<output message="registry-abstract:msgRegistryResponse"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>

		<operation name="removeObjects">

			<input message="registry-abstract:msgRemoveObjectsRequest"/>

			<output message="registry-abstract:msgRegistryResponse"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>

		<operation name="removeSlots">

			<input message="registry-abstract:msgRemoveSlotsRequest"/>

			<output message="registry-abstract:msgRegistryResponse"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>

		<operation name="submitObjects">

			<input message="registry-abstract:msgSubmitObjectsRequest"/>

			<output message="registry-abstract:msgRegistryResponse"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>

		<operation name="updateObjects">

			<input message="registry-abstract:msgUpdateObjectsRequest"/>

			<output message="registry-abstract:msgUpdateObjectsRequest"/>

                  <fault name="error" message="registry-abstract:dispositionReport"/>

		</operation>

	</portType>

</definitions>



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]