[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] SAX2 Namespace Support
OK, here goes... Background ---------- I accept Tim Bray's argument that Namespace-qualified names should be passed on in two parts and not one, and that Namespace-aware processing is the future of XML. I accept James Clark's argument that there must be a mechanism for passing on the original prefix if the parser supports doing so and the application desires it, if only for DOM2 support. General Rules ------------- 1. By default, SAX2 parsers shall perform Namespace processing unless explicitly requested not to do so. There's no point having them start in an indeterminate state, or in allowing SAX2 parsers not to do Namespace processing. I will provide a filter that can be embedded in the driver for parsers that don't do NS processing natively. 2. There will be features for (i) requesting that the original prefix be prepended to each local name and (ii) turning off Namespace processing altogether. The default value for each of these features will be false, and no parser is required to support either of them. 3. If a LexicalHandler is set, the parser may use it to report the scope of Namespace declarations. Note that this is a little brittle, and probably less useful than people think, but that it is essential for XSLT. Not all parsers will support LexicalHandler. 4. Namespace-qualified names are always reported as two separate strings: the Namespace URI and the local name. The local name may have the original prefix prepended at client request, but the prefix will not be there by default. The idea of all of this is that fully-cooked Namespace processing is the default behaviour and the normal, transparent operating mode for SAX2 -- most application writers need never know that other modes are available. However, there are optional, non-obtrusive mechanisms for passing on extra information (such as the original prefixes and the scope of NS declarations). The presence or absence of support for these optional features can be determined by feature queries. Implementation -------------- This implementation is based largely on suggestions from James Clark. [from org.xml.sax2.DocumentHandler] public void startElement (String ns, String name, AttributeList atts) throws SAXException; public void endElement (String ns, String name) throws SAXException; [org.xml.sax2.AttributeList] public class AttributeList { public int getLength (); public String getNamespaceURI (int i); public String getName (int i); public String getType (int i); public String getValue (int i); public String getType (String ns, String localName); public String getValue (String ns, String localName); // For searching on prefixed names public String getType (String name); public String getValue (String name); } [from org.xml.sax2.LexicalHandler] public void startNamespaceDeclScope (String prefix, String uri) throws SAXException; public void endNamespaceDeclScope (String prefix) throws SAXException; Unless someone shows a catastrophic problem with all this (not a purely aesthetic one), I plan to go ahead to other SAX2 problems now. All the best, David -- David Megginson david@m... http://www.megginson.com/ 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 unsubscribe, mailto:majordomo@i... the following message; unsubscribe 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
|