On Tue, Oct 01, 2002 at 09:35:16PM -0500, John Himpel wrote: > Greetings, > > I am trying to validate two xml files using the modular document > technique that Bob Stayton shows in www.sagehill.net. > > My version of xmllint: > xmllint: using libxml version 20423 > > File: Caller.xml > <?xml version='1.0' encoding='utf-8' ?> > <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" > > "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" > > <book id="XFree86"> > <title>XFree86 Documentation (Docbook Version)</title> > <xi xmlns:xi="http://www.w3.org/2001/XInclude" href="Called.xml" /> > </book> > > File: Called.xml > > <?xml version="1.0"?> > <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" > > "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" > > > <chapter id='Called'> > <title> > Chapter Title. > </title> > > <section> > <title>Preface</title> > <para>Simple paragraph.</para> > </section> > </chapter> > > Command: > xmllint --catalogs --noout --xinclude --valid --dtdvalid > http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd Caller.xml > > Result: > Variable $SGML_CATALOG_FILES not set > Caller.xml:6: validity error: No declaration for attribute href on > element xi > <xi xmlns:xi="http://www.w3.org/2001/XInclude" href="Called.xml" /> > ^ > Caller.xml:6: validity error: No declaration for element xi > <xi xmlns:xi="http://www.w3.org/2001/XInclude" href="Called.xml" /> > ^ > Caller.xml:7: validity error: Element book content doesn't follow the > DTD > Expecting ((title , subtitle? , titleabbrev?)? , bookinfo? , (dedication > | toc | lot | glossary | bibliography | preface | chapter | reference | > part | article | appendix | index | setindex | colophon)*), got (title > xi ) > </book> > ^ > Element book content doesn't follow the DTD > > I don't know if the problem is DocBook or if the problem is xmllint. > > Any pointers or suggestions would be welcome.
You can use the --postvalid option instead of --valid. The --postvalid option to xmllint will run the validation *after* the xincludes have been processed and eliminated, leaving pure Docbook. That's what I use. xmllint --catalogs --noout --xinclude --postvalid [etc.] It isn't a general solution, of course, so if you use other validators (such as a validating XML editor), you'll need to extend the DTD. -- Bob Stayton 400 Encinal Street Publications Architect Santa Cruz, CA 95060 Technical Publications voice: (831) 427-7796 Caldera International, Inc. fax: (831) 429-1887 email: [EMAIL PROTECTED]