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. >