RelaxNG/publidoc.rnc
changeset 33 c70de8fae29d
parent 30 c0f9e813c039
child 34 c51d5097d065
--- a/RelaxNG/publidoc.rnc	lun. juin 20 18:39:46 2011 +0200
+++ b/RelaxNG/publidoc.rnc	lun. juil. 18 19:10:28 2011 +0200
@@ -105,9 +105,20 @@
 # ~~~~~~ author
 author = element author { author.content }
 
+author.attributes =
+   role.attribute?
+role.attribute = attribute role { "author" | "illustrator" }
+
 author.content =
    firstname?,
-   lastname
+   lastname,
+   role*
+
+role = element role { role.attributes }
+
+role.attributes =
+   role.of.attribute
+role.of.attribute = attribute of { "author" | "illustrator" }
 
 # ~~~~~~ publisher
 publisher = element publisher { publisher.content }
@@ -155,8 +166,7 @@
 
 pagenumber.attributes =
    pagenumber.value.attribute
-pagenumber.value.attribute = attribute value { pagenumber.value.enumeration }
-pagenumber.value.enumeration = xsd:positiveInteger
+pagenumber.value.attribute = attribute value { xsd:positiveInteger }
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ subject ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -443,8 +453,7 @@
    date.value.attribute
  & date.of.attribute?
 date.value.attribute = attribute value { xsd:date | xsd:gYearMonth | xsd:gYear }
-date.of.attribute = attribute of { date.of.enumeration }
-date.of.enumeration = "birth" | "death"
+date.of.attribute = attribute of { "birth" | "death" }
 
 date.content = mixed { sup* }
 
@@ -454,8 +463,8 @@
 
 name.attributes =
    name.of.attribute?
-name.of.attribute = attribute of { name.of.enumeration }
-name.of.enumeration = "person" | "company" | "book" | "newspaper" | "party"
+name.of.attribute = attribute of
+   { "person" | "company" | "book" | "newspaper" | "party" }
 
 name.content = inlines