- From: Bob Cunnings <cunnings@lectrosonics.com>
- Date: Thu, 23 May 2002 10:38:36 -0700
- To: xml-dist-app@w3.org
This point has received discussion in the past [1] (issue 19, a fairly long thread) . The analysis: > In other words, the faultcode, faultstring, etc. elements are all > "locally declared elements". Since this schema does not set > elementFormDefault to qualified, these elements are not in the > schema's target namespace. They are in no namespace at all. > I think this is a new issue. is correct, I believe. RC [1] http://lists.w3.org/Archives/Public/xml-dist- app/2001May/0341.html > > I've been reviewing Elliote Rusty Harold's latest book on Java and XML, and > we got into this discussion on whether or not the <fault> child elements are > actually defined within the soapenv namespace. This exchange refers to the > SOAP 1.1 envelope namespace, but I've noticed that the SOAP 1.2 envelope > namespace describes the <fault> child elements in the same way. > > Would some XML Schema / namespaces expert take a look at this issue? > > Anne Thomas Manes > CTO, Systinet > > -----Original Message----- > From: Elliotte Rusty Harold [mailto:elharo@metalab.unc.edu] > Sent: Thursday, May 23, 2002 10:14 AM > To: Anne Thomas Manes > Subject: RE: Processing XML with Java review clarifications > > > >All the <fault> elements are actually defined in the soapenv: namespace. > >(See the schema at http://schemas.xmlsoap.org/soap/envelope/.) So your > >second example is more technically correct than the first example. > > > > I looked at the schema and I still don't think so. This is a really > tricky point in the schema spec, but as I understand it, it works > like this. The four fault child elements are all declared in this > complexType declaration: > > <xs:complexType name="Fault" final="extension" > > <xs:annotation> > <xs:documentation> > Fault reporting structure > </xs:documentation> > </xs:annotation> > <xs:sequence> > <xs:element name="faultcode" type="xs:QName" /> > <xs:element name="faultstring" type="xs:string" /> > <xs:element name="faultactor" type="xs:anyURI" minOccurs="0" /> > <xs:element name="detail" type="tns:detail" minOccurs="0" /> > </xs:sequence> > </xs:complexType> > > In other words, the faultcode, faultstring, etc. elements are all > "locally declared elements". Since this schema does not set > elementFormDefault to qualified, these elements are not in the > schema's target namespace. They are in no namespace at all. > > >There are lots of namespace errors in the examples in the SOAP 1.1. spec. > >e.g., Sample 5: > > > > I'm not sure these are errors. I do think they have design flaws, but > they are namespace well-formed. In these examples, the symbol, > Company, Price, and Symbol elements are just not in any namespace, > just like the faultcode, faultstring, and faultactor elements. I > suspect whoever wrote the SOAP spec had an unnatural fondness for > locally declared elements. > > >POST /StockQuote HTTP/1.1 > >Host: www.stockquoteserver.com > >Content-Type: text/xml; charset="utf-8" > >Content-Length: nnnn > >SOAPAction: "Some-URI" > > > ><SOAP-ENV:Envelope > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > > SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > > <SOAP-ENV:Header> > > <t:Transaction > > xmlns:t="some-URI" > > SOAP-ENV:mustUnderstand="1"> > > 5 > > </t:Transaction> > > </SOAP-ENV:Header> > > <SOAP-ENV:Body> > > <m:GetLastTradePrice xmlns:m="Some-URI"> > > <symbol>DEF</symbol> > > </m:GetLastTradePrice> > > </SOAP-ENV:Body> > ></SOAP-ENV:Envelope> > > > ><symbol> is not namespace qualified. > > > >Example 6: > > > >POST /StockQuote HTTP/1.1 > >Host: www.stockquoteserver.com > >Content-Type: text/xml; charset="utf-8" > >Content-Length: nnnn > >SOAPAction: "Some-URI" > > > ><SOAP-ENV:Envelope > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > > SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > > <SOAP-ENV:Body> > > <m:GetLastTradePriceDetailed > > xmlns:m="Some-URI"> > > <Symbol>DEF</Symbol> > > <Company>DEF Corp</Company> > > <Price>34.1</Price> > > </m:GetLastTradePriceDetailed> > > </SOAP-ENV:Body> > ></SOAP-ENV:Envelope> > > > ><Symbol>, <Company>, and <Price> aren't namespace qualified. > > > >There are lots more. But you don't *have* to qualify your elements if > >there's no confusion about what they mean. > > > -- > > +-----------------------+------------------------+-------------------+ > | Elliotte Rusty Harold | elharo@metalab.unc.edu | Writer/Programmer | > +-----------------------+------------------------+-------------------+ > | The XML Bible, 2nd Edition (Hungry Minds, 2001) | > | http://www.cafeconleche.org/books/bible2/ | > | http://www.amazon.com/exec/obidos/ISBN=0764547607/cafeaulaitA/ | > +----------------------------------+---------------------------------+ > | Read Cafe au Lait for Java News: http://www.cafeaulait.org/ | > | Read Cafe con Leche for XML News: http://www.cafeconleche.org/ | > +----------------------------------+---------------------------------+
Received on Thursday, 23 May 2002 12:39:06 UTC