1 namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
2 namespace rng = "http://relaxng.org/ns/structure/1.0"
4 # Muse-Mode RELAX NG Schema ver. alpha 0.1
5 # Copyright (C) 2005 Free Software Foundation, Inc.
7 # This is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version. This material is distributed in
11 # the hope that it will be useful, but WITHOUT ANY WARRANTY; without
12 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 # PARTICULAR PURPOSE. See the GNU General Public License for more
14 # details.You should have received a copy of the GNU General Public
15 # License along with this file; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21 # RelaxNG Compact syntax can be converted into RelaxNG XML Syntax,
22 # DTD format and XML Schema language using free tools.
24 # Emacs users are encouraged to use James Clarke's nxml-mode for
25 # editing editing and validating XML files. If you are in nxml-mode
26 # use the command C-c C-s to point to this schema file, say yes if
27 # you are asked if you want to copy the file to your location, and
28 # then C-c C-a can be used to reload the schema if you make changes
33 # Brad Collins (brad AT chenla DOT org) wrote the initial file.
41 & muse.element.pageinfo?
42 & muse.element.section* }
43 # ------------------------------------------------
45 # ------------------------------------------------
46 ## pageinfo element used for metadata
48 muse.element.pageinfo = element pageinfo {
50 & muse.element.author?
51 & muse.element.maintainer?
52 & muse.element.pubdate? }?
55 muse.element.title = element title { text }?
57 ## page author element
58 muse.element.author = element author { text }?
60 ## page maintainer element
61 muse.element.maintainer = element maintainer { text }?
63 ## page publication date element
64 muse.element.pubdate = element pubdate { text }?
66 # ------------------------------------------------
68 # ------------------------------------------------
70 muse.element.section = element section {
72 & muse.attribute.level?
73 & muse.element.section*
76 & muse.attribute.blockquote*
81 & muse.element.example*
82 & muse.element.format* # for centering paragraphs
87 muse.attribute.blockquote = element blockquote {
92 muse.element.p = element p {
97 & muse.element.anchor*
98 & muse.element.footnote*
102 muse.element.example = element example { text }?
105 muse.element.verse = element verse { text }?
107 # ------------------------------------------------
108 # Unordered list elements
109 # ------------------------------------------------
111 muse.element.list = element list {
113 & muse.element.item* }?
115 muse.element.item = element item {
117 & muse.element.definition?
118 & muse.element.format*
119 & muse.element.image*
121 & muse.element.image*
124 # ------------------------------------------------
125 # Definition list elements
126 # ------------------------------------------------
128 muse.element.term = element term {
130 & muse.element.image*
132 & muse.element.image*
136 muse.element.definition = element definition {
138 & muse.element.image*
140 & muse.element.image*
143 # ------------------------------------------------
145 # ------------------------------------------------
149 muse.element.format = element format {
151 & muse.attribute.level?
155 muse.element.image = element image { muse.attribute.href? }?
157 ## horizontal rule element
158 muse.element.hr = element hr { empty }?
161 muse.element.footnote = element footnote { text }?
164 muse.element.anchor = element anchor { muse.attribute.id }?
167 muse.element.link = element link {
169 & muse.attribute.href
172 # ------------------------------------------------
174 # ------------------------------------------------
177 muse.attribute.type = attribute type { text }?
180 muse.attribute.level = attribute level { text }?
182 ## href attribute -- must have valid URI
183 muse.attribute.href = attribute href { xsd:anyURI }?
186 muse.attribute.id = attribute id { text }?
188 # ------------------------------------------------
190 # ------------------------------------------------
193 muse.element.table = element table {
195 & muse.element.thead*
196 & muse.element.tfoot* }?
198 ## table body element
199 muse.element.tbody = element tbody { muse.element.tr* }?
201 ## table header element
202 muse.element.thead = element thead { muse.element.tr* }?
204 ## table footer element
205 muse.element.tfoot = element tfoot { muse.element.tr* }?
208 muse.element.tr = element tr {
213 muse.element.td = element td { text }?
216 muse.element.th = element th { text }?