OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] Content model of section is not determinist


Hi Bob.

I understand what you are saying. It is useful for us to compile
individual sections of the document, so I'll keep using xi:include for
sections. However, I decided to remove the modification of the DTD
that allows xi:include in place of refentry. Instead I will use use an
ENTITY based approach for including the refentry files. I wont be able
to include the XML and DTD declarations in the refentry files, but
that doesn't matter. I am not interested in compiling refentrys as
documents in their own right. If I want to validate them individually,
I'll just have to manually specify the DTD for validation tool I am
using (via the command line or whatever mechanism it provides for
doing so).

Thanks once again for your help.

Paul

2009/7/2 Bob Stayton <bobs@sagehill.net>:
> I can tell you what is generating that error, but I'm not sure how to fix
> it.  When the DTD resolves with your additional parameter entities, you get
> this:
>
> ((refentry | xi:include)* | (section | xi:include)* | simplesect*))
>
> and
>
> (refentry | xi:include)+ | (section | xi:include)+ | simplesect+)
>
> The XML standard http://www.w3.org/TR/REC-xml/#sec-element-content says:
>
> "it is an error if the content model allows an element to match more than
> one occurrence of an element type in the content model"
>
> An xi:include element can match in either of two places in both of these
> parts of the content model, so that generates the deterministic error.  So
> it looks like you can extend refentry, or section, but not both.
>
> Or manually rewrite the content model for section, but I'm not clear on what
> it should be.  The section content model is kind of convoluted because it is
> designed to prevent mixing of refentry, section, and simplesect children
> within the same section.
>
> Bob Stayton
> Sagehill Enterprises
> bobs@sagehill.net
>
>
> ----- Original Message ----- From: "Paul Suckling" <paul.suckling@gmail.com>
> To: "apps docbook" <docbook-apps@lists.oasis-open.org>
> Sent: Wednesday, July 01, 2009 4:39 PM
> Subject: [docbook-apps] Content model of section is not determinist
>
>
>> Hi there.
>>
>> I am having what I believe to be a problem with my DTD which is
>> causing my documents to fail validation with xmllint.
>>
>> I am using a DTD that is customised to allow the inclusion of
>> xi:includes and mathml at certain places within the document. This is
>> what the customisation (UG.dtd) looks like:
>>
>>
>> ----------------------------------------------------------------------------------------------
>> <!-- xinclude entities -->
>> <!ELEMENT xi:include (xi:fallback?) >
>> <!ATTLIST xi:include
>>   xmlns:xi   CDATA       #FIXED    "http://www.w3.org/2001/XInclude";
>>   href       CDATA       #IMPLIED
>>   parse      (xml|text)  "xml"
>>   xpointer   CDATA       #IMPLIED
>>   encoding   CDATA       #IMPLIED
>>   accept     CDATA       #IMPLIED
>>   accept-language CDATA  #IMPLIED >
>>
>> <!ELEMENT xi:fallback ANY>
>> <!ATTLIST xi:fallback
>>   xmlns:xi   CDATA   #FIXED   "http://www.w3.org/2001/XInclude"; >
>>
>> <!-- can replace a chapter by an xinclude pointing to a chapter -->
>> <!ENTITY % local.chapter.class "| xi:include">
>> <!-- can replace a section by an xinclude pointing to a section -->
>> <!ENTITY % local.section.class "| xi:include">
>> <!-- can replace a refentry by an xinclude pointing to a refentry -->
>> <!ENTITY % local.refentry.class "| xi:include">
>> <!-- inside chapter or section elements -->
>> <!--<!ENTITY % local.divcomponent.mix "| xi:include">-->
>> <!-- inside para, programlisting, literallayout, etc. -->
>> <!ENTITY % local.para.char.mix "| xi:include">
>> <!-- inside bookinfo, chapterinfo, etc. -->
>> <!ENTITY % local.info.class "| xi:include">
>> <!-- inside equations
>> <!ENTITY % equation.math "| xi:include">
>> <!ENTITY % inlineequation.math "| xi:include">
>> <!ENTITY % informalequation.math "| xi:include">
>> -->
>>
>> <!-- MathML entities -->
>> <!ENTITY % MATHML.prefixed "INCLUDE">
>> <!ENTITY % MATHML.prefix "mml">
>> <!ENTITY % equation.content "(alt?,
>> (graphic+|mediaobject+|xi:include+|mathphrase+|mml:math))">
>> <!ENTITY % inlineequation.content "(alt?,
>> (graphic+|inlinemediaobject+|xi:include+|mathphrase+|mml:math))">
>> <!ENTITY % informalequation.content "(alt?,
>> (graphic+|informalequation+|xi:include+|mathphrase+|mml:math))">
>> <!ENTITY % mathml PUBLIC "-//W3C//DTD MathML 2.0//EN"
>> "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd";>
>> %mathml;
>>
>> ----------------------------------------------------------------------------------------------
>>
>> However, when I try to validate a simple document:
>>
>>
>> ----------------------------------------------------------------------------------------------
>> <?xml version="1.0" encoding="UTF-8"?>
>> <!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
>>   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"; [
>>   <!ENTITY % UG SYSTEM "../UG.dtd">
>>   %UG;
>> ]>
>> <section >
>>  <title>Title</title>
>>  <para>
>>   This is a para.
>>  </para>
>> </section>
>>
>> ----------------------------------------------------------------------------------------------
>>
>> using
>>
>> xmllint --noout --valid --postvalid test.xml
>>
>> I get the error
>>
>>
>> ----------------------------------------------------------------------------------------------
>> test.xml:0: validity error : Content model of section is not de
>> terminist: (sectioninfo? , (title , subtitle? , titleabbrev?) , (toc | lot
>> | ind
>> ex | glossary | bibliography)* , (((calloutlist | glosslist | bibliolist |
>> itemi
>> zedlist | orderedlist | segmentedlist | simplelist | variablelist |
>> caution | im
>> portant | note | tip | warning | literallayout | programlisting |
>> programlisting
>> co | screen | screenco | screenshot | synopsis | cmdsynopsis |
>> funcsynopsis | cl
>> asssynopsis | fieldsynopsis | constructorsynopsis | destructorsynopsis |
>> methods
>> ynopsis | formalpara | para | simpara | address | blockquote | graphic |
>> graphic
>> co | mediaobject | mediaobjectco | informalequation | informalexample |
>> informal
>> figure | informaltable | equation | example | figure | table | msgset |
>> procedur
>> e | sidebar | qandaset | task | anchor | bridgehead | remark | highlights
>> | abst
>> ract | authorblurb | epigraph | indexterm | beginpage)+ , ((refentry |
>> xi:includ
>> e)* | (section | xi:include)* | simplesect*)) | (refentry | xi:include)+ |
>> (sect
>> ion | xi:include)+ | simplesect+) , (toc | lot | index | glossary |
>> bibliography
>> )*)
>>
>> ----------------------------------------------------------------------------------------------
>>
>> Does anyone know what's going wrong here? I suspect that I have
>> incorrectly defined my xi:include within the DTD or something like
>> that, but I am not sure.
>>
>> Thank you.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>>
>>
>>
>
>



-- 
Nashi Power.
http://nashi.podzone.org/
Registered address: 7 Trescoe Gardens, Harrow, Middx., U.K.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]