--- a/RelaxNG/publiset.rng dim. juin 05 23:51:15 2011 +0200
+++ b/RelaxNG/publiset.rng lun. juin 06 21:51:00 2011 +0200
@@ -117,15 +117,26 @@
<ref name="remap.attributes"/>
</define>
<define name="metadata.content">
- <optional>
- <ref name="title"/>
- </optional>
- <optional>
- <ref name="subtitle"/>
- </optional>
- <optional>
- <ref name="source"/>
- </optional>
+ <interleave>
+ <optional>
+ <ref name="title"/>
+ </optional>
+ <optional>
+ <ref name="subtitle"/>
+ </optional>
+ <zeroOrMore>
+ <ref name="author"/>
+ </zeroOrMore>
+ <optional>
+ <ref name="publisher"/>
+ </optional>
+ <optional>
+ <ref name="language"/>
+ </optional>
+ <optional>
+ <ref name="source"/>
+ </optional>
+ </interleave>
</define>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ title, subtitle ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<define name="title">
@@ -141,6 +152,60 @@
<ref name="title.content"/>
</element>
</define>
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ author, publisher ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <!-- ~~~~~~ author -->
+ <define name="author">
+ <element name="author">
+ <ref name="author.content"/>
+ </element>
+ </define>
+ <define name="author.content">
+ <optional>
+ <ref name="firstname"/>
+ </optional>
+ <ref name="lastname"/>
+ </define>
+ <!-- ~~~~~~ publisher -->
+ <define name="publisher">
+ <element name="publisher">
+ <ref name="publisher.content"/>
+ </element>
+ </define>
+ <define name="publisher.content">
+ <ref name="inlines"/>
+ </define>
+ <!-- ~~~~~~ firstname -->
+ <define name="firstname">
+ <element name="firstname">
+ <ref name="firstname.content"/>
+ </element>
+ </define>
+ <define name="firstname.content">
+ <ref name="inlines"/>
+ </define>
+ <!-- ~~~~~~ lastname -->
+ <define name="lastname">
+ <element name="lastname">
+ <ref name="lastname.content"/>
+ </element>
+ </define>
+ <define name="lastname.content">
+ <ref name="inlines"/>
+ </define>
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <define name="language">
+ <element name="language">
+ <ref name="language.attributes"/>
+ </element>
+ </define>
+ <define name="language.attributes">
+ <ref name="lang.attribute"/>
+ </define>
+ <define name="lang.attribute">
+ <attribute name="xml:lang">
+ <data type="language"/>
+ </attribute>
+ </define>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- ~~~~~~ source -->
<define name="source">