lib/asciidoctor/sample/isodoc.rng in metanorma-sample-1.0.10 vs lib/asciidoctor/sample/isodoc.rng in metanorma-sample-1.3.8

- old
+ new

@@ -16,33 +16,63 @@ for these elements, and a distinct namespace for any grammar inheriting these elements; we just want one namespace for any child grammars of this. --> <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> - <include href="biblio.rng"> - <define name="status"> - <element name="status"> - <choice> - <value>proposal</value> - <value>working_draft</value> - <value>committee_draft</value> - <value>draft_standard</value> - <value>final_draft</value> - <value>published</value> - <value>withdrawn</value> - </choice> + <include href="reqt.rng"/> + <!-- include "biblio.rnc" { } --> + <include href="basicdoc.rng"> + <start> + <ref name="standard-document"/> + </start> + <define name="BibDataExtensionType"> + <ref name="doctype"/> + <zeroOrMore> + <ref name="structuredidentifier"/> + </zeroOrMore> + </define> + <define name="TitleType"> + <text/> + </define> + <define name="sections"> + <element name="sections"> + <oneOrMore> + <choice> + <ref name="clause"/> + <ref name="terms"/> + <ref name="definitions"/> + </choice> + </oneOrMore> </element> </define> + <define name="references"> + <element name="references"> + <optional> + <attribute name="id"> + <data type="ID"/> + </attribute> + </optional> + <optional> + <ref name="section-title"/> + </optional> + <zeroOrMore> + <ref name="BasicBlock"/> + </zeroOrMore> + <zeroOrMore> + <ref name="bibitem"/> + <zeroOrMore> + <ref name="note"/> + </zeroOrMore> + </zeroOrMore> + </element> + </define> </include> - <start> - <ref name="standard-document"/> - </start> <define name="standard-document"> <element name="standard-document"> <ref name="bibdata"/> <optional> - <ref name="version"/> + <ref name="boilerplate"/> </optional> <optional> <ref name="preface"/> </optional> <ref name="sections"/> @@ -52,122 +82,136 @@ <zeroOrMore> <ref name="references"/> </zeroOrMore> </element> </define> - <define name="bibdata"> - <element name="bibdata"> - <ref name="BibData"/> + <define name="preface"> + <element name="preface"> + <oneOrMore> + <choice> + <ref name="content"/> + <ref name="abstract"/> + <ref name="foreword"/> + <ref name="introduction"/> + <ref name="acknowledgements"/> + </choice> + </oneOrMore> </element> </define> - <define name="version"> - <element name="version"> + <define name="foreword"> + <element name="foreword"> + <ref name="Content-Section"/> + </element> + </define> + <define name="introduction"> + <element name="introduction"> + <ref name="Content-Section"/> + </element> + </define> + <define name="boilerplate"> + <element name="boilerplate"> <optional> - <ref name="vedition"/> + <ref name="copyright-statement"/> </optional> <optional> - <ref name="revision-date"/> + <ref name="license-statement"/> </optional> - <zeroOrMore> - <ref name="draft"/> - </zeroOrMore> + <optional> + <ref name="legal-statement"/> + </optional> + <optional> + <ref name="feedback-statement"/> + </optional> </element> </define> - <define name="vedition"> - <element name="edition"> - <data type="int"/> + <define name="copyright-statement"> + <element name="copyright-statement"> + <ref name="Content-Section"/> </element> </define> - <define name="revision-date"> - <element name="revision-date"> - <data type="date"/> + <define name="license-statement"> + <element name="license-statement"> + <ref name="Content-Section"/> </element> </define> - <define name="draft"> - <element name="draft"> - <text/> + <define name="legal-statement"> + <element name="legal-statement"> + <ref name="Content-Section"/> </element> </define> - <define name="preface"> - <element name="preface"> - <oneOrMore> - <ref name="content"/> - </oneOrMore> + <define name="feedback-statement"> + <element name="feedback-statement"> + <ref name="Content-Section"/> </element> </define> - <define name="sections"> - <element name="sections"> - <oneOrMore> - <choice> - <ref name="content"/> - <ref name="clause"/> - <ref name="terms"/> - <ref name="definitions"/> - </choice> - </oneOrMore> - </element> - </define> <define name="definitions"> <element name="definitions"> <optional> <attribute name="id"> <data type="ID"/> </attribute> </optional> <optional> + <attribute name="language"/> + </optional> + <optional> + <attribute name="script"/> + </optional> + <optional> <ref name="section-title"/> </optional> - <ref name="dl"/> + <oneOrMore> + <zeroOrMore> + <ref name="BasicBlock"/> + </zeroOrMore> + <ref name="dl"/> + </oneOrMore> </element> </define> - <define name="section-title"> - <element name="title"> - <zeroOrMore> - <ref name="TextElement"/> - </zeroOrMore> + <define name="content"> + <element name="clause"> + <ref name="Content-Section"/> </element> </define> - <define name="content"> - <element name="content"> + <define name="abstract"> + <element name="abstract"> <ref name="Content-Section"/> </element> </define> + <define name="acknowledgements"> + <element name="acknowledgements"> + <ref name="Content-Section"/> + </element> + </define> <define name="content-subsection"> <element name="clause"> + <optional> + <attribute name="type"/> + </optional> <ref name="Content-Section"/> </element> </define> - <define name="Basic-Section"> + <define name="Content-Section"> <optional> <attribute name="id"> <data type="ID"/> </attribute> </optional> <optional> - <ref name="section-title"/> + <attribute name="language"/> </optional> - <oneOrMore> - <ref name="BasicBlock"/> - </oneOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </define> - <define name="Content-Section"> <optional> - <attribute name="id"> - <data type="ID"/> - </attribute> + <attribute name="script"/> </optional> <optional> <ref name="section-title"/> </optional> <choice> <group> - <oneOrMore> + <zeroOrMore> <ref name="BasicBlock"/> - </oneOrMore> + </zeroOrMore> <zeroOrMore> <ref name="note"/> </zeroOrMore> </group> <oneOrMore> @@ -175,33 +219,46 @@ </oneOrMore> </choice> </define> <define name="clause"> <element name="clause"> + <optional> + <attribute name="type"/> + </optional> <ref name="Clause-Section"/> </element> </define> <define name="Clause-Section"> <optional> <attribute name="id"> <data type="ID"/> </attribute> </optional> <optional> + <attribute name="language"/> + </optional> + <optional> + <attribute name="script"/> + </optional> + <optional> <ref name="section-title"/> </optional> <choice> <group> - <oneOrMore> + <zeroOrMore> <ref name="BasicBlock"/> - </oneOrMore> + </zeroOrMore> <zeroOrMore> <ref name="note"/> </zeroOrMore> </group> <oneOrMore> - <ref name="clause-subsection"/> + <choice> + <ref name="clause-subsection"/> + <ref name="terms"/> + <ref name="definitions"/> + </choice> </oneOrMore> </choice> </define> <define name="clause-subsection"> <element name="clause"> @@ -213,10 +270,16 @@ <optional> <attribute name="id"> <data type="ID"/> </attribute> </optional> + <optional> + <attribute name="language"/> + </optional> + <optional> + <attribute name="script"/> + </optional> <attribute name="obligation"> <choice> <value>normative</value> <value>informative</value> </choice> @@ -224,45 +287,39 @@ <optional> <ref name="section-title"/> </optional> <choice> <group> - <oneOrMore> + <zeroOrMore> <ref name="BasicBlock"/> - </oneOrMore> + </zeroOrMore> <zeroOrMore> <ref name="note"/> </zeroOrMore> </group> <oneOrMore> <ref name="clause-subsection"/> </oneOrMore> </choice> </element> </define> - <define name="references"> - <element name="references"> + <define name="terms"> + <element name="terms"> <optional> <attribute name="id"> <data type="ID"/> </attribute> </optional> <optional> - <ref name="section-title"/> + <attribute name="language"/> </optional> - <zeroOrMore> - <ref name="bibitem"/> - </zeroOrMore> - </element> - </define> - <define name="terms"> - <element name="terms"> <optional> - <attribute name="id"> - <data type="ID"/> - </attribute> + <attribute name="script"/> </optional> + <zeroOrMore> + <ref name="BasicBlock"/> + </zeroOrMore> <oneOrMore> <ref name="term"/> </oneOrMore> </element> </define> @@ -278,15 +335,21 @@ </oneOrMore> <zeroOrMore> <ref name="admitted"/> </zeroOrMore> <zeroOrMore> + <ref name="related"/> + </zeroOrMore> + <zeroOrMore> <ref name="deprecates"/> </zeroOrMore> <optional> <ref name="termdomain"/> </optional> + <zeroOrMore> + <ref name="termgrammar"/> + </zeroOrMore> <ref name="definition"/> <zeroOrMore> <ref name="termnote"/> </zeroOrMore> <zeroOrMore> @@ -309,10 +372,26 @@ <oneOrMore> <ref name="TextElement"/> </oneOrMore> </element> </define> + <define name="related"> + <element name="related"> + <optional> + <attribute name="type"> + <choice> + <value>compare</value> + <value>contrast</value> + <value>see</value> + </choice> + </attribute> + </optional> + <oneOrMore> + <ref name="TextElement"/> + </oneOrMore> + </element> + </define> <define name="deprecates"> <element name="deprecates"> <oneOrMore> <ref name="TextElement"/> </oneOrMore> @@ -323,10 +402,17 @@ <oneOrMore> <ref name="TextElement"/> </oneOrMore> </element> </define> + <define name="termgrammar"> + <element name="grammar"> + <oneOrMore> + <ref name="TextElement"/> + </oneOrMore> + </element> + </define> <define name="definition"> <element name="definition"> <ref name="paragraph"/> </element> </define> @@ -368,724 +454,61 @@ <define name="modification"> <element name="modification"> <ref name="paragraph"/> </element> </define> - <define name="BasicBlock"> - <choice> - <ref name="paragraph-with-footnote"/> - <ref name="table"/> - <ref name="formula"/> - <ref name="admonition"/> - <ref name="ol"/> - <ref name="ul"/> - <ref name="dl"/> - <ref name="figure"/> - <ref name="quote"/> - <ref name="sourcecode"/> - <ref name="example"/> - <ref name="review"/> - <ref name="pre"/> - </choice> - </define> - <define name="paragraph"> - <element name="p"> - <ref name="ParagraphType"/> - </element> - </define> - <define name="Alignments"> - <choice> - <value>left</value> - <value>right</value> - <value>center</value> - <value>justified</value> - </choice> - </define> - <define name="ParagraphType"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <optional> - <attribute name="align"> - <ref name="Alignments"/> - </attribute> - </optional> - <zeroOrMore> - <ref name="TextElement"/> - </zeroOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </define> - <define name="paragraph-with-footnote"> - <element name="p"> - <attribute name="id"> - <data type="ID"/> - </attribute> + <define name="structuredidentifier"> + <element name="structuredidentifier"> <optional> - <attribute name="align"> - <ref name="Alignments"/> - </attribute> + <attribute name="type"/> </optional> - <zeroOrMore> - <choice> - <ref name="TextElement"/> - <ref name="fn"/> - </choice> - </zeroOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="note"> - <element name="note"> - <attribute name="id"> - <data type="ID"/> - </attribute> <oneOrMore> - <ref name="paragraph"/> + <element name="agency"> + <text/> + </element> </oneOrMore> - </element> - </define> - <define name="review"> - <element name="review"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <attribute name="reviewer"/> <optional> - <attribute name="date"> - <data type="dateTime"/> - </attribute> + <element name="class"> + <text/> + </element> </optional> - <attribute name="from"> - <data type="IDREF"/> - </attribute> + <element name="docnumber"> + <text/> + </element> <optional> - <attribute name="to"> - <data type="IDREF"/> - </attribute> + <element name="partnumber"> + <text/> + </element> </optional> - <oneOrMore> - <ref name="paragraph"/> - </oneOrMore> - </element> - </define> - <define name="formula"> - <element name="formula"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <ref name="stem"/> <optional> - <ref name="dl"/> + <element name="edition"> + <text/> + </element> </optional> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="quote"> - <element name="quote"> - <attribute name="id"> - <data type="ID"/> - </attribute> <optional> - <attribute name="alignment"> - <ref name="Alignments"/> - </attribute> + <element name="version"> + <text/> + </element> </optional> <optional> - <ref name="quote-source"/> + <element name="supplementtype"> + <text/> + </element> </optional> <optional> - <ref name="quote-author"/> + <element name="supplementnumber"> + <text/> + </element> </optional> - <oneOrMore> - <ref name="paragraph-with-footnote"/> - </oneOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="quote-source"> - <element name="source"> - <ref name="erefType"/> - </element> - </define> - <define name="quote-author"> - <element name="author"> - <text/> - </element> - </define> - <define name="sourcecode"> - <element name="sourcecode"> - <attribute name="id"> - <data type="ID"/> - </attribute> <optional> - <ref name="tname"/> - </optional> - <oneOrMore> - <choice> + <element name="language"> <text/> - <ref name="callout"/> - </choice> - </oneOrMore> - <zeroOrMore> - <ref name="annotation"/> - </zeroOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="pre"> - <element name="pre"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <optional> - <ref name="tname"/> + </element> </optional> - <text/> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="table"> - <element name="table"> - <attribute name="id"> - <data type="ID"/> - </attribute> <optional> - <ref name="tname"/> + <element name="year"> + <text/> + </element> </optional> - <optional> - <ref name="thead"/> - </optional> - <ref name="tbody"/> - <optional> - <ref name="tfoot"/> - </optional> - <zeroOrMore> - <ref name="table-note"/> - </zeroOrMore> - <optional> - <ref name="dl"/> - </optional> </element> - </define> - <define name="tname"> - <element name="name"> - <text/> - </element> - </define> - <define name="thead"> - <element name="thead"> - <ref name="tr"/> - </element> - </define> - <define name="tfoot"> - <element name="tfoot"> - <ref name="tr"/> - </element> - </define> - <define name="tbody"> - <element name="tbody"> - <oneOrMore> - <ref name="tr"/> - </oneOrMore> - </element> - </define> - <define name="table-note"> - <element name="note"> - <ref name="paragraph"/> - </element> - </define> - <define name="tr"> - <element name="tr"> - <oneOrMore> - <choice> - <ref name="td"/> - <ref name="th"/> - </choice> - </oneOrMore> - </element> - </define> - <define name="td"> - <element name="td"> - <optional> - <attribute name="colspan"/> - </optional> - <optional> - <attribute name="rowspan"/> - </optional> - <optional> - <attribute name="align"> - <choice> - <value>left</value> - <value>right</value> - <value>center</value> - </choice> - </attribute> - </optional> - <choice> - <zeroOrMore> - <ref name="TextElement"/> - </zeroOrMore> - <oneOrMore> - <ref name="paragraph-with-footnote"/> - </oneOrMore> - </choice> - </element> - </define> - <define name="th"> - <element name="th"> - <optional> - <attribute name="colspan"/> - </optional> - <optional> - <attribute name="rowspan"/> - </optional> - <optional> - <attribute name="align"> - <choice> - <value>left</value> - <value>right</value> - <value>center</value> - </choice> - </attribute> - </optional> - <choice> - <zeroOrMore> - <ref name="TextElement"/> - </zeroOrMore> - <oneOrMore> - <ref name="paragraph-with-footnote"/> - </oneOrMore> - </choice> - </element> - </define> - <define name="example"> - <element name="example"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <oneOrMore> - <choice> - <ref name="formula"/> - <ref name="ul"/> - <ref name="ol"/> - <ref name="dl"/> - <ref name="quote"/> - <ref name="sourcecode"/> - <ref name="paragraph-with-footnote"/> - </choice> - </oneOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="admonition"> - <element name="admonition"> - <attribute name="type"> - <choice> - <value>warning</value> - <value>note</value> - <value>tip</value> - <value>important</value> - <value>caution</value> - </choice> - </attribute> - <attribute name="id"> - <data type="ID"/> - </attribute> - <zeroOrMore> - <ref name="paragraph-with-footnote"/> - </zeroOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="figure"> - <element name="figure"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <optional> - <ref name="source"/> - </optional> - <optional> - <ref name="tname"/> - </optional> - <choice> - <ref name="image"/> - <ref name="pre"/> - <zeroOrMore> - <ref name="figure"/> - </zeroOrMore> - </choice> - <zeroOrMore> - <ref name="fn"/> - </zeroOrMore> - <optional> - <ref name="dl"/> - </optional> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="TextElement"> - <choice> - <text/> - <ref name="em"/> - <ref name="eref"/> - <ref name="strong"/> - <ref name="stem"/> - <ref name="sub"/> - <ref name="sup"/> - <ref name="tt"/> - <ref name="keyword"/> - <ref name="strike"/> - <ref name="smallcap"/> - <ref name="xref"/> - <ref name="br"/> - <ref name="hyperlink"/> - <ref name="hr"/> - <ref name="pagebreak"/> - <ref name="bookmark"/> - </choice> - </define> - <define name="source"> - <element name="source"> - <ref name="TypedUri"/> - </element> - </define> - <define name="em"> - <element name="em"> - <text/> - </element> - </define> - <define name="strong"> - <element name="strong"> - <text/> - </element> - </define> - <define name="tt"> - <element name="tt"> - <text/> - </element> - </define> - <define name="keyword"> - <element name="keyword"> - <text/> - </element> - </define> - <define name="sub"> - <element name="sub"> - <text/> - </element> - </define> - <define name="sup"> - <element name="sup"> - <text/> - </element> - </define> - <define name="strike"> - <element name="strike"> - <text/> - </element> - </define> - <define name="smallcap"> - <element name="smallcap"> - <text/> - </element> - </define> - <define name="br"> - <element name="br"> - <empty/> - </element> - </define> - <define name="hr"> - <element name="hr"> - <empty/> - </element> - </define> - <define name="pagebreak"> - <element name="pagebreak"> - <empty/> - </element> - </define> - <!-- bare ID element, used for referencing arbitrary spans of text --> - <define name="bookmark"> - <element name="bookmark"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <empty/> - </element> - </define> - <define name="ReferenceFormat"> - <choice> - <value>external</value> - <value>inline</value> - <value>footnote</value> - <value>callout</value> - </choice> - </define> - <define name="eref"> - <element name="eref"> - <ref name="erefType"/> - </element> - </define> - <define name="erefType"> - <optional> - <attribute name="normative"> - <data type="boolean"/> - </attribute> - </optional> - <attribute name="citeas"/> - <attribute name="type"> - <ref name="ReferenceFormat"/> - </attribute> - <ref name="CitationType"/> - <text/> - </define> - <define name="hyperlink"> - <element name="link"> - <attribute name="target"> - <data type="anyURI"/> - </attribute> - <attribute name="type"> - <ref name="ReferenceFormat"/> - </attribute> - <text/> - </element> - </define> - <define name="xref"> - <element name="xref"> - <attribute name="target"> - <data type="IDREF"/> - </attribute> - <attribute name="type"> - <ref name="ReferenceFormat"/> - </attribute> - <text/> - </element> - </define> - <define name="fn"> - <element name="fn"> - <attribute name="reference"/> - <oneOrMore> - <ref name="paragraph"/> - </oneOrMore> - </element> - </define> - <!-- - This is xref with fixed @type="footnote", and @target built in as paragraph+ - @reference replaces ReferenceElement/text - so <fn reference="2"><p>This is a footnote</p></fn> - corresponds to - <eref type="footnote" target="fn2">2</xref> <p id="fn2">This is a footnote</p> - --> - <define name="callout"> - <element name="callout"> - <attribute name="target"> - <data type="IDREF"/> - </attribute> - <text/> - </element> - </define> - <!-- - This is xref with fixed @type="callout"; the target by convention is in an annotation in the same source code snippet - so <callout target="xyz">1</callout> - corresponds to <xref type="callout" target="xyz">1</xref> - --> - <define name="image"> - <element name="image"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <optional> - <attribute name="src"> - <data type="anyURI"/> - </attribute> - </optional> - <attribute name="imagetype"> - <choice> - <value>SVG</value> - <value>JPEG</value> - <value>GIF</value> - <value>PNG</value> - <value>PDF</value> - </choice> - </attribute> - <optional> - <attribute name="width"> - <choice> - <data type="int"/> - <value>auto</value> - </choice> - </attribute> - </optional> - <optional> - <attribute name="height"> - <choice> - <data type="int"/> - <value>auto</value> - </choice> - </attribute> - </optional> - </element> - </define> - <define name="stem"> - <element name="stem"> - <attribute name="type"> - <choice> - <value>MathML</value> - <value>AsciiMath</value> - </choice> - </attribute> - <text/> - </element> - </define> - <define name="annotation"> - <element name="annotation"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <ref name="paragraph"/> - </element> - </define> - <define name="ul"> - <element name="ul"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <oneOrMore> - <ref name="li"/> - </oneOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="li"> - <element name="li"> - <optional> - <attribute name="id"> - <data type="ID"/> - </attribute> - </optional> - <oneOrMore> - <ref name="paragraph-with-footnote"/> - </oneOrMore> - </element> - </define> - <define name="ol"> - <element name="ol"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <attribute name="type"> - <choice> - <value>roman</value> - <value>alphabet</value> - <value>arabic</value> - <value>roman_upper</value> - <value>alphabet_upper</value> - </choice> - </attribute> - <oneOrMore> - <ref name="li"/> - </oneOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="dl"> - <element name="dl"> - <attribute name="id"> - <data type="ID"/> - </attribute> - <oneOrMore> - <ref name="dt"/> - <ref name="dd"/> - </oneOrMore> - <zeroOrMore> - <ref name="note"/> - </zeroOrMore> - </element> - </define> - <define name="dt"> - <element name="dt"> - <zeroOrMore> - <ref name="TextElement"/> - </zeroOrMore> - </element> - </define> - <define name="dd"> - <element name="dd"> - <zeroOrMore> - <ref name="paragraph-with-footnote"/> - </zeroOrMore> - </element> - </define> - <define name="BibData"> - <optional> - <attribute name="type"> - <ref name="BibItemType"/> - </attribute> - </optional> - <oneOrMore> - <ref name="btitle"/> - </oneOrMore> - <optional> - <ref name="formattedref"/> - </optional> - <zeroOrMore> - <ref name="bsource"/> - </zeroOrMore> - <zeroOrMore> - <ref name="docidentifier"/> - </zeroOrMore> - <optional> - <ref name="docnumber"/> - </optional> - <zeroOrMore> - <ref name="bdate"/> - </zeroOrMore> - <zeroOrMore> - <ref name="contributor"/> - </zeroOrMore> - <optional> - <ref name="edition"/> - </optional> - <zeroOrMore> - <ref name="biblionote"/> - </zeroOrMore> - <zeroOrMore> - <ref name="language"/> - </zeroOrMore> - <zeroOrMore> - <ref name="script"/> - </zeroOrMore> - <optional> - <ref name="abstract"/> - </optional> - <optional> - <ref name="status"/> - </optional> - <ref name="copyright"/> - <zeroOrMore> - <ref name="docrelation"/> - </zeroOrMore> </define> </grammar>