“the PI appears only
in the raw content”
When convenient; when efficient, all local. Are PIs shared
past instances?
len
-----Original
Message-----
From: Michael Kay
[mailto:mike@saxonica.com]
Sent: Thursday, February 23, 2012 3:30 AM
To: xml-dev@lists.xml.org
Subject: Re: [xml-dev] RE:
Formatting Processing Instructions
On 22/02/2012 20:30,
David Lee wrote:
I for one have NEVER used a PI nor have ever encountered one nor have ever found any desirable use for one.
I admit to occasional use
of PIs. Here are some of the ways I have used them:
- metadata in XSLT test stylesheets, where I want confidence that the metadata
will be thrown away by the XSLT processor. I could use a top-level data
element, but that would involve declaring a namespace, and the extra namespace
could in theory disturb the test.
- an alternative to entity references or numeric character references that will
survive XSLT transformation without making the document DTD-invalid or
schema-invalid. Doesn't work in attributes, of course.
- an instruction to the XSLT processor, like <?generate-glossary-here?>.
Shouldn't this be an element? Perhaps yes; I'm doing this where I control the
XSLT processing but not the schema/DTD, so it's a form of tag abuse. But it
would probably be wrong to add the element to the schema/dtd, because there are
really two content models here: the "raw" content and the
"preprocessed" content, and the PI appears only in the raw content,
while the schema describes the structure of the preprocessed content. I'm using
a PI so that I can use one DTD/schema for both content models.
And I would defend it as better than using dummy content like
<div id="glossary">
<head>#insert-glossary-here#</head>
</div>
which I have also been known to do.
Michael Kay
Saxonica