-
Notifications
You must be signed in to change notification settings - Fork 11
/
charlist.rnc
179 lines (150 loc) · 4.16 KB
/
charlist.rnc
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
unicode =
element unicode {
attribute unicode { text },
(entitygroups?, mathvariants?, unicodeblocks?, mathclasses?, charlist)*
}
charlist =
element charlist {character*}
character =
element character {
attlist.character,
unicodedata?,
combref*,
noncombref*,
afii?,
latex*,
varlatex*,
mathlatex*,
Elsevier?,
AMS?,
APS?,
ACS?,
AIP?,
IEEE?,
Wolfram?,
Springer?,
entity*,
font*,
comment?,
surrogate?,
bmp?,
operator-dictionary*,
description
}
attlist.character &=
attribute id { xsd:ID },
attribute dec { text },
attribute mode { "math" | "text" | "mixed" | "unknown" }?,
attribute image { "none" }?,
attribute type {
"alphabetic"
| "binaryop"
| "closing"
| "diacritic"
| "large"
| "normal"
| "opening"
| "punctuation"
| "relation"
| "other"
}?
unicodedata = element unicodedata {
attribute category { text }?,
attribute combclass { text }?,
attribute bidi { text }?,
attribute decomp { text }?,
attribute decimal { text }?,
attribute digit { text }?,
attribute numeric { text }?,
attribute mirror { text }?,
attribute unicode1 { text }?,
attribute comment { text }?,
attribute upper { text }?,
attribute lower { text }?,
attribute title { text }?,
attribute mathclass { text }?,
attribute alias { text }?
}
latex = element latex { attribute set { text }?, text }
varlatex = element varlatex { attribute set { text }?, text }
mathlatex = element mathlatex { attribute set { text }?, text }
font = element font {
attribute name { text },
attribute pos { text }
}
surrogate = element surrogate {
attribute mathvariant { text },
attribute ref { xsd:IDREF }
}
bmp = element bmp { attribute ref { xsd:IDREF }}
combref = element combref { attribute style {"above"|"below"|"over"},
attribute ref { xsd:IDREF }}
noncombref = element noncombref { attribute style {"above"|"below"|"over"},
attribute ref { xsd:IDREF }}
entity =
element entity {
attribute id { text },
attribute set { text },
attribute optional-semi { "yes" }?,
desc?, comment?, xref?
}
Elsevier = element Elsevier {
attribute grid { text },
attribute ent { text }?,
desc?, elsrender? }
AMS = element AMS { text }
APS = element APS { text }
ACS = element ACS { text }
AIP = element AIP { text }
IEEE = element IEEE { text }
afii = element afii { text }
Wolfram = element Wolfram { attribute id { xsd:ID }?, text }
Springer = element Springer { text }
comment = element comment { text }
description = element description {
attribute unicode { text }?,
text }
xref = element xref { text }
desc = element desc { text }
elsrender = element elsrender { text }
entitygroups = element entitygroups { group* }
group = element group { attlist.group, set* }
attlist.group &= attribute name { text }
set = element set {
attribute name { text },
attribute fpi { text }?
}
mathvariants =
element mathvariants { mathvariant* }
mathvariant = element mathvariant {
attribute name { text },
attribute description { text }
}
unicodeblocks = element unicodeblocks { block* }
block = element block {
attribute start { text },
attribute end { text },
attribute name { text }
}
mathclasses = element mathclasses { mathclass* }
mathclass = element mathclass {
attribute letter { text },
attribute name { text }
}
operator-dictionary = element operator-dictionary {
attribute form { text },
attribute lspace { text }?,
attribute rspace { text }?,
attribute minsize { text }?,
attribute largeop { "true" | "false" }?,
attribute movablelimits { "true" | "false" }?,
attribute stretchy { "true" | "false" }?,
attribute separator { "true" | "false" }?,
attribute accent { "true" | "false" }?,
attribute fence { "true" | "false" }?,
attribute symmetric { "true" | "false" }?,
attribute priority { text }?,
attribute linebreakstyle { "after" }?
}
start = unicode