On Tue, Sep 12, 2006 at 09:37:20PM +0200, Jeremias Maerki wrote: > > On 12.09.2006 21:13:35 Simon Pepping wrote: > > Re extensibility: A XML file is validated according to the DTD or > > schema that it declares (Relax-NG is an exception). The user can put a > > DTD or schema of his own choice in the user configuration file: > > > > <!DOCTYPE fop > > PUBLIC '-//MYSELF//DTD My FOP Configuration XML V1.0//EN' > > 'http://myserver.mydomain.eu/fop-configuration.dtd'> > > > > and the parser will validate against it. This means that a user can > > extend the configuration file at will, and that FOP cannot be assured > > that the config file is valid. Embedded users can always avoid > > validation. > > Yes, but you already assume a non-novice user. If our goal is to have > less problems, fewer support requests because of configuration errors, > we have to do it fool-proof. You can't rely on everyone putting the DTD > or XSD on top of the configuration file. The first time the XML doesn't > validate, people remove the schema reference.
This sounds like you want to catch user errors in any case. That would be a custom program that applies heuristics based on knowledge of common user errors. For example, 'Do you mean to configure font XXX? I found a font configuration element in a position where FOP will not pick it up.' Class UserConfigDoctor. A possibility besides Java is to do it in XSLT, in the manner of Schematron. Write templates for known suspect XPaths in the file, such as all font elements not in /*/renderers/renderer/fonts. Regards, Simon -- Simon Pepping home page: http://www.leverkruid.eu