diff -r 7141fd097b97 -r 79713ffae179 RelaxNG/publidoc.rnc --- a/RelaxNG/publidoc.rnc dim. juin 12 14:28:07 2011 +0200 +++ b/RelaxNG/publidoc.rnc dim. juin 12 15:21:35 2011 +0200 @@ -18,7 +18,7 @@ # ============================================================================= -# Top level +# TOP LEVEL # ============================================================================= # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ document ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -30,26 +30,36 @@ document.id.attribute = attribute xml:id { xsd:ID } document.content = - top.metadata?, + top.head?, (division+ | topic+) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ topic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ top.topic = element topic { top.topic.attributes, top.topic.content } +top.topic.attributes = + topic.id.attribute + & topic.type.attribute? +topic.id.attribute = attribute xml:id { xsd:ID } +topic.type.attribute = attribute type { xsd:NCName } + +top.topic.content = + top.head?, + section+ # ============================================================================= -# Metadata level +# HEAD LEVEL # ============================================================================= -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ head ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -top.metadata = element metadata { top.metadata.content } -division.metadata = element metadata { division.metadata.content } -component.metadata = element metadata { component.metadata.content } -section.metadata = element metadata { section.metadata.content } +top.head = element head { top.head.content } +division.head = element head { division.head.content } +component.head = element head { component.head.content } +section.head = element head { section.head.content } +block.head = element head { block.head.content } -top.metadata.content = +top.head.content = (title, subtitle?)? & language? & author* @@ -60,19 +70,21 @@ & subjectset? & abstract? & annotation* -division.metadata.content = +division.head.content = (title, subtitle?)? & language? & annotation* -component.metadata.content = +component.head.content = (title, subtitle?)? & language? & author* & annotation* -section.metadata.content = +section.head.content = (title, subtitle?)? & language? & annotation* +block.head.content = + (title, subtitle?)? # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ title, subtitle ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -165,7 +177,7 @@ abstract = element abstract { abstract.content } abstract.content = - parag+ + p+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ annotation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -175,7 +187,7 @@ # ============================================================================= -# Division level +# DIVISION LEVEL # ============================================================================= # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ division ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -183,45 +195,37 @@ division = element division { division.content } division.content = - division.metadata?, + division.head?, (division+ | topic+) # ============================================================================= -# Component level +# COMPONENT LEVEL # ============================================================================= # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ topic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ topic = element topic { topic.attributes, topic.content } -top.topic.attributes = - topic.id.attribute - & topic.type.attribute? topic.attributes = topic.id.attribute? & topic.type.attribute? -topic.id.attribute = attribute xml:id { xsd:ID } -topic.type.attribute = attribute type { xsd:NCName } -top.topic.content = - top.metadata?, - section+ topic.content = - component.metadata?, + component.head?, section+ # ============================================================================= -# Section level +# SECTION LEVEL # ============================================================================= -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ section ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ section ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ section = element section { section.content, section.attributes } section.content = - section.metadata?, + section.head?, (section+ | block+) section.attributes = @@ -230,18 +234,18 @@ # ============================================================================= -# Block level +# BLOCK LEVEL # ============================================================================= -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ block ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ block ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -block = (parag | speech | \list | table | media) +block = (p | speech | \list | table | media) -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ parag ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ p ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -parag = element parag { parag.content } +p = element p { p.content } -parag.content = +p.content = inlines & link* @@ -253,7 +257,7 @@ speech.content = speaker?, stage?, - parag+ + p+ # ~~~~~~ speaker speaker = element speaker { speaker.content } @@ -271,7 +275,7 @@ \list = element list { \list.content } \list.content = - title?, + block.head?, ( (attribute type {"ordered"} ?, item, item+) | (attribute type {"glossary"}, glossary.item+) ) @@ -297,7 +301,7 @@ table = element table { table.content } table.content = - title?, + block.head?, tgroup+, caption? @@ -346,13 +350,14 @@ entry.content = inlines - | parag+ + | p+ # ~~~~~~ caption caption = element caption { caption.content } caption.content = - parag+ + inlines + | p+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ media ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -380,7 +385,7 @@ # ============================================================================= -# Inline level +# INLINE LEVEL # ============================================================================= # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -454,7 +459,7 @@ note.content = inlines - | parag+ + | p+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~