[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: FW: [wsrp-interop] Interpretation of minOccur=0 and nillable=tue inthe envelope.
Hi Avi, thanks for the good news. I already saw my head rolling... ;-) Mit freundlichen Gruessen / best regards, Richard Jacob ______________________________________________________ IBM Lab Boeblingen, Germany Dept.8288, WebSphere Portal Server Development WSRP Standardization Technical Lead Phone: ++49 7031 16-3469 - Fax: ++49 7031 16-4888 Email: mailto:richard.jacob@de.ibm.com "Klein, Avi" <avi.klein@sap.co m> To wsrp-interop@lists.oasis-open.org 06/02/2004 11:18 cc AM Subject FW: [wsrp-interop] Interpretation of minOccur=0 and nillable=tue in the envelope. Hi Richard, I’ve retested the requests to IBM and Oracle producers after the fix and it works fine. Sorry for the false accusations ;-) Avi. From: Klein, Avi Sent: Tuesday, June 01, 2004 3:19 PM To: wsrp-interop@lists.oasis-open.org Subject: RE: [wsrp-interop] Interpretation of minOccur=0 and nillable=tue in the envelope. Hi Richard, Thanks for the input. Please see my remarks in the text [AK]. -----Original Message----- From: Richard Jacob [mailto:richard.jacob@de.ibm.com] Sent: Tuesday, June 01, 2004 11:20 AM To: Klein, Avi Cc: wsrp-interop@lists.oasis-open.org Subject: Re: [wsrp-interop] Interpretation of minOccur=0 and nillable=tue in the envelope. Hi Avi, "Klein, Avi" <avi.klein@sap.com> wrote on 05/30/2004 08:45:02 AM: > Hi all, > > This is an old issue we once had an E-mail thread on and is still > unresolved for the SAP Consumer. > We had this discussion about minOccurs="0" and nillable="true" some time ago and found that none of the stacks dealt with these attributes 100% correctly. However the problems which came up here were mostly combinations of these two on one element. In general the various stack have differnet schema validation levels, some complain some not. > 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: > a. <elementname xsi:nill=true/> > b. <elementname/> > c. omitted al together a. is not valid as long as nillable="true" is not set in the schema. b. is valid, however the mapping of e.g. xml to java prevents this. For example <element> could be a string. <element/> should be mapped to an empty string (which is different from a String=null. c. is valid and has the correct mapping > 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: > a. <elementname xsi:nill=true/> > b. <elementname/> > c. omitted al together a. is valid and the correct mapping b. is valid, because the minOccurs/maxOccurs rules apply (both default to 1), however the same mapping rules apply here as above. c. is not valid if minOccurs="0" is not set. > 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. Did you really cross-check it? Is there a serialization fault or does Oracle simply not allow a non-registered Consumer? [AK] The oracle producer reply with a statement such as: Internal Server Error (deserialization error: deserialization error: unexpected null value for literal data). This error refer to a different attribute then registrationContext since the registrationContext was provided here. I assume Oracle has registrationRequired set to true, which means you must register first, and I could easily imagine in that case that a getMarkup() with a nill registrationContext is rejected. Mike, can you cross check? > And Oracle allows omitting minOccur=0 elements while IBM don’t. This statement makes me really nervous :-) [AK] Sorry, didn’t mean too… I would really be surprised if you experienced validation errors. I think we have a lot of cases where minOccurs="0" elements are ommitted by other consumers. Can you please provide a message trace of a case where an element is minOccurs="0", you ommit it on the message and we fail because of validation? [AK] I’ll recheck it once we fix the problem you have indicated below and take it back in case I was wrong ;-). In the message below the Oracle consumer fails validation (correctly) because the request message indeed is invalid. In MarkupParams the <locales> and <mimeTypes> elements are namespaced by "http://www.w3.org/2001/XMLSchema". However they must be namespaced by "http://www.w3.org/2001/XMLSchema". [AK] Thanks, I’ll correct this problem and recheck. > 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=C> > <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.). Hope this helps. [AK] Thanks a lot for the help. Richard
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]