OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   re: SAX2: start/endPrefixMapping

[ Lists Home | Date Index | Thread Index ]
  • From: David Megginson <david@megginson.com>
  • To: xml-dev@XML.ORG
  • Date: Wed, 15 Mar 2000 07:08:06 -0500 (EST)

Box, Don writes:

 > In trying to properly implement the in-scope namespaces Infoset
 > property, I found the following inconvenience with SAX2. The
 > ordering of startPrefixMapping and startElement requires the
 > implementation of ContentHandler to either (a) create a new
 > "scoping context" for each namespace declaration or (b) keep a data
 > member around to note that a new element has started.

Yes, I understand the problem, but for most apps, it's more convenient 
to know the mappings *before* the startElement event so that they can
process attribute values that are QNames.

Actually, I hadn't intended the NamespaceContext class to be used for
keeping track of this kind of information on the client side -- it was 
meant only as a convenience class for driver writers, but that only
goes to show that users always think of new ways to use stuff.  For
what you want to do, I think that a simple boolean flag is the best
approach:

  class me implements DefaultHandler {
    void startPrefixMapping(String p, String u) {
      if (!contextPushed) {
	ns.pushContext();
	contextPushed = true;
      }
      ns.declarePrefix(p, u);
    }
    void startElement(...) {
      if (!contextPushed) {
	ns.pushContext();
      }
      contextPushed = false;
    }
    void endElement(...) {
      ns.popContext();
    }

    boolean contextPushed = false;
  }

This doesn't add much complexity for your case, but keeps things easy
for people who just want to process QNames in attribute values.


All the best,


David

-- 
David Megginson                 david@megginson.com
           http://www.megginson.com/

***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS