Restriction du contenu de certains inlines
authorPatrick PIERRE
jeu., 30 mai 2013 09:29:47 +0200
changeset 212 37c610d728e8
parent 211 9c8d0c134b73
child 213 6655833c0c6f
Restriction du contenu de certains inlines
RelaxNG/publidoc.rnc
--- a/RelaxNG/publidoc.rnc	mar. mai 28 12:24:43 2013 +0200
+++ b/RelaxNG/publidoc.rnc	jeu. mai 30 09:29:47 2013 +0200
@@ -631,16 +631,16 @@
  & math*
  & date*
  & name*
+ & foreign*
+ & acronym*
+ & term*
+ & literal*
+ & stage*
+ & highlight*
+ & mentioned*
+ & initial*
  & note*
- & foreign*
- & highlight*
  & quote*
- & acronym*
- & mentioned*
- & term*
- & stage*
- & literal*
- & initial*
  & link*
  & anchor*
  & image*
@@ -668,7 +668,7 @@
    number.value.attribute?
 number.value.attribute = attribute value { xsd:integer | xsd:decimal }
 
-number.content = mixed { sup* }
+number.content = mixed { sup* & warning* }
 number.roman.content = xsd:token {pattern = "[DLXVI]+"}
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ math ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -695,7 +695,7 @@
 date.value.attribute = attribute value { xsd:date | xsd:gYearMonth | xsd:gYear }
 date.of.attribute = attribute of { "birth" | "death" }
 
-date.content = mixed { sup* }
+date.content = mixed { sup* & warning* }
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -706,7 +706,63 @@
 name.of.attribute = attribute of
    { "person" | "company" | "book" | "newspaper" | "party" | "painting" }
 
-name.content = inlines
+name.content = mixed { sup* & number* & acronym* & warning* }
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+foreign = element foreign { foreign.attributes, foreign.content }
+
+foreign.attributes =
+   lang.attribute?
+
+foreign.content = mixed { sup* & sub* & number* & warning* }
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ acronym ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+acronym = element acronym { acronym.content }
+
+acronym.content = mixed { sup* & warning* }
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ term ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+term = element term { term.content }
+
+term.content = mixed { sup* & warning* }
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ literal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+literal = element literal { literal.content }
+
+literal.content = mixed { sup* & warning* }
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+stage = element stage { stage.content }
+
+stage.content = inlines
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+highlight = element highlight { highlight.content }
+
+highlight.content = inlines
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mentioned ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+mentioned = element mentioned { mentioned.content }
+
+mentioned.content = inlines
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initial ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+initial = element initial { initial.content }
+
+initial.content =
+   c,
+   w?
+
+c = element c { text }
+w = element w { inlines }
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -719,23 +775,6 @@
 note.content =
    (w?, block+) | inlines
 
-w = element w { inlines }
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-foreign = element foreign { foreign.attributes, foreign.content }
-
-foreign.attributes =
-   lang.attribute?
-
-foreign.content = inlines
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-highlight = element highlight { highlight.content }
-
-highlight.content = inlines
-
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ quote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 quote = element quote { quote.content }
@@ -747,46 +786,6 @@
 
 phrase.content = inlines
 
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ acronym ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-acronym = element acronym { acronym.content }
-
-acronym.content = inlines
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mentioned ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-mentioned = element mentioned { mentioned.content }
-
-mentioned.content = inlines
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ term ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-term = element term { term.content }
-
-term.content = inlines
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-stage = element stage { stage.content }
-
-stage.content = inlines
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ literal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-literal = element literal { literal.content }
-
-literal.content = text
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initial ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-initial = element initial { initial.content }
-
-initial.content =
-   c,
-   w?
-
-c = element c { text }
-
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 link = element link { link.attributes, link.content }
@@ -796,7 +795,9 @@
 uri.attribute = attribute uri { xsd:anyURI }
 idref.attribute = attribute idref { xsd:IDREF }
 
-link.content = inlines
+link.content =  mixed {
+   sup* & sub* & var* & number* & math* & date* & name* & foreign* & acronym*
+ & term* & literal* & stage* & highlight* & mentioned* & warning* }
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ anchor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~