]> Git — Sourcephile - doclang.git/blob - schema/dtc.rnc
Add golden tests for DTC.
[doclang.git] / schema / dtc.rnc
1 document = head, body
2 head = about?
3 about = element "about" {title* & (attribute "url" url)? & author* & editor? & date? & version? & keyword* & link* & serie* & include*}
4 keyword = element "keyword" text
5 version = element "version" text
6 author = element "author" entity
7 editor = element "editor" entity
8 date = element "date" {(attribute "year" xsd:int)? & (attribute "month" xsd:nat1)? & (attribute "day" xsd:nat1)?}
9 entity = name? & (attribute "street" text)? & (attribute "zipcode" text)? & (attribute "city" text)? & (attribute "region" text)? & (attribute "country" text)? & (attribute "email" text)? & (attribute "tel" text)? & (attribute "fax" text)? & (attribute "url" url)? & (attribute "org" entity)?
10 link = element "link" {name? & (attribute "href" url)? & (attribute "rel" text)? & lines*}
11 serie = element "serie" {name? & (attribute "key" text)?}
12 alias = element "alias" {id?}
13 body = (element "section" {commonAttrs, title, alias*, body} | toc | tof | index | figure | element "references" {commonAttrs, reference*} | block)*
14 toc = element "toc" {commonAttrs, (attribute "depth" xsd:nat)?} | tof = element "tof" {commonAttrs, (element "ul" {(element "li" {element "para" text})*})?} | index = element "index" {commonAttrs, (element "ul" {(element "li" {element "para" {text*}})*})?} | figure = element "figure" {commonAttrs, attribute "type" text, title?, block*} | element "references" {commonAttrs = id? & class?, reference = element "reference" {id, {title* & (attribute "url" url)? & author* & editor? & date? & version? & keyword* & link* & serie* & include*}}*} | block = comment | element "para" {commonAttrs, para} | element "ol" {commonAttrs, (element "li" {block*})*} | element "ul" {commonAttrs, (element "li" {block*})*} | element "artwork" {commonAttrs, attribute "type" text, text} | element "quote" {commonAttrs, attribute "type" text, block*}
15 toc = element "toc" {commonAttrs, (attribute "depth" xsd:nat)?}
16 tof = element "tof" {commonAttrs, (element "ul" {(element "li" {element "para" text})*})?}
17 index = element "index" {commonAttrs, (element "ul" {(element "li" {element "para" {text*}})*})?}
18 figure = element "figure" {commonAttrs, attribute "type" text, title?, block*}
19 element "references" {commonAttrs = id? & class?, reference = element "reference" {id, {title* & (attribute "url" url)? & author* & editor? & date? & version? & keyword* & link* & serie* & include*}}*}
20 reference = element "reference" {id, {title* & (attribute "url" url)? & author* & editor? & date? & version? & keyword* & link* & serie* & include*}}
21 include = element "include" {(attribute "href" path)?}
22 block = comment | element "para" {commonAttrs, para} | element "ol" {commonAttrs, (element "li" {block*})*} | element "ul" {commonAttrs, (element "li" {block*})*} | element "artwork" {commonAttrs, attribute "type" text, text} | element "quote" {commonAttrs, attribute "type" text, block*}
23 para = lines*
24 lines = element "b" para | element "code" para | element "del" para | element "i" para | element "note" para | element "q" para | element "sc" para | element "sub" para | element "sup" para | element "u" para | element "eref" {attribute "to" url, para} | element "iref" {attribute "to" text, para} | element "ref" {to, para} | element "rref" {to, para} | element "br" empty | text
25 commonAttrs = id? & class?
26 ident = text
27 title = element "title" para
28 name = attribute "name" text
29 url = text
30 path = text
31 to = attribute "to" ident
32 id = attribute "id" ident