(It's scary to think that you take my word as gospel. I do make mistakes.)
Anne
At 10:08 AM 9/2/2003 -0500, you wrote:
Anne,
So, given the following schema:
<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>
You would recommend that implementations produce the following realization of a schema instance:
<tns:foo xmlns:tns="http://www.foo.com"> <bar>cory</bar> <baz>anne</baz> </tns:foo>
I think most of the community considers your word the gospel, I hope they take notice of this exchange :)
Thanks, Cory
-----Original Message----- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Tuesday, September 02, 2003 9:52 AM To: [EMAIL PROTECTED] Subject: RE: xmlns=" " in the doc\literal SOAP message
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