Newer
Older
ade-outils-xml / dtd / Wileyml3gv20-rng / Wileyml3g-lists.rng
@niederle niederle on 29 Dec 2015 7 KB 1er commit
<?xml version="1.0" encoding="UTF-8"?>
<!--
  =============================================================================================
  WileyML 3G
  
  A model for the content of John Wiley &amp; Sons. 
  
  This file conforms to ISO/IEC 19757-2:2003 AMENDMENT 1 (RELAX NG Compact Syntax). The
  collection of these files normatively defines the XML grammar for WileyNG instances.
  
  Copyright (c) 2011 John Wiley & Sons Inc. All rights reserved worldwide.
  
  $Id: Wileyml3g-lists.rnc,v 1.21 2011/07/24 07:29:45 johnp Exp $
  =============================================================================================
-->
<grammar xmlns:cms="http://cms.wiley.com" xmlns:wng="http://www.wiley.com/namespaces/wiley" xmlns:aux="http://www.wiley.com/namespaces/wiley/aux" xmlns="http://relaxng.org/ns/structure/1.0">
  <!--
    Changes for v2.0 (Aug 2011)
      1. <listItem>: Added <figure>, <tabular>, <feature> to model.
  -->
  <!--
    =============================================================================================
    list element
    =============================================================================================
  -->
  <define name="wng.list.attlist">
    <interleave>
      <ref name="pattern.global.attributes"/>
      <optional>
        <ref name="pattern.id.attribute"/>
      </optional>
      <optional>
        <attribute name="style">
          <aux:desc>list enumeration style (default value is plain)</aux:desc>
          <ref name="pattern.list.style.tokens"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="formatted">
          <aux:desc>additional formatting (default value is hanging)</aux:desc>
          <choice>
            <value>hanging</value>
            <value>paragraph</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="compact">
          <aux:desc>hint whether to render compactly (default value is yes)</aux:desc>
          <ref name="pattern.boolean.tokens"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="continuationOfRef">
          <aux:desc>points to any earlier list this list is a continuation of</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="cms:continuationOfRef">
          <aux:desc>!suppress!</aux:desc>
        </attribute>
      </optional>
    </interleave>
  </define>
  <define name="wng.list">
    <element name="wng:list">
      <aux:desc aux:cat="list">A list.</aux:desc>
      <ref name="wng.list.attlist"/>
      <optional>
        <ref name="pattern.model.fragment.titling"/>
      </optional>
      <zeroOrMore>
        <ref name="wng.p"/>
      </zeroOrMore>
      <oneOrMore>
        <ref name="wng.listItem"/>
      </oneOrMore>
    </element>
  </define>
  <!--
    =============================================================================================
    listItem element
    =============================================================================================
  -->
  <define name="wng.listItem.attlist">
    <interleave>
      <ref name="pattern.global.attributes"/>
      <optional>
        <ref name="pattern.id.attribute"/>
      </optional>
      <optional>
        <ref name="pattern.autonumber.attribute"/>
      </optional>
    </interleave>
  </define>
  <define name="wng.listItem">
    <element name="wng:listItem">
      <aux:desc aux:cat="list">An item in a list.</aux:desc>
      <ref name="wng.listItem.attlist"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="wng.label"/>
          <ref name="wng.title"/>
          <ref name="pattern.model.fragment.para.model"/>
          <ref name="wng.p"/>
          <ref name="wng.figure"/>
          <ref name="wng.tabular"/>
          <ref name="wng.feature"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <!--
    =============================================================================================
    listItemPair element
    =============================================================================================
  -->
  <define name="wng.listItemPair.attlist">
    <ref name="pattern.global.attributes"/>
  </define>
  <define name="wng.listItemPair">
    <element name="wng:listItemPair">
      <aux:desc aux:cat="list">An associated pair (or more) of list items.</aux:desc>
      <ref name="wng.listItemPair.attlist"/>
      <ref name="wng.listItem"/>
      <oneOrMore>
        <ref name="wng.listItem"/>
      </oneOrMore>
    </element>
  </define>
  <!--
    =============================================================================================
    listPaired element
    =============================================================================================
  -->
  <define name="wng.listPaired.attlist">
    <interleave>
      <ref name="pattern.global.attributes"/>
      <optional>
        <ref name="pattern.id.attribute"/>
      </optional>
      <optional>
        <attribute name="compact">
          <aux:desc>hints whether to render compactly (default value is yes)</aux:desc>
          <ref name="pattern.boolean.tokens"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="style">
          <aux:desc>list enumeration style (default value is plain)</aux:desc>
          <ref name="pattern.list.style.tokens"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="continuationOfRef">
          <aux:desc>points to any earlier listPaired this listPaired is a continuation of</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="cms:continuationOfRef">
          <aux:desc>!suppress!</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="alignAsRef">
          <aux:desc>point to any listPaired this list should use the same column alignment as</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="cms:alignAsRef">
          <aux:desc>!suppress!</aux:desc>
        </attribute>
      </optional>
    </interleave>
  </define>
  <define name="wng.listPaired">
    <element name="wng:listPaired">
      <aux:desc aux:cat="list">A list of pairs of items, such as terms and definitions.</aux:desc>
      <ref name="wng.listPaired.attlist"/>
      <optional>
        <ref name="pattern.model.fragment.titling"/>
      </optional>
      <optional>
        <ref name="wng.listPairHead"/>
      </optional>
      <oneOrMore>
        <ref name="wng.listItemPair"/>
      </oneOrMore>
    </element>
  </define>
  <!--
    =============================================================================================
    listPairHead element
    =============================================================================================
  -->
  <define name="wng.listPairHead.attlist">
    <ref name="pattern.global.attributes"/>
  </define>
  <define name="wng.listPairHead">
    <element name="wng:listPairHead">
      <aux:desc aux:cat="list">List headings for a listPaired.</aux:desc>
      <ref name="wng.listPairHead.attlist"/>
      <ref name="pattern.model.fragment.titling"/>
      <ref name="pattern.model.fragment.titling"/>
    </element>
  </define>
</grammar>