RelaxNG/publidoc.rnc
changeset 189 951f1a25efc5
parent 188 b9fea8bd2412
child 190 546609a92447
--- a/RelaxNG/publidoc.rnc	sam. avril 06 14:17:18 2013 +0200
+++ b/RelaxNG/publidoc.rnc	dim. avril 07 17:05:34 2013 +0200
@@ -72,6 +72,7 @@
    top.head?,
    header?,
    section+,
+   bibliography?,
    footer?
 
 
@@ -129,6 +130,7 @@
    component.head?,
    header?,
    section+,
+   bibliography?,
    footer?
 
 
@@ -170,6 +172,14 @@
  & audio*
  & annotation*
 
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bibliography ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# ~~~~~~ bibliography
+bibliography = element bibliography { bibliography.content }
+
+bibliography.content =
+   bibliography.entry+
+
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ footer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 footer = element footer { footer.content }
@@ -304,18 +314,18 @@
  & rowsep.attribute?
 
 row.content =
-  entry+
+  table.entry+
 
-# ~~~~~~ entry
-entry = element entry { entry.attributes, entry.content }
+# ~~~~~~ table.entry
+table.entry = element entry { table.entry.attributes, table.entry.content }
 
-entry.attributes =
+table.entry.attributes =
    align.attribute?
  & valign.attribute?
  & colsep.attribute?
  & rowsep.attribute?
 
-entry.content =
+table.entry.content =
    inlines
  | (p | media)+
 
@@ -398,6 +408,33 @@
    x.attribute?
  & y.attribute?
 
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bibliograpgy.entry ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# ~~~~~~ bibliography.entry
+bibliography.entry = element entry { bibliography.entry.content }
+
+bibliography.entry.content =
+   identifier.ean?
+ & title
+ & subtitle?
+ & copyright?
+ & collection?
+ & contributors?
+ & date?
+ & place?
+ & folio?
+ & pages?
+
+# ~~~~~~ folio
+folio = element folio { folio.content }
+
+folio.content = xsd:positiveInteger | xsd:token {pattern = "[DLXVI]+"}
+
+# ~~~~~~ pages
+pages = element pages { pages.content }
+
+pages.content = xsd:positiveInteger
+
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scenario ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 # ~~~~~~ scenario
@@ -507,28 +544,18 @@
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-# ~~~~~~ source
 source = element source {
-   (  (attribute type { "book" }, source.content.book)
+   (  (attribute type { "book" }, bibliography.entry.content)
     | (attribute type { "file" }, source.content.file)),
    source.content
 }
 
-source.content.book =
-   identifier.ean,
-   title?,
-   pagenumber*
 source.content.file =
    identifier.uri
 source.content =
    annotation*
 
-# ~~~~~~ pagenumber
-pagenumber = element pagenumber { pagenumber.content }
-
-pagenumber.content = xsd:positiveInteger
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~ keyword & subject ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ keyword & subject ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 # ~~~~~~ keywordset
 keywordset = element keywordset { keywordset.content }