RelaxNG/publidoc.rng
changeset 34 c51d5097d065
parent 33 c70de8fae29d
child 35 de4114d12ef1
equal deleted inserted replaced
33:c70de8fae29d 34:c51d5097d065
   127         <ref name="title"/>
   127         <ref name="title"/>
   128         <optional>
   128         <optional>
   129           <ref name="subtitle"/>
   129           <ref name="subtitle"/>
   130         </optional>
   130         </optional>
   131       </optional>
   131       </optional>
       
   132       <zeroOrMore>
       
   133         <ref name="identifier"/>
       
   134       </zeroOrMore>
   132       <optional>
   135       <optional>
   133         <ref name="language"/>
   136         <ref name="language"/>
   134       </optional>
   137       </optional>
   135       <zeroOrMore>
   138       <zeroOrMore>
   136         <ref name="author"/>
   139         <ref name="author"/>
   229     </element>
   232     </element>
   230   </define>
   233   </define>
   231   <define name="title.content">
   234   <define name="title.content">
   232     <ref name="inlines"/>
   235     <ref name="inlines"/>
   233   </define>
   236   </define>
       
   237   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
       
   238   <define name="identifier">
       
   239     <element name="identifier">
       
   240       <ref name="identifier.content"/>
       
   241       <ref name="identifier.attributes"/>
       
   242     </element>
       
   243   </define>
       
   244   <define name="identifier.attributes">
       
   245     <ref name="class.attribute"/>
       
   246   </define>
       
   247   <define name="class.attribute">
       
   248     <attribute name="class">
       
   249       <choice>
       
   250         <value>uri</value>
       
   251         <value>ean</value>
       
   252       </choice>
       
   253     </attribute>
       
   254   </define>
       
   255   <define name="identifier.content">
       
   256     <choice>
       
   257       <data type="anyURI"/>
       
   258       <data type="NMTOKEN"/>
       
   259     </choice>
       
   260   </define>
   234   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   261   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   235   <define name="language">
   262   <define name="language">
   236     <element name="language">
   263     <element name="language">
   237       <ref name="language.attributes"/>
   264       <ref name="language.attributes"/>
   238     </element>
   265     </element>
   272     <ref name="lastname"/>
   299     <ref name="lastname"/>
   273     <zeroOrMore>
   300     <zeroOrMore>
   274       <ref name="role"/>
   301       <ref name="role"/>
   275     </zeroOrMore>
   302     </zeroOrMore>
   276   </define>
   303   </define>
   277   <define name="role">
       
   278     <element name="role">
       
   279       <ref name="role.attributes"/>
       
   280     </element>
       
   281   </define>
       
   282   <define name="role.attributes">
       
   283     <ref name="role.of.attribute"/>
       
   284   </define>
       
   285   <define name="role.of.attribute">
       
   286     <attribute name="of">
       
   287       <choice>
       
   288         <value>author</value>
       
   289         <value>illustrator</value>
       
   290       </choice>
       
   291     </attribute>
       
   292   </define>
       
   293   <!-- ~~~~~~ publisher -->
   304   <!-- ~~~~~~ publisher -->
   294   <define name="publisher">
   305   <define name="publisher">
   295     <element name="publisher">
   306     <element name="publisher">
   296       <ref name="publisher.content"/>
   307       <ref name="publisher.content"/>
   297     </element>
   308     </element>
   298   </define>
   309   </define>
   299   <define name="publisher.content">
   310   <define name="publisher.content">
   300     <ref name="inlines"/>
   311     <ref name="label"/>
       
   312     <optional>
       
   313       <ref name="url"/>
       
   314     </optional>
   301   </define>
   315   </define>
   302   <!-- ~~~~~~ firstname -->
   316   <!-- ~~~~~~ firstname -->
   303   <define name="firstname">
   317   <define name="firstname">
   304     <element name="firstname">
   318     <element name="firstname">
   305       <ref name="firstname.content"/>
   319       <ref name="firstname.content"/>
   314       <ref name="lastname.content"/>
   328       <ref name="lastname.content"/>
   315     </element>
   329     </element>
   316   </define>
   330   </define>
   317   <define name="lastname.content">
   331   <define name="lastname.content">
   318     <ref name="inlines"/>
   332     <ref name="inlines"/>
       
   333   </define>
       
   334   <!-- ~~~~~~ label -->
       
   335   <define name="label">
       
   336     <element name="label">
       
   337       <ref name="label.content"/>
       
   338     </element>
       
   339   </define>
       
   340   <define name="label.content">
       
   341     <ref name="inlines"/>
       
   342   </define>
       
   343   <!-- ~~~~~~ role -->
       
   344   <define name="role">
       
   345     <element name="role">
       
   346       <ref name="role.attributes"/>
       
   347     </element>
       
   348   </define>
       
   349   <define name="role.attributes">
       
   350     <ref name="role.of.attribute"/>
       
   351   </define>
       
   352   <define name="role.of.attribute">
       
   353     <attribute name="of">
       
   354       <choice>
       
   355         <value>author</value>
       
   356         <value>illustrator</value>
       
   357       </choice>
       
   358     </attribute>
       
   359   </define>
       
   360   <!-- ~~~~~~ url -->
       
   361   <define name="url">
       
   362     <element name="url">
       
   363       <ref name="url.content"/>
       
   364     </element>
       
   365   </define>
       
   366   <define name="url.content">
       
   367     <data type="anyURI"/>
   319   </define>
   368   </define>
   320   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ place ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   369   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ place ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   321   <define name="place">
   370   <define name="place">
   322     <element name="place">
   371     <element name="place">
   323       <ref name="place.content"/>
   372       <ref name="place.content"/>
   630     <ref name="label"/>
   679     <ref name="label"/>
   631     <oneOrMore>
   680     <oneOrMore>
   632       <ref name="block"/>
   681       <ref name="block"/>
   633     </oneOrMore>
   682     </oneOrMore>
   634   </define>
   683   </define>
   635   <!-- ~~~~~~ label -->
       
   636   <define name="label">
       
   637     <element name="label">
       
   638       <ref name="label.content"/>
       
   639     </element>
       
   640   </define>
       
   641   <define name="label.content">
       
   642     <ref name="inlines"/>
       
   643   </define>
       
   644   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   684   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   645   <define name="table">
   685   <define name="table">
   646     <element name="table">
   686     <element name="table">
   647       <ref name="table.content"/>
   687       <ref name="table.content"/>
   648     </element>
   688     </element>