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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrp-interop message

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


Subject: RE: [wsrp-interop] Interpretation of minOccur=0 and nillable=tue in the envelope.


Stacks behaved inconsistently when both minOccurs="0" and nillable="true" where specified and we reported this to Apache Axis and .NET and Oracle feed info back on JAX-RPC. My advice for message receivers would be to be as lax as possible and consumer all reasonable input (what senders should do is another matter). Please see below:

 

Regards,

Andre

 


From: Klein, Avi [mailto:avi.klein@sap.com]
Sent: 30 May 2004 07:45
To: wsrp-interop@lists.oasis-open.org
Subject: [wsrp-interop] Interpretation of minOccur=0 and nillable=tue in the envelope.

 

Hi all,

 

This is an old issue we once had an E-mail thread on and is still unresolved for the SAP Consumer.

 

I would appreciate your input on how do you interpret the following case:

 

In the WSDL, the specific data type contains an element which is "minOccur=0" and in runtime this element is in fact null. How should it be presented in the envelope:

  1. <elementname xsi:nill=true/>
  2. <elementname/>
  3. omitted al together

 

<andrek> I would accept both (a) and (c) as input. (c) seems the "right thing" to do when emitting.

 

In the WSDL, the specific data type contains an element which is "nillable="true" and in runtime this element is in fact null. How should it be presented in the envelope:

  1. <elementname xsi:nill=true/>
  2. <elementname/>
  3. omitted al together

 

<andrek> Again, I would accept both (a) and (c). (a) is the "right thing" to do when emitting.

 

I experience different behavior from the IBM producer and the Oracle producer for these cases: for example IBM producer permits xsi:nill=true for registration context in getMarkup while Oracle don't. And Oracle allows omitting minOccur=0 elements while IBM don't

 

<andreK> We banned having both minOccurs="0" and nillable="true" on any one single element in our wsdl. So the potential conflict in the above for senders is avoided by wsrp.

 

[

This is the xsd:

  <element name="getMarkup">

    <complexType>

      <sequence>

        <element name="registrationContext" type="types:RegistrationContext" nillable="true"/>

        <element name="portletContext"      type="types:PortletContext"/>

        <element name="runtimeContext"      type="types:RuntimeContext"/>

        <element name="userContext"         type="types:UserContext" nillable="true"/>

        <element name="markupParams"        type="types:MarkupParams"/>

      </sequence>

    </complexType>

]

 

For the following request to Oracle producer:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wn3="http://www.w3.org/1999/XMLSchema" xmlns:wn2="http://www.w3.org/2000/10/XMLSchema" xmlns:wn1="http://www.w3.org/2001/XMLSchema" xmlns:wn0="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wn4="urn:oasis:names:tc:wsrp:v1:wsdl" xmlns:tns="urn:oasis:names:tc:wsrp:v1:wsdl">

       <SOAP-ENV:Body>

             <prt0:getMarkup xmlns:prt0="urn:oasis:names:tc:wsrp:v1:types">

                    <prt0:registrationContext>

                           <prt0:registrationHandle>C:148.87.122.191:4c7e10:f942d6eb23:-1f4</prt0:registrationHandle>

                    </prt0:registrationContext>

                    <prt0:portletContext>

                           <prt0:portletHandle>E:1:default</prt0:portletHandle>

                    </prt0:portletContext>

                    <prt0:runtimeContext>

                           <prt0:userAuthentication>wsrp:none</prt0:userAuthentication>

                           <prt0:portletInstanceKey/>

                    </prt0:runtimeContext>

                    <prt0:userContext>

                           <prt0:userContextKey>USER.PRIVATE_DATASOURCE.un:testadmin</prt0:userContextKey>

                    </prt0:userContext>

                    <prt0:markupParams>

                           <prt0:secureClientCommunication>false</prt0:secureClientCommunication>

                           <wn1:locales>en-US</wn1:locales>

                           <wn1:mimeTypes>text/html</wn1:mimeTypes>

                           <prt0:mode>wsrp:view</prt0:mode>

                           <prt0:windowState>wsrp:normal</prt0:windowState>

                           <prt0:navigationalState/>

                    </prt0:markupParams>

             </prt0:getMarkup>

       </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

I get:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="urn:oasis:names:tc:wsrp:v1:types" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

       <env:Body>

             <env:Fault>

                    <faultcode>env:Server</faultcode>

                    <faultstring>Internal Server Error (deserialization error: deserialization error: expected element is missing: {http://www.w3.org/2001/XMLSchema}locales)</faultstring>

             </env:Fault>

       </env:Body>

</env:Envelope>

 

 

I'll appreciate any lead on what does your producer expect to receive as a valid request (a sample of a received valid request envelope etc.).

 

Thanks a lot,

 

Avi.

 



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