diff -r 1db220a61526 -r 69310bc35b63 RelaxNG/publidoc.rnc --- 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 }