Why SAX needs namespace support
Tim Bray
tbray at textuality.com
Tue Jan 26 18:09:39 GMT 1999
At 12:19 PM 1/26/99 -0500, Tyler Baker wrote:
>Implementing namespaces in an XML parser is a trivial task, but dealing with
>namespaces at the application level is a totally different story,
>especially with this namespaces scoping stuff. How do you deal with
>namespaces in the DOM?
I don't expect to convince Tyler Baker that namespaces are
anything but an alien conspiracy, but I don't think it would be proper
to ignore his repeated assertions that namespace *scoping* somehow
makes processing more difficult. The scoping is purely a syntactic
mechanism in the XML document that can't possibly have any effect at
the DOM level. The following two documents are namespace-equivalent:
<a xmlns:A='http://a.b.c'> | <a xmlns:A='http://a.b.c'
| xmlns:X='http://x.y.z'>
<b xmlns='http://a.b.c'> | <A:b>
<c/> | <A:c/>
</b> | </A:b>
<d xmlns='http://z.y.z'> | <X:d>
<A:e></A:e> | <A:e></A:e>
</d> | </X:d>
</a> | </a>
A namespace-aware parser, such as expat, makes this clear, allowing you
to ascertain that the element whose type is "e" is in the namespace
http://a.b.c. True, the DOM is going to have to do something about this,
as in add one more method per element and attribute to store/update
its namespace.
But what on earth makes anyone think that namespaces would be scoped
in the DOM? The scoping in XML files is purely a syntactic minimization
technique. I.e., if I have a DOM tree modelling the document above
(surely everyone agrees that I get the same DOM tree from both
instances) and I go stick a new "f" element as a child of the 'e'
element, surely it makes no sense to put it in the either the a.b.c
or x.y.z namespaces auto-magically. Among other things, it might
come from some entirely different namespace.
To put this another way, namespaces are merely a syntactic mechanism
to allow each element type and attribute name in a document to be
qualified by some URI. The DOM should obviously preserve this
information, but I can't see why it should be concerned with
the syntactic sugar that was used to express it. -Tim
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list