summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/stex/schema/rnc/omdoc/omdocmtxt.rnc
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