SAX: Processing Instructions (question 6 of 10)

David Megginson (ak117@freenet.carleton.ca)
Sat, 3 Jan 1998 13:12:11 -0500


[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@freenet.carleton.ca
Microstar Software Ltd.         dmeggins@microstar.com
      http://home.sprynet.com/sprynet/dmeggins/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ To (un)subscribe, mailto:majordomo@ic.ac.uk the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)