[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] 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:
<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:
<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]