RelaxNG/publidoc.rng
changeset 38 3c8b406be906
parent 37 83b7ec3c3132
child 39 7faa356bad3e
equal deleted inserted replaced
37:83b7ec3c3132 38:3c8b406be906
   236   </define>
   236   </define>
   237   <define name="title.content">
   237   <define name="title.content">
   238     <ref name="inlines"/>
   238     <ref name="inlines"/>
   239   </define>
   239   </define>
   240   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   240   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
       
   241   <define name="identifier.uri">
       
   242     <element name="identifier">
       
   243       <attribute name="type">
       
   244         <value>uri</value>
       
   245       </attribute>
       
   246       <data type="anyURI"/>
       
   247     </element>
       
   248   </define>
       
   249   <define name="identifier.ean">
       
   250     <element name="identifier">
       
   251       <attribute name="type">
       
   252         <value>ean</value>
       
   253       </attribute>
       
   254       <data type="token">
       
   255         <param name="pattern">\d{13}</param>
       
   256       </data>
       
   257     </element>
       
   258   </define>
   241   <define name="identifier">
   259   <define name="identifier">
   242     <element name="identifier">
       
   243       <ref name="identifier.content"/>
       
   244       <ref name="identifier.attributes"/>
       
   245     </element>
       
   246   </define>
       
   247   <define name="identifier.attributes">
       
   248     <ref name="class.attribute"/>
       
   249   </define>
       
   250   <define name="class.attribute">
       
   251     <attribute name="class">
       
   252       <choice>
       
   253         <value>uri</value>
       
   254         <value>ean</value>
       
   255       </choice>
       
   256     </attribute>
       
   257   </define>
       
   258   <define name="identifier.content">
       
   259     <choice>
   260     <choice>
   260       <data type="anyURI"/>
   261       <ref name="identifier.uri"/>
   261       <data type="NMTOKEN"/>
   262       <ref name="identifier.ean"/>
   262     </choice>
   263     </choice>
   263   </define>
   264   </define>
   264   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   265   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   265   <define name="language">
   266   <define name="language">
   266     <element name="language">
   267     <element name="language">
   332     </element>
   333     </element>
   333   </define>
   334   </define>
   334   <define name="lastname.content">
   335   <define name="lastname.content">
   335     <ref name="inlines"/>
   336     <ref name="inlines"/>
   336   </define>
   337   </define>
   337   <!-- ~~~~~~ label -->
       
   338   <define name="label">
       
   339     <element name="label">
       
   340       <ref name="label.content"/>
       
   341     </element>
       
   342   </define>
       
   343   <define name="label.content">
       
   344     <ref name="inlines"/>
       
   345   </define>
       
   346   <!-- ~~~~~~ role -->
   338   <!-- ~~~~~~ role -->
   347   <define name="role">
   339   <define name="role">
   348     <element name="role">
   340     <element name="role">
   349       <ref name="role.attributes"/>
   341       <ref name="role.attributes"/>
   350     </element>
   342     </element>
   358         <value>author</value>
   350         <value>author</value>
   359         <value>illustrator</value>
   351         <value>illustrator</value>
   360       </choice>
   352       </choice>
   361     </attribute>
   353     </attribute>
   362   </define>
   354   </define>
       
   355   <!-- ~~~~~~ label -->
       
   356   <define name="label">
       
   357     <element name="label">
       
   358       <ref name="label.content"/>
       
   359     </element>
       
   360   </define>
       
   361   <define name="label.content">
       
   362     <ref name="inlines"/>
       
   363   </define>
   363   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ place ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   364   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ place ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   364   <define name="place">
   365   <define name="place">
   365     <element name="place">
   366     <element name="place">
   366       <ref name="place.content"/>
   367       <ref name="place.content"/>
   367     </element>
   368     </element>
   371   </define>
   372   </define>
   372   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   373   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   373   <!-- ~~~~~~ source -->
   374   <!-- ~~~~~~ source -->
   374   <define name="source">
   375   <define name="source">
   375     <element name="source">
   376     <element name="source">
   376       <ref name="source.attributes"/>
       
   377       <choice>
   377       <choice>
   378         <group>
   378         <group>
   379           <attribute name="type">
   379           <attribute name="type">
   380             <value>book</value>
   380             <value>book</value>
   381           </attribute>
   381           </attribute>
   382           <ref name="source.content.book"/>
   382           <ref name="source.content.book"/>
   383         </group>
   383         </group>
   384         <attribute name="type">
   384         <group>
   385           <value>file</value>
   385           <attribute name="type">
   386         </attribute>
   386             <value>file</value>
       
   387           </attribute>
       
   388           <ref name="source.content.file"/>
       
   389         </group>
   387       </choice>
   390       </choice>
   388       <ref name="source.content"/>
   391       <ref name="source.content"/>
   389     </element>
   392     </element>
   390   </define>
   393   </define>
   391   <define name="source.attributes">
       
   392     <ref name="source.id.attribute"/>
       
   393   </define>
       
   394   <define name="source.id.attribute">
       
   395     <attribute name="id">
       
   396       <data type="NMTOKEN"/>
       
   397     </attribute>
       
   398   </define>
       
   399   <define name="source.content.book">
   394   <define name="source.content.book">
   400     <ref name="title"/>
   395     <ref name="identifier.ean"/>
       
   396     <optional>
       
   397       <ref name="title"/>
       
   398     </optional>
   401     <zeroOrMore>
   399     <zeroOrMore>
   402       <ref name="pagenumber"/>
   400       <ref name="pagenumber"/>
   403     </zeroOrMore>
   401     </zeroOrMore>
       
   402   </define>
       
   403   <define name="source.content.file">
       
   404     <ref name="identifier.uri"/>
   404   </define>
   405   </define>
   405   <define name="source.content">
   406   <define name="source.content">
   406     <zeroOrMore>
   407     <zeroOrMore>
   407       <ref name="annotation"/>
   408       <ref name="annotation"/>
   408     </zeroOrMore>
   409     </zeroOrMore>