|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] re: SAX2: start/endPrefixMapping
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@m...
http://www.megginson.com/
***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@x...&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************
|
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
|
|||||||||

Cart








