RelaxNG/publianim.rnc
changeset 414 a90d62ed3016
parent 409 e55d34c4db69
child 476 6c30a3543cd8
--- /dev/null	jeu. janv. 01 00:00:00 1970 +0000
+++ b/RelaxNG/publianim.rnc	jeu. avril 21 12:02:56 2016 +0200
@@ -0,0 +1,165 @@
+
+
+include "publidoc.rnc" {
+   start = publianim
+
+   image.attributes =
+      media.id.attribute
+    & image.type.attribute?
+    & image.zoom.attribute?
+    & alt.attribute?
+   
+   image.zoom.attribute = attribute zoom {"true" | "false"}
+
+   media.image.content =
+   copyright?,
+   hotspot*
+   
+   audio.attributes =
+      media.id.attribute
+    & audio.type?
+   audio.type = attribute type { "music" | "voice" | "fr" | "en"
+    | "background" | "smil" }
+
+   
+   inlines = mixed {
+      sup*
+    & sub*
+    & var*
+    & number*
+    & acronym*
+    & warning*
+
+    & highlight*
+    & emphasis*
+    & mentioned*
+    & literal*
+    & term*
+    & stage*
+    & name*
+    & foreign*
+    & date*
+    & math*
+    & quote*
+    & initial*
+    & note*
+    & link*
+    & anchor*
+    & index*
+    & image*
+    & audio*
+    & smil*
+   }
+   
+}
+
+publianim = element publianim {
+   publianim.attributes,
+   publianim.content
+}
+
+publianim.attributes =
+   version.attribute
+
+publianim.content =
+   document
+ | top.topic
+
+
+# =============================================================================
+#                                 BLOCK LEVEL
+# =============================================================================
+
+
+# ~~~~~~ hotspot
+# hotspot = element hotspot { hotspot.attributes, hotspot.content }
+
+# hotspot.attributes =
+#    x.attribute
+#  & y.attribute
+#  & w.attribute
+#  & h.attribute?
+#  & hotspot.display.attribute?
+#  & hotspot.type.attribute?
+#  & xmlid.attribute?
+# x.attribute = attribute x { xsd:token {pattern = "\d{1,2}(\.\d{1,2})?%"} }
+# y.attribute = attribute y { xsd:token {pattern = "\d{1,2}(\.\d{1,2})?%"} }
+# w.attribute = attribute w { xsd:token {pattern = "\d{1,2}(\.\d{1,2})?%"} }
+# h.attribute = attribute h { xsd:token {pattern = "\d{1,2}(\.\d{1,2})?%"} }
+# hotspot.display.attribute = attribute display { "normal" | "visible" | "pulse" }
+# hotspot.type.attribute = attribute type { xsd:NCName }
+
+# hotspot.content =
+#    ((link | p+ | image | audio | video), (spot, scenario?)?)
+#  | (spot, scenario?)
+#  | empty
+
+# ~~~~~~ spot
+# spot = element spot { spot.attributes, spot.content }
+
+# spot.attributes =
+#    dx.attribute?
+#  & dy.attribute?
+#  & dw.attribute?
+#  & dh.attribute?
+# dx.attribute = attribute dx { xsd:token {pattern = "-?\d{1,2}(\.\d{1,2})?%"} }
+# dy.attribute = attribute dy { xsd:token {pattern = "-?\d{1,2}(\.\d{1,2})?%"} }
+# dw.attribute = attribute dw { xsd:token {pattern = "-?\d{1,2}(\.\d{1,2})?%"} }
+# dh.attribute = attribute dh { xsd:token {pattern = "-?\d{1,2}(\.\d{1,2})?%"} }
+
+# spot.content =
+#    ((p+ | image), audio?)
+#  | audio
+#  | video
+
+# ~~~~~~ media.caption
+# media.caption = element caption { caption.attributes, caption.content }
+
+# caption.attributes =
+#    x.attribute?
+#  & y.attribute?
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scenario ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# ~~~~~~ scenario
+# scenario = element scenario { scenario.content }
+
+# scenario.content =
+#    init*,
+#    onclick*
+
+# ~~~~~~ init
+# init = element init { init.attributes }
+
+# init.attributes =
+#    init.action.attribute
+#  & target.attribute?
+# init.action.attribute = attribute action { "hide" }
+# target.attribute = attribute target { "hotspot" | "spot" }
+
+# ~~~~~~ onclick
+# onclick = element onclick { onclick.attributes }
+
+# onclick.attributes =
+#    onclick.action.attribute
+#  & target.attribute?
+# onclick.action.attribute = attribute action { "show" }
+
+
+# =============================================================================
+#                                 INLINE LEVEL
+# =============================================================================
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ smil ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# smil = element smil { smil.attributes, smil.content }
+
+# smil.attributes =
+#    audio.attribute?
+#  & begin.attribute?
+#  & end.attribute?
+# audio.attribute = attribute audio { xsd:anyURI }
+# begin.attribute = attribute begin { xsd:decimal }
+# end.attribute = attribute end { xsd:decimal }
+
+# smil.content = inlines