|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Suggested guidelines for using local types. (was Re: Enlightenment
Francis, The "conceit" of XML Schema is that Schema processing happens on the infoset of the well-formed document parse. Therefore, all namespace details have been settled before XSDL starts its business. As such, XSDL is basically concerned with qualified and unqualified - not prefixed or unprefixed. But your post reemphasizes the point that it's the instance author's job to make his/her intent clear. Matthew > -----Original Message----- > From: Francis Norton [mailto:francis@r...] > Sent: Saturday, September 01, 2001 5:03 AM > To: Fuchs, Matthew > Cc: 'Rick Jelliffe'; xml-dev@l... > Subject: Re: Suggested guidelines for using local types. (was Re: > Enlightenment via avoiding the T-word) > > > "Fuchs, Matthew" wrote: > > > > In other words, if one follows the best practice of: > > 1) always using a targetNamespace for your schema > > 2) always making local names unqualified > > 3) writing your XSLT scripts as I've suggested > > then your scipts will be robust in the face of added local > names or global > > names, all with the current generation of software and > without needing > > access to the PSVI. > > > But these quidelines need to make some reference to the difference > between unprefixed and unqualified elements (the big > difference between > elements and attributes which is inexplicably unaddressed in the XML > Schema spec). > > Say I have a SOAP wrapper round a qualified global element Q which in > turn contains an unqualified local element u > > Now consider the following two messages: > > message [1]: > <SOAP-ENV:Envelope > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> > <SOAP-ENV:Body> > <m:Q xmlns:m="Some-URI"> > <U>DIS</U> > </m:Q> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > > message [2]: > <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"> > <Body> > <m:Q xmlns:m="Some-URI"> > <U>DIS</U> > </m:Q> > </Body> > </Envelope> > > Now are these equivalent messages? No, according to the namespace > recommendation (and XSLT) they're different - the inner element "U" is > in no namespace in the first case, and in the SOAP namespace in the > second case. What happens if I schema-validate the global element Q? I > trust, for the sake of consistency, that the second Q will be > rejected, > even though it is textually identical to the first, and even > though the > outer wrapper is identical in terms of, say, XSLT processsing. > > The solution - as someone else pointed out, sorry I can't find the > posting - is to reset the default declaration on each global element > with unqualified locals, eg > > <m:Q xmlns:m="Some-URI" xmlns=""> > <U>DIS</U> > </m:Q> > > which can now be used safely in either context. > > I know that namespace-aware processing tools should help prevent the > situation arising, but I really think that this issue should be > mentioned in any best practice discussion of local namespaces. > > Francis. >
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|
|||||||||

Cart








