SAX: Processing Instructions (question 6 of 10)
David Megginson
ak117 at freenet.carleton.ca
Sat Jan 3 18:16:41 GMT 1998
[SAX is a proposal for a simple, event-based XML API, using
callbacks. This is one in a series of ten design questions that we
need to answer to implement the API.]
Should SAX implement a callback for processing instructions?
public void processingInstruction (String name, String data);
(In XML, all processing instructions begin with a name, followed
optionally by whitespace and then other characters).
CON
---
- this method would make SAX slightly larger;
- processing instructions are difficult for non-specialists to
understand -- the HTML world never managed to figure them out, and
used specialised comments instead;
- processing instructions are not part of a document's logical element
structure, and providing a callback event might encourage people to
abuse them.
PRO
---
- processing instructions are required for most proposed XML-related
standards, including XSL and architectural forms;
- novice users can extend the XmlAppBase class and simply ignore
processing instructions altogether.
MY RECOMMENDATION
-----------------
Yes.
Omitting PI's would cripple SAX beyond any but the most trivial uses.
PI's provide the only way to make new types of declarations in XML,
and nearly every XML-related standard requires at least one special
enabling declaration (to locate a stylesheet, declare a namespace,
etc.).
OTHER CONSIDERATIONS
--------------------
XML processing instructions consist of two parts: a name, and
(optional) data. It makes sense to report the two of these
separately, since the name can be an internalized string and may be
the name of a declared notation. Should the data (if present) be a
string, or should it be an array of characters on the model of
charData?
public void processingInstruction (String name, char data[], int length)
On a different point, I am assuming that SAX-based parsers will not
report the XML declaration or text declaration using this event, even
though they resemble PIs.
All the best,
David
--
David Megginson ak117 at freenet.carleton.ca
Microstar Software Ltd. dmeggins at microstar.com
http://home.sprynet.com/sprynet/dmeggins/
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