[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: SAX2 Namespace Support

  • From: David Megginson <david@m...>
  • To: "XMLDev list" <xml-dev-digest@i...>
  • Date: Mon, 20 Dec 1999 20:32:43 -0500 (EST)

nsprefix xhtml
Richard Anderson writes:

 > Why are you trying to complicate ours lifes :)
 > 
 > Please change these from:
 > 
 > >   public void startElement (String ns, String name,
 > >                             AttributeList atts)
 > >     throws SAXException;
 > >
 > >   public void endElement (String ns, String name)
 > >     throws SAXException;
 > 
 > to:
 > 
 > >   public void startElement (String nsPrefix, String ns, String name,
 > >                             AttributeList atts)
 > >     throws SAXException;
 > >
 > >   public void endElement (String nsPrefix,String ns, String name)
 > >     throws SAXException;
 >
 > We can build ours DOM more easily this way dont have to buffer the other
 > namespace events.  I also would be surprised if at least 80% of SAX2 users
 > a) wouldnt mind this being present b) would probably use it

That was my original suggestion, but James Clark wisely pointed out
that it was possible to drop one of the arguments.  Consider the
following document:

 <html:p xmlns:html="http://www.w3c.org/1999/xhtml">Hello.</html:p>

With my proposal, what you will get by default is

  startElement("http://www.w3c.org/1999/xhtml", "p", atts);
  characters("Hello.");
  endElement("http://www.w3c.org/1999/xhtml", "p");

Nothing too tricky there, and that's all that most apps will ever
need.  If you pass in a LexicalHandler and the parser supports it, you
might get a little more:

  startNamespaceDeclScope("html", "http://www.w3c.org/1999/xhtml");
  startElement("http://www.w3c.org/1999/xhtml", "p", atts);
  characters("Hello.");
  endElement("http://www.w3c.org/1999/xhtml", "p");
  endNamespaceDeclScope("html");

I assume that's what you were thinking you'd have to cache, but that
would be wrong, since you could not with certainty map the Namespace
URI back to the original prefix used.  James's suggestion was that, at 
user option, the parser leave the original prefix on the name:

  startElement("http://www.w3c.org/1999/xhtml", "html:p", atts);
  characters("Hello.");
  endElement("http://www.w3c.org/1999/xhtml", "html:p");

This would never be enabled by default, but for the relatively small
class of apps that needed to know the original prefix, the prefix
would be available simply by splitting the name argument.

I like this approach because it doesn't throw the prefix in the face
of apps that don't need it -- to paraphrase Larry Wall, it makes common
tasks easy and uncommon tasks possible.


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!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.