Just for completness, what schema would make the
following xml valid:

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

Thanks,
Krzysztof

 --- Cory Wilkerson <[EMAIL PROTECTED]> 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
> 
>  

Reply via email to