On 22/02/2012 20:30, David Lee wrote:
220256FDE771B74FB662165BC562CF590D44165D@CH1PRD0802MB107.namprd08.prod.outlook.com" type="cite">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 |