Hi Oliver ,
             This  is not the answer to your question , but is a related 
change . I think you need to also change the QName array in 
Constants.java that contains schema mappings for various versions . 
QName schema2001QNames [] incorrectly uses timeInst2001QName 
(xsd:timeInstant) when it should be using dateTime .
Someone correctly me if i am wrong , but i saw this fix in a later 
release (later than 2.2) of  Constants.java  (Rev 1.21 and Rev 1.22) .

I saw this cause problems with some WSDL based clients(XSD 2001 
compliant)  who do  not know how to interpret a Soap message that 
contain xsd:timeInstant .

Also if someone has a comprehensive list of changes required to switch 
the Schema version on an install to 2001 , please post the list of 
changes here .

Thanks in advance ,
Raghavan


Oliver Wulff wrote:

>Hi
>
>I need to communicate with the XMLBus from IONA. So, it's necessary to use
>the XML Schema 2001. But the soap package use by default 1999. I've read in
>the documentation guide\interop.html, that I can download the source code
>and change the Constants.java:
>      public static final String NS_URI_CURRENT_SCHEMA_XSI =
>NS_URI_2001_SCHEMA_XSI;
>      public static final String NS_URI_CURRENT_SCHEMA_XSD =
>NS_URI_2001_SCHEMA_XSD;
>
>But still, the old Schema will be used.
>
>Then, I searched through the source code and found the following in
>SOAPMappingRegistry.java:
>      public String schemaURI = Constants.NS_URI_1999_SCHEMA_XSD;
>      QName [] schemaQNames = schema1999QNames;
>
>If it is hard coded, it will not work. After the following change, it
>worked:
>      public String schemaURI = Constants.NS_URI_CURRENT_SCHEMA_XSD;
>      QName [] schemaQNames = null;
>
>The only problem is, that there is still an attribute definition in the
>Envelope element in the soap request message:
>      <?xml version='1.0' encoding='UTF-8'?>
>      <SOAP-ENV:Envelope xmlns:SOAP-ENV
>="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsi
>="http://www.w3.org/1999/XMLSchema-instance";    xmlns:xsd
>="http://www.w3.org/1999/XMLSchema";>
>      <SOAP-ENV:Body>
>      <ns1:echoFloat xmlns:ns1="http://soapinterop.org/";
>SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
>      <inputFloat xmlns:ns2="http://www.w3.org/2001/XMLSchema"; xsi:type
>="ns2:float">333.444</inputFloat>
>      </ns1:echoFloat>
>      </SOAP-ENV:Body>
>      </SOAP-ENV:Envelope>
>
>
>Did anybody have the same problem and found a better solution? Can I force
>that the Schema 2001 will be used in the whole SOAP message?
>Thanks
>
>Oliver
>
>
>
>
>
>
>
>
>******************* BITTE BEACHTEN *******************
>Diese Nachricht (wie auch allfällige Anhänge dazu) beinhaltet
>möglicherweise vertrauliche oder gesetzlich geschützte Daten oder
>Informationen. Zum Empfang derselben ist (sind) ausschliesslich die
>genannte(n) Person(en) bestimmt. Falls Sie diese Nachricht
>irrtümlicherweise erreicht hat, sind Sie höflich gebeten, diese unter
>Ausschluss jeder Reproduktion zu zerstören und die absendende Person
>umgehend zu benachrichtigen. Vielen Dank für Ihre Hilfe.
>


Reply via email to