Validating XML constraints with psgml (was: Parameter entity ...)

Toby Speight (tms@ansa.co.uk)
15 Jul 1998 10:42:35 +0100


David> David Megginson <URL:mailto:david@megginson.com>

=> In article <199807150110.VAA00655@unready.megginson.com>, David
=> wrote:

David> You've run up against a somewhat obscure constraint from section
David> 2.8 of the XML 1.0 Recommendation:
David>
David> Well-Formedness Constraint: PEs in Internal Subset
David>
David> In the internal DTD subset, parameter-entity references can
David> occur only where markup declarations can occur, not within
David> markup declarations. (This does not apply to references that
David> occur in external parameter entities or to the external
David> subset.)
David>
David> Source:
David> <http://www.w3.org/TR/1998/REC-xml-19980210#sec-prolog-dtd>
David>
David> PSGML doesn't catch this one yet.

It's true that psgml itself doesn't catch this; however, it does
provide a means of calling an external parser (C-c C-v). You can set
this parser using the variable sgml-validate-command - in my case, I
use "nsgmls -s %s %s" (the default) for SGML files, and for XML files
I use "nsgmls -wxml -s %s %s".

You could also use this variable to do application-level validation.
For example, you might want to check that the target of an IDREF
attribute is of a particular type. You could do that using a DSSSL
processor with a style sheet that checks for errors. (Although I've
given up trying to write a stylesheet that works with the -wxml flag;
instead I validate the XML restrictions seperately.)

--