SAX: Processing Instructions (question 6 of 10)

David Megginson ak117 at
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).


- 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.


- 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.



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,


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

  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 Megginson                 ak117 at
Microstar Software Ltd.         dmeggins at

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list