RelaxNG/publidoc.rng
changeset 17 ca367d4d080b
parent 12 2885b2c3ff59
child 20 79713ffae179
equal deleted inserted replaced
15:341a2845bc0b 17:ca367d4d080b
   398   <!--
   398   <!--
   399     =============================================================================
   399     =============================================================================
   400                                     Block level
   400                                     Block level
   401     =============================================================================
   401     =============================================================================
   402   -->
   402   -->
   403   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ blocks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   403   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ block ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   404   <define name="block">
   404   <define name="block">
   405     <choice>
   405     <choice>
   406       <ref name="parag"/>
   406       <ref name="parag"/>
   407       <ref name="list"/>
   407       <ref name="list"/>
       
   408       <ref name="table"/>
   408       <ref name="speech"/>
   409       <ref name="speech"/>
   409       <ref name="media"/>
   410       <ref name="media"/>
   410     </choice>
   411     </choice>
   411   </define>
   412   </define>
   412   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ parag ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   413   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ parag ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   421       <zeroOrMore>
   422       <zeroOrMore>
   422         <ref name="link"/>
   423         <ref name="link"/>
   423       </zeroOrMore>
   424       </zeroOrMore>
   424     </interleave>
   425     </interleave>
   425   </define>
   426   </define>
   426   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ list ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   427   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ list ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   427   <!-- ~~~~~~ list -->
   428   <!-- ~~~~~~ list -->
   428   <define name="list">
   429   <define name="list">
   429     <element name="list">
   430     <element name="list">
   430       <ref name="list.content"/>
   431       <ref name="list.content"/>
   431     </element>
   432     </element>
   486     </element>
   487     </element>
   487   </define>
   488   </define>
   488   <define name="label.content">
   489   <define name="label.content">
   489     <ref name="inlines"/>
   490     <ref name="inlines"/>
   490   </define>
   491   </define>
       
   492   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
       
   493   <define name="table">
       
   494     <element name="table">
       
   495       <ref name="table.content"/>
       
   496     </element>
       
   497   </define>
       
   498   <define name="table.content">
       
   499     <optional>
       
   500       <ref name="title"/>
       
   501     </optional>
       
   502     <oneOrMore>
       
   503       <ref name="tgroup"/>
       
   504     </oneOrMore>
       
   505     <optional>
       
   506       <ref name="caption"/>
       
   507     </optional>
       
   508   </define>
       
   509   <!-- ~~~~~~ tgroup -->
       
   510   <define name="tgroup">
       
   511     <element name="tgroup">
       
   512       <ref name="tgroup.attributes"/>
       
   513       <ref name="tgroup.content"/>
       
   514     </element>
       
   515   </define>
       
   516   <define name="tgroup.content">
       
   517     <optional>
       
   518       <ref name="thead"/>
       
   519     </optional>
       
   520     <optional>
       
   521       <ref name="tfoot"/>
       
   522     </optional>
       
   523     <ref name="tbody"/>
       
   524   </define>
       
   525   <define name="tgroup.attributes">
       
   526     <interleave>
       
   527       <ref name="cols.attribute"/>
       
   528       <optional>
       
   529         <ref name="align.attribute"/>
       
   530       </optional>
       
   531       <optional>
       
   532         <ref name="colsep.attribute"/>
       
   533       </optional>
       
   534       <optional>
       
   535         <ref name="rowsep.attribute"/>
       
   536       </optional>
       
   537     </interleave>
       
   538   </define>
       
   539   <define name="cols.attribute">
       
   540     <attribute name="cols">
       
   541       <data type="positiveInteger"/>
       
   542     </attribute>
       
   543   </define>
       
   544   <define name="align.attribute">
       
   545     <attribute name="align">
       
   546       <choice>
       
   547         <value>left</value>
       
   548         <value>right</value>
       
   549         <value>center</value>
       
   550         <value>justify</value>
       
   551       </choice>
       
   552     </attribute>
       
   553   </define>
       
   554   <define name="colsep.attribute">
       
   555     <attribute name="colsep">
       
   556       <choice>
       
   557         <value>0</value>
       
   558         <value>1</value>
       
   559       </choice>
       
   560     </attribute>
       
   561   </define>
       
   562   <define name="rowsep.attribute">
       
   563     <attribute name="rowsep">
       
   564       <choice>
       
   565         <value>0</value>
       
   566         <value>1</value>
       
   567       </choice>
       
   568     </attribute>
       
   569   </define>
       
   570   <!-- ~~~~~~ thead, tfoot, tbody -->
       
   571   <define name="thead">
       
   572     <element name="thead">
       
   573       <ref name="thead.content"/>
       
   574     </element>
       
   575   </define>
       
   576   <define name="tfoot">
       
   577     <element name="tfoot">
       
   578       <ref name="tfoot.content"/>
       
   579     </element>
       
   580   </define>
       
   581   <define name="tbody">
       
   582     <element name="tbody">
       
   583       <ref name="tbody.content"/>
       
   584     </element>
       
   585   </define>
       
   586   <define name="thead.content">
       
   587     <oneOrMore>
       
   588       <ref name="row"/>
       
   589     </oneOrMore>
       
   590   </define>
       
   591   <define name="tfoot.content">
       
   592     <oneOrMore>
       
   593       <ref name="row"/>
       
   594     </oneOrMore>
       
   595   </define>
       
   596   <define name="tbody.content">
       
   597     <oneOrMore>
       
   598       <ref name="row"/>
       
   599     </oneOrMore>
       
   600   </define>
       
   601   <!-- ~~~~~~ row -->
       
   602   <define name="row">
       
   603     <element name="row">
       
   604       <ref name="row.attribute"/>
       
   605       <ref name="row.content"/>
       
   606     </element>
       
   607   </define>
       
   608   <define name="row.attribute">
       
   609     <optional>
       
   610       <ref name="valign.attribute"/>
       
   611     </optional>
       
   612   </define>
       
   613   <define name="valign.attribute">
       
   614     <attribute name="valign">
       
   615       <choice>
       
   616         <value>top</value>
       
   617         <value>middle</value>
       
   618         <value>bottom</value>
       
   619       </choice>
       
   620     </attribute>
       
   621   </define>
       
   622   <define name="row.content">
       
   623     <oneOrMore>
       
   624       <ref name="entry"/>
       
   625     </oneOrMore>
       
   626   </define>
       
   627   <!-- ~~~~~~ entry -->
       
   628   <define name="entry">
       
   629     <element name="entry">
       
   630       <ref name="entry.content"/>
       
   631     </element>
       
   632   </define>
       
   633   <define name="entry.content">
       
   634     <choice>
       
   635       <ref name="inlines"/>
       
   636       <oneOrMore>
       
   637         <ref name="parag"/>
       
   638       </oneOrMore>
       
   639     </choice>
       
   640   </define>
       
   641   <!-- ~~~~~~ caption -->
       
   642   <define name="caption">
       
   643     <element name="caption">
       
   644       <ref name="caption.content"/>
       
   645     </element>
       
   646   </define>
       
   647   <define name="caption.content">
       
   648     <oneOrMore>
       
   649       <ref name="parag"/>
       
   650     </oneOrMore>
       
   651   </define>
   491   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   652   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   492   <!-- ~~~~~~ speech -->
   653   <!-- ~~~~~~ speech -->
   493   <define name="speech">
   654   <define name="speech">
   494     <element name="speech">
   655     <element name="speech">
   495       <ref name="speech.content"/>
   656       <ref name="speech.content"/>
   534   <define name="media.content">
   695   <define name="media.content">
   535     <oneOrMore>
   696     <oneOrMore>
   536       <ref name="image"/>
   697       <ref name="image"/>
   537     </oneOrMore>
   698     </oneOrMore>
   538     <optional>
   699     <optional>
   539       <ref name="media.caption"/>
   700       <ref name="caption"/>
   540     </optional>
   701     </optional>
   541   </define>
       
   542   <define name="media.id.attribute">
       
   543     <attribute name="id">
       
   544       <data type="NMTOKEN"/>
       
   545     </attribute>
       
   546   </define>
   702   </define>
   547   <!-- ~~~~~~ image -->
   703   <!-- ~~~~~~ image -->
   548   <define name="image">
   704   <define name="image">
   549     <element name="image">
   705     <element name="image">
   550       <ref name="image.attributes"/>
   706       <ref name="image.attributes"/>
   552     </element>
   708     </element>
   553   </define>
   709   </define>
   554   <define name="image.attributes">
   710   <define name="image.attributes">
   555     <ref name="media.id.attribute"/>
   711     <ref name="media.id.attribute"/>
   556   </define>
   712   </define>
       
   713   <define name="media.id.attribute">
       
   714     <attribute name="id">
       
   715       <data type="NMTOKEN"/>
       
   716     </attribute>
       
   717   </define>
   557   <define name="image.content">
   718   <define name="image.content">
   558     <optional>
   719     <optional>
   559       <ref name="copyright"/>
   720       <ref name="copyright"/>
   560     </optional>
   721     </optional>
   561   </define>
       
   562   <!-- ~~~~~~ caption -->
       
   563   <define name="media.caption">
       
   564     <element name="caption">
       
   565       <ref name="media.caption.content"/>
       
   566     </element>
       
   567   </define>
       
   568   <define name="media.caption.content">
       
   569     <oneOrMore>
       
   570       <ref name="parag"/>
       
   571     </oneOrMore>
       
   572   </define>
   722   </define>
   573   <!-- ~~~~~~ copyright -->
   723   <!-- ~~~~~~ copyright -->
   574   <define name="copyright">
   724   <define name="copyright">
   575     <element name="copyright">
   725     <element name="copyright">
   576       <ref name="copyright.content"/>
   726       <ref name="copyright.content"/>
   766   </define>
   916   </define>
   767   <define name="note.label.attribute">
   917   <define name="note.label.attribute">
   768     <attribute name="label"/>
   918     <attribute name="label"/>
   769   </define>
   919   </define>
   770   <define name="note.content">
   920   <define name="note.content">
   771     <oneOrMore>
   921     <choice>
   772       <ref name="parag"/>
   922       <ref name="inlines"/>
   773     </oneOrMore>
   923       <oneOrMore>
       
   924         <ref name="parag"/>
       
   925       </oneOrMore>
       
   926     </choice>
   774   </define>
   927   </define>
   775   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   928   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   776   <define name="foreign">
   929   <define name="foreign">
   777     <element name="foreign">
   930     <element name="foreign">
   778       <ref name="foreign.attributes"/>
   931       <ref name="foreign.attributes"/>