RE: Yet another stupid namespace question...
Ron Bourret wrote: > A partial solution is as follows: > > 1) When reading the schema(s), keep a list of all element declarations that > declare defaults for xmlns and xmlns:xxx attributes along with the prefixes > and namespace URIs they use. > > 2) For each element you encounter, check if its base (unprefixed) name > appears in this list. Note that a single name may occur multiple times in > the list. > > 3) If the element is in the list, check if its prefix (or lack thereof) > matches any of the prefixes stored in the list for that element. > a) If so, get the relevant namespace URI, construct the qualified name, and > proceed normally. > b) If not, then the element belongs to the namespace according to the > current value of its prefix (or lack thereof). If there is no match for the > prefix (or lack thereof), then an error occurs, as this is a > must-use-schemas scenario and no schema can be located because we don't > have a namespace URI. On further reflection, I've realized that this solution is broken. For example, suppose I define an element A which sets the default namespace to http://foo and that I define an element B in the content of element A. Now suppose you like my element A and incorporate it into your element C, which has a different element B in its content. Suppose also that your element B defines the default namespace as http://bar. Written with explicit namespace declarations, I can tell the difference between my B and your B: <C> <A xmlns="http://foo"> <B><!--This is my B --></B> </A> <B xmlns="http://bar"><!-- This is your B --></B> </C> Written with implicit namespace declarations (see below), my algorithm breaks: when the processor encounters my B, it will search the list of elements that declare default namespaces, find your B, and mistakenly report an error. <C> <A> <B><!--This is my B --></B> </A> <B><!-- This is your B --></B> </C> Note that it is not possible to write a DTD for the implicit case, as it requires two different definitions for element B. (I believe it is possible to write a schema for this case.) -- Ron Bourret xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1 To (un)subscribe, mailto:majordomo@i... the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
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