Lists Home |
Date Index |
I'm trying to put together some guidelines about when we should use
processing instructions and when some other construct (e.g. empty
element, namespaced attribute) to pass information to an application.
The fact that PIs can appear before and after the document element
makes me think that they are good for holding instructions that effect
the processing of the entire document, especially if those
instructions are repeatable (e.g. the xml-stylesheet PI). Otherwise
you have to use one or more structured attributes on the document
element to achieve the same kind of effect (e.g. the
xsi:schemaLocation attribute), which gets mighty ugly real quick.
The fact that most schema languages (Schematron being one exception)
can't constrain/don't care where PIs appear makes me think that PIs
are good for holding information that can go anywhere without
disrupting the main content of the document. For example, XMetaL uses
them to hold deleted content and mark the start and end of inserted
content, which seems very reasonable to me.
Are there any other good uses for PIs? Does anyone have examples of
*inappropriate* uses? I have the impression that some people think
that any use of PIs is inappropriate, but I'm not sure what the
Also, are there any guidelines about naming the targets of PIs? The
ones that I've seen tend to use a naming scheme "prefix-localPart"
where the prefix is used to indicate the authority or application
involved and the local part is used to specify the name of the
instruction itself. Is that fairly standard?
Despite the fact that the XML Rec. suggests using notations to specify
the legal names of PIs, I haven't actually seen that in use. Anyone
think that it's good practice?
What about PI data? Most PIs that I've seen use pseudo-attributes, I
guess for extensibility. Is that standard practice?
Thanks in advance for any comments or pointers to material on the