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


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
>
>
> 



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