initial commit
[emacs-init.git] / nxhtml / etc / schema / qtmstr-xhtml.rnc
1 default namespace = "http://www.w3.org/1999/xhtml"
2
3 include "genshi.rnc"
4 include "xhtml-loader.rnc" {
5    start = html | head | head.content | body | frameset | frame | noframes |
6       Block.class | Inline.class | Table.class | Form.extra.class | genshi.class
7    html = element html { html.attlist, (genshi.model | (head, (body | frameset | genshi.model))) }
8    frameset =
9       element frameset {
10          frameset.attlist,
11          (((frameset | frame)+ & noframes?) | genshi.model)
12       }
13    noframes = element noframes { noframes.attlist, (body | genshi.model) }
14    title = element title { title.attlist, (text | genshi.model)* }
15    script = element script { script.attlist, (text | genshi.model)* }
16    style = element style { style.attlist, (text | genshi.model)* }
17    dl = element dl { dl.attlist, ((dt | dd)+ | genshi.model) }
18    ol = element ol { ol.attlist, (li+ | genshi.model) }
19    ul = element ul { ul.attlist, (li+ | genshi.model) }
20    dir = element dir { dir.attlist, (li.noblock+ | genshi.model) }
21    menu = element menu { menu.attlist, (li.noblock+ | genshi.model) }
22    select = element select { select.attlist, ((option | optgroup)+ | genshi.model) }
23    option =
24       element option {
25          Common.attrib,
26          attribute selected { "selected" }?,
27          attribute value { text }?,
28          (text | genshi.model)*
29       }
30    textarea = element textarea { textarea.attlist, (text & genshi.model)* }
31    optgroup = element optgroup { optgroup.attlist, (option+ | genshi.model) }
32    table =
33       element table {
34          table.attlist,
35          (caption? | genshi.model),
36          (col* | colgroup* | genshi.model),
37          (((thead? | genshi.model),
38             (tfoot? | genshi.model),
39             (tbody+ | genshi.model)) | (tr+ | genshi.model))
40       }
41    colgroup = element colgroup { colgroup.attlist, (col* | genshi.model) }
42    tr = element tr { tr.attlist, ((th | td)+ | genshi.model) }
43    tbody = element tbody { tbody.attlist, (tr+ | genshi.model) }
44    thead = element thead { thead.attlist, (tr+ | genshi.model) }
45    tfoot = element tfoot { tfoot.attlist, (tr+ | genshi.model) }
46 }
47
48 Table.class = caption | colgroup | col | tbody | thead | tfoot | th | tr | td
49 Form.extra.class = option | optgroup | legend
50
51 Block.class |= genshi.class
52 Inline.class |= genshi.class
53 head.content &= genshi.class
54
55 Core.attrib &= genshi.attrib
56 html.attlist  &= genshi.attrib
57 head.attlist  &= genshi.attrib
58 title.attlist &= genshi.attrib
59 base.attlist &= genshi.attrib
60 meta.attlist &= genshi.attrib
61 script.attlist &= genshi.attrib
62 param.attlist &= genshi.attrib
63 Edit.attrib &= genshi.attrib
64
65 genshi.allowed.children |= html | head | head.content | body | frameset | frame
66  | noframes | Inline.class | Block.class | Table.class | Form.extra.class