← Prev in month ← Prev in thread
Next in thread → Next in month →

UPA violation in DocBook v5.1CR3 schema, model group component.contentmodel

From
[email protected] <>
Date
2015-03-04T17:29:00+00:00
ID
Thread
UPA violation in DocBook v5.1CR3 schema, model group component.contentmodel
schema: 
http://docbook.org/xsd/5.1CR3/docbook.xsd

 

according to 
http://www.w3.org/TR/xmlschema11-1/#sec-cos-nonambig the components in db:navigation.components refrenced as first and last element in the sequence of group navigation.components violate the UPA constraint because the middle refrence to db:toplevel.blocks.or.sections
 is emptiable and  “… particles at different points in the content model are always distinct from one another, even if they originated from the same named model group.” (quote from the spec link above)

 

the content model in group

  <xs:group name="component.contentmodel">

    <xs:sequence>

      <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>

      <xs:group ref="db:toplevel.blocks.or.sections"/> <<<<<< IS EMPTIABLE!

      <xs:group ref="db:navigation.components" minOccurs="0" maxOccurs="unbounded"/>

    </xs:sequence>

  </xs:group>

contains an UPA violation; 

 

the reference to group db:toplevel.blocks.or.sections is emptiable

  <xs:group name="toplevel.blocks.or.sections">

    <xs:choice> 

      <xs:sequence>

        <xs:group ref="db:all.blocks" maxOccurs="unbounded"/>

        <xs:group ref="db:toplevel.sections" minOccurs="0"/>

      </xs:sequence>

      <xs:group ref="db:toplevel.sections"/> <<<<<< IS EMPTIABLE!

    </xs:choice>

  </xs:group>

because reference to group db:toplevel.sections is emptiable

 

  <xs:group name="toplevel.sections">

    <xs:choice> 

      <xs:sequence> <<<<<< IS EMPTIABLE!

        <xs:element ref="db:section" minOccurs="0" maxOccurs="unbounded"/>

        <xs:element ref="db:simplesect" minOccurs="0" maxOccurs="unbounded"/>

      </xs:sequence>

      …

    </xs:choice>

  </xs:group>

because the 1st sequence in the choice is emptiable.

 

best regards,

-- 

edmund vorauer

Altova GmbH
← Prev in month ← Prev in thread
Next in thread → Next in month →