Cory,

Yes -- you are right -- bar and baz are local elements. What that means is that their element names are of type NCname (non-colon name) rather than QName (qualified name).

Although most systems will accept:

<foo xmlns="http://www.foo.com";>
        <bar>cory</bar>
        <baz>anne</baz>
</foo>

it isn't accurate, because it implies that bar and baz are namespace qualified.

The proper way to represent the document would be:

<tns:foo xmlns:tns="http://www.foo.com";>
        <bar>cory</bar>
        <baz>anne</baz>
</tns:foo>

or this:

<foo xmlns="http://www.foo.com";>
        <bar xmlns="">cory</bar>
        <baz xmlns="">anne</baz>
</foo>

It would be wrong to produce a document like this:

<tns:foo xmlns:tns="http://www.foo.com";>
        <tns:bar>cory</bar>
        <tns:baz>anne</baz>
</tns:foo>


Also note that your schema definition was incomplete. It should look like this:


<schema targetName="http://www.foo.com"/>
      <element name="foo"
          <complexType>
                <sequence>
                        <element name="bar" type="xsd:string"/>
                        <element name="baz" type="xsd:string"/>
                </sequence>
          <complexType>
     </element>
</schema>

or like this

<schema targetName="http://www.foo.com";
               xmlns:tns="http://www.foo.com"/>>
        <complexType name="foo>
                <sequence>
                        <element name="bar" type="xsd:string"/>
                        <element name="baz" type="xsd:string"/>
                </sequence>
        <complexType>
          <element name="foo" type="tns:foo"/>
</schema>

(there are three or four other ways to describe it -- but the point is that you must define the element named "foo")

Anne

At 09:02 AM 9/2/2003 -0500, you wrote:
Anne,

When you say "local" elements -- do you mean local to the parent element as defined in the schema? In the following example, would bar and baz be considered local elements?

<schema targetName="http://www.foo.com"/>
        <complexType name="foo>
                <sequence>
                        <element name="bar" type="xsd:string"/>
                        <element name="baz" type="xsd:string"/>
                </sequence>
        <complexType>
</schema>

I would think when this was serialized to the wire you'd see something like:

<foo xmlns="http://www.foo.com";>
        <bar>cory</bar>
        <baz>anne</baz>
</foo>

After all, don't bar and baz technically belong to the foo.com namespace?

Thanks for any input,
Cory WIlkerson


-----Original Message----- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Tuesday, September 02, 2003 8:40 AM To: [EMAIL PROTECTED] Subject: Re: xmlns=" " in the doc\literal SOAP message


Dimuthu,


Yes. It's okay for empty namespace definitions to go across the wire. In
fact, it some cases it might be required.

In your SOAP request, the <query> element defines a default namespace
(xmlns="blah" as opposed to xmlns:foo="blah"), which then applies to all
subelements of the <query> element, unless it is overridden by another
default namespace definition. If the <description> and <ItemId> elements
are local elements to <query>, then they should not be namespace qualified,
and in that case, you should specify an empty default namspace definition
in each of these subelements to override the active default namespace.

Now, if the <description> and <ItemId> are global elements, then this
message would be in error.

So whether or not this message is correct depends on the schema definition
for the message.

Anne

At 02:20 AM 9/1/2003 -0700, you wrote:
>Hi all,
>
>I'm trying to write a doc\literal web service and my soap message appears
>as below.........
>
><query xmlns="urn:HistorySriLanka">
>    <description xmlns="">Wood carving of an Elephant</description>
>    <ItemId xmlns="">ER234</ItemId>
></query>
>
>Has anybody else has come across a situation like this? Is it ok for empty
>xmlns="" tags to go in the wire? Any help is greatly appreciated.
>
>Thank you,
>Dimuthu
>
>
>Do you Yahoo!?
><http://us.rd.yahoo.com/evt=10469/*http://sitebuilder.yahoo.com>Yahoo!
>SiteBuilder - Free, easy-to-use web site design software




Reply via email to