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
|
# This is the Mathematical Markup Language (MathML) 3.0, an XML
# application for describing mathematical notation and capturing
# both its structure and content.
#
# Copyright 1998-2009 W3C (MIT, ERCIM, Keio)
#
# Use and distribution of this code are permitted under the terms
# W3C Software Notice and License
# http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
default namespace m = "http://www.w3.org/1998/Math/MathML"
namespace local = ""
start = math
math = element math {math.attributes,MathExpression*}
MathExpression = semantics
NonMathMLAtt = attribute (* - (local:*|m:*)) {xsd:string}
CommonDeprecatedAtt = attribute other {text}?
CommonAtt = attribute id {xsd:ID}?,
attribute xref {text}?,
attribute class {xsd:NMTOKENS}?,
attribute style {xsd:string}?,
attribute href {xsd:anyURI}?,
CommonDeprecatedAtt,
NonMathMLAtt*
math.attributes = CommonAtt,
attribute display {"block" | "inline"}?,
attribute maxwidth {length}?,
attribute overflow {"linebreak" | "scroll" | "elide" | "truncate" | "scale"}?,
attribute altimg {xsd:anyURI}?,
attribute altimg-width {length}?,
attribute altimg-height {length}?,
attribute altimg-valign {length | "top" | "middle" | "bottom"}?,
attribute alttext {text}?,
attribute cdgroup {xsd:anyURI}?,
math.deprecatedattributes
# the mathml3-presentation schema adds additional attributes
# to the math element, all those valid on mstyle
math.deprecatedattributes = attribute mode {xsd:string}?,
attribute macros {xsd:string}?
name = attribute name {xsd:NCName}
cd = attribute cd {xsd:NCName}
src = attribute src {xsd:anyURI}?
annotation = element annotation {annotation.attributes,text}
annotation-xml.model = (MathExpression|anyElement)*
anyElement = element (* - m:*) {(attribute * {text}|text| anyElement)*}
annotation-xml = element annotation-xml {annotation.attributes,
annotation-xml.model}
annotation.attributes = CommonAtt,
cd?,
name?,
DefEncAtt,
src?
DefEncAtt = attribute encoding {xsd:string}?,
attribute definitionURL {xsd:anyURI}?
semantics = element semantics {semantics.attributes,
MathExpression,
(annotation|annotation-xml)*}
semantics.attributes = CommonAtt,DefEncAtt,cd?,name?
length = xsd:string {
pattern = '\s*((-?[0-9]*(\.[0-9]*)?(e[mx]|in|cm|mm|p[xtc]|%)?)|(negative)?((very){0,2}thi(n|ck)|medium)mathspace)\s*'
}
|