This is the mail archive of the docbook-apps@lists.oasis-open.org mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: XInclude doesn't validate with xmllint


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: bobs@caldera.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]