You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@xml.apache.org by Donny Rose <dr...@pro-found.com> on 2002/01/26 21:27:02 UTC

Problem with xmlns:xsi in SOAP-ENV

I am using Apache SOAP 2.3.1, and I can't change the SOAP-ENV's xmlns:xsi
value. The request that is sent by Apache SOAP looks likes this:

<?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:GetInfo xmlns:ns1="http://dinoch.dyndns.org/webservices/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
</ns1:GetInfo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

But, the SOAP server that receives this request needs:
xmls:xsi="http://www.w3.org/2001/XMLSchema-instance".

My understanding is that by default Apache SOAP 2.3.1 is supposed to use the
newer namespace. In fact, the following debug line before Call.invoke()
returns the correct value:

debug line:     	System.err.println( Constants.NS_URI_CURRENT_SCHEMA_XSI );
value: 		http://www.w3.org/2001/XMLSchema-instance

I've tried using Call.buildEnvelope().declareNamespace() method to
explicitly declare the correct namespace, but it has no effect whatsoever.
I've even tried to declare bogus namespaces, but that has no effect either:

no effect:
c.buildEnvelope().declareNamespace("dork","http://www.w3.org/2001/XMLSchema-
instance");

Am I not using Call.buildEnvelope().declareNamespace() correctly? In any
case, how can I tell Apache SOAP 2.3.1 to use the newer xmlns:xsi?

I'm greatly perplexed. Please help.

Thanks,

Donny Rose
Pro-Found Software, Inc.
(201) 928-0400
(201) 928-1122 (fax)


--
To unsubscribe, e-mail:   <ma...@xml.apache.org>
For additional commands, e-mail: <ma...@xml.apache.org>