blob: e4130acab1c6ab76b61e9e18ba373ef4374a4510 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# A RelaxNG schema for Open Mathematical documents (OMDoc 1.3) Module MTXT
# $Id: omdocmtxt.rnc 8967 2011-09-02 12:41:47Z kohlhase $
# $HeadURL: https://svn.omdoc.org/repos/omdoc/branches/omdoc-1.3/schema/rnc/omdocmtxt.rnc $
# See the documentation and examples at http://www.omdoc.org
# Copyright (c) 2004-2007 Michael Kohlhase, released under the GNU Public License (GPL)
default namespace omdoc = "http://omdoc.org/ns"
omdoc.class &= omtext*
#attribute for is a whitespace-separated list of URIrefs
for.attrib = attribute for {omdocrefs}
from.attrib = attribute from {omdocref}
mc.class = metadata.class & CMP*
mcf.class = mc.class & FMP*
rsttype = "abstract" | "introduction" | "annote" |
"conclusion" | "thesis" | "comment" | "antithesis" |
"elaboration" | "motivation" | "evidence" | "note" |
"warning" | "question" | "answer" | "transition"
statementtype = "axiom" | "definition" | "example" | "proof" |
"derive" | "hypothesis" | "notation"
assertiontype = "assertion" | "theorem" | "lemma" | "corollary" | "proposition" |
"conjecture" | "false-conjecture" | "obligation" |
"postulate" | "formula" | "assumption" | "rule"
verbalizes.attrib = attribute verbalizes {omdocrefs}
omtext.type.attrib = attribute type {rsttype | statementtype | assertiontype | xsd:anyURI}
index.attrib = attribute index {xsd:NMTOKEN}
parallel.attribs = verbalizes.attrib? & index.attrib? & omtext.type.attrib?
omtext.attribs = toplevel.attribs &
omtext.type.attrib? &
attribute for {omdocref}? &
attribute from {omdocref}? &
verbalizes.attrib?
omtext.model = mcf.class
omtext = element omtext {tref|(omtext.attribs & omtext.model)}
CMP.attribs = xml.lang.attrib & id.attribs
CMP.model = plike.class
CMP = element CMP {tref|(CMP.attribs & CMP.model)}
term.attribs = id.attribs &
attribute role {text}? &
attribute cdbase {xsd:anyURI}? &
attribute cd {xsd:NCName} &
attribute name {xsd:NCName}
term.model = inline.model
term = element term {tref|(term.attribs & term.model)}
FMP.attribs = id.attribs & attribute logic {xsd:NMTOKEN}?
FMP.model = (assumption*,conclusion*)|mobj
FMP = element FMP {tref|(FMP.attribs & FMP.model)}
assumption.attribs = id.attribs &
attribute inductive {"yes" | "no"}?
assumption.model = mobj
assumption = element assumption {tref|(assumption.attribs & assumption.model)}
conclusion.attribs = id.attribs
conclusion.model = mobj
conclusion = element conclusion {tref|(conclusion.attribs & conclusion.model)}
note.attribs = id.attribs & for.attrib? & parallel.attribs & attribute type {xsd:NMTOKEN}?
note.model = inline.model
note = element note {tref|(note.attribs & note.model)}
# index
index.att = attribute sort-by {text}? &
attribute see {omdocrefs}? &
attribute seealso {omdocrefs}? &
attribute links {list {xsd:anyURI*}}?
idx.attribs = id.attribs|xref.attrib
idx.model = idt? & ide+
idx = element idx {tref|(idx.attribs & idx.model)}
ide.attribs = (id.attribs & index.att & index.attrib) | xref.attrib
ide.model = idp*
ide = element ide {tref|(ide.attribs & ide.model)}
idt.attribs = id.attribs|xref.attrib
idt.model = inline.model
idt = element idt {tref|(idt.attribs & idt.model)}
idp.attribs = index.att
idp.model = inline.model
idp = element idp {tref|(idp.attribs & idp.model)}
# citations
citation.attribs = id.attribs & attribute bibrefs {text}
citation.model = empty
citation = element citation {tref|(citation.attribs & citation.model)}
# citations
oref.attribs = id.attribs & attribute href {xsd:anyURI}
oref.model = empty
oref = element oref {tref|(oref.attribs & oref.model)}
# what can go into a mathematical text
op.class = \term* & mobj* & note* & idx* & citation* & oref*
inline.class &=op.class
|