axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ebert, Chris" <chris.eb...@hp.com>
Subject RE: only top-level element has namespace
Date Thu, 03 Nov 2005 01:59:40 GMT
I've wondered this myself.

It resets the 'default' namespace to nothing -- the enclosing message
element usually has your namespace. As far as I can tell, it works for
Axis and gSOAP this way. I'm a little mystified: when I define my
_schema_ all the sub-elements are in my namespace, but it still works.

Are you just curious, or do you have a problem you're trying to track
down?

Chris


-----Original Message-----
From: Ron Reynolds [mailto:Ron@RonReynolds.com] 
Sent: Wednesday, November 02, 2005 16:18
To: axis-user@ws.apache.org
Subject: only top-level element has namespace

i hate to ask a duplicate question but 5 minuets digging in the list
archives was leading nowhere.
my question is, what's causing this 'xmlns=""' to be added and how do i
prevent it?  (my service is document-literal)

 <soapenv:Body>
  <findVialsByAttributesResponse xmlns="urn:amgen.com/freezer/data">
   <locations xmlns="">
    <location id="1">
...

same thing's happening on the request side as well -

<soapenv:Body xmlns:wsu="..." wsu:Id="id-21465667">
<findVialsByAttributesRequest xmlns="urn:amgen.com/freezer/data">
  <materialTypeName xmlns="">FooTest</materialTypeName>
  <attributeName xmlns="">Volume</attributeName>
  <attributeValues xmlns="">
    <value>1</value>
    <value>2</value>
...

is it a WSDL issue?  i import the type XSD thus:
<wsdl:definitions targetNamespace  = "urn:amgen.com/freezer"
                  xmlns:tns        = "urn:amgen.com/freezer"
                  xmlns:data       = "urn:amgen.com/freezer/data"
                  xmlns:soap       =
"http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:xsd        = "http://www.w3.org/2001/XMLSchema"
                  xmlns:wsdl       = "http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types xmlns="urn:amgen.com/freezer/data">
    <xsd:schema targetNamespace="urn:amgen.com/freezer/data">
      <xsd:import namespace="urn:amgen.com/freezer/data"
schemaLocation="freezer-data.xsd"/>
...
      <xsd:element name="findVialsByAttributesRequest"
                   type="data:TFindVialsByAttributesRequest"/>
      <xsd:element name="findVialsByAttributesResponse"
                   type="data:TFindVialsByAttributesResponse"/>
    </xsd:schema>
  </wsdl:types>
...
  <wsdl:message name="FindVialsByAttributesRequest">
    <wsdl:part name="request"
element="data:findVialsByAttributesRequest"/>
  </wsdl:message>
  <wsdl:message name="FindVialsByAttributesResponse">
    <wsdl:part name="response"
element="data:findVialsByAttributesResponse"/>
  </wsdl:message>
...

i noticed the XSD doesn't explicitly call out qualified elements:
<xsd:schema
    targetNamespace="urn:amgen.com/freezer/data"
    xmlns:data     ="urn:amgen.com/freezer/data"
    xmlns:xsd      = "http://www.w3.org/2001/XMLSchema">
  <xsd:complexType name="TLocation">
    <xsd:sequence>
...

could that be a problem?  it still doesn't make sense why the SOAP
message would EXPLICITLY strip the namespace from everything except the
root element, or does it? :-/

never giving up, ;-)
.................ron.


Mime
View raw message