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