--- a/RelaxNG/publidoc.rnc dim. juin 05 23:51:15 2011 +0200
+++ b/RelaxNG/publidoc.rnc lun. juin 06 21:51:00 2011 +0200
@@ -69,16 +69,28 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ author, publisher ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~ author
author = element author { author.content }
author.content =
firstname?,
lastname
+# ~~~~~~ publisher
publisher = element publisher { publisher.content }
publisher.content = inlines
+# ~~~~~~ firstname
+firstname = element firstname { firstname.content }
+
+firstname.content = inlines
+
+# ~~~~~~ lastname
+lastname = element lastname { lastname.content }
+
+lastname.content = inlines
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
language = element language { language.attributes }
@@ -134,7 +146,7 @@
subject.id.attribute
subject.id.attribute = attribute id { xsd:NMTOKEN }
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ abstract ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ abstract ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
abstract = element abstract { abstract.content }
@@ -194,7 +206,7 @@
section.content =
metadata?,
(section+
- | (parag | media)+)
+ | (parag | media | speech)+)
section.attributes =
status.attribute?
@@ -245,6 +257,27 @@
copyright.content = inlines
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# ~~~~~~ speech
+speech = element speech { speech.content }
+
+speech.content =
+ speaker?,
+ stage?,
+ parag+
+
+# ~~~~~~ speaker
+speaker = element speaker { speaker.content }
+
+speaker.content = inlines
+
+# ~~~~~~ stage
+stage = element stage { stage.content }
+
+stage.content = inlines
+
+
# =============================================================================
# Inline level
# =============================================================================
@@ -257,9 +290,12 @@
& romannum*
& date*
& name*
- & footnote*
+ & note*
& foreign*
& highlight*
+ & term*
+ & mentioned*
+ & quote*
}
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub, sup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -277,7 +313,7 @@
date = element date { date.attributes, date.content }
date.attributes =
- date.of.attribute
+ date.of.attribute?
date.of.attribute = attribute of { date.of.enumeration }
date.of.enumeration = "event" | "birth" | "death"
@@ -285,10 +321,6 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-firstname = element firstname { inlines }
-
-lastname = element lastname { inlines }
-
name = element name { name.attributes, name.content }
name.attributes =
@@ -298,15 +330,15 @@
name.content = inlines
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ footnote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-footnote = element footnote { footnote.attributes, footnote.content }
+note = element note { note.attributes, note.content }
-footnote.attributes =
- footnote.label.attribute?
-footnote.label.attribute = attribute label { text }
+note.attributes =
+ note.label.attribute?
+note.label.attribute = attribute label { text }
-footnote.content =
+note.content =
parag+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -323,6 +355,24 @@
highlight.content = inlines
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ term ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+term = element term { term.content }
+
+term.content = inlines
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mentioned ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+mentioned = element mentioned { mentioned.content }
+
+mentioned.content = inlines
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ quote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+quote = element quote { quote.content }
+
+quote.content = inlines
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
link = element link { link.attributes, link.content }