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:
> > 
> > I am trying to validate two xml files using the modular document
> > technique that Bob Stayton shows in www.sagehill.net.

> From: Kevin.Ruscoe@ubsw.com 
> Hi John
> 
> We got XInclude to work as follows:
> 
> 1) All of our DocBook documents which use XInclude (and
> that's almost all of them) start like this:
> 
> =================================================
> <?xml version='1.0'?>
> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "docbookx.dtd"
> [
> <!ENTITY % xinclude PUBLIC "-//UBS//CORE//DTD XInclude V1.0//EN" "xinclude.dtd">
> %xinclude;
> ]
> >
> 
> <article>
>   <articleinfo><title>CDL Step-By-Step Instructions</title></articleinfo>
>   <xi:include href="../panels/panel_home.dbk"/>
> ...
> 
> 
> 4) Finally, here is our XInclude DTD, culled from the spec:
> =================================================
> <!-- public identifier "-//UBS//CORE//DTD XInclude V1.0//EN" -->
> 
> <!ELEMENT xi:include (xi:fallback)>
>     <!ATTLIST xi:include
>             xmlns:xi  CDATA #FIXED "http://www.w3.org/2001/XInclude";;         
>             href       CDATA #REQUIRED
>             parse      (xml|text) "xml"
>             encoding   CDATA #IMPLIED
>     >
> <!ELEMENT xi:fallback ANY>
>     <!ATTLIST xi:fallback
>             xmlns:xi   CDATA #FIXED "http://www.w3.org/2001/XInclude";;
>     >

Well, I don't think your article will validate with
just this extension to the DocBook DTD.  It adds the
xi:include element to the collection of elements, but
it doesn't put it into any content models of the DocBook
elements.  In the example, the <xi:include> element
is placed after the <articleinfo> element.  But the <article>
content model doesn't mention <xi:include>, so it
won't validate.  Only after the xi:include is replaced
with its content will it validate.

I started to extend the DocBook DTD to permit xi:include,
but I think it is kind of impossible (except for maybe
Norm 8^).  The xi:include element can replace *any*
element or group of elements, so the content models of
every element would get hopelessly complex.


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]