<?xml version="1.0" encoding="UTF-8"?> <!-- ============================================================================================= WileyML 3G A model for the content of John Wiley & 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>