mml 2.2.1 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +9 -0
  3. data/.rubocop.yml +4 -0
  4. data/.rubocop_todo.yml +36 -17
  5. data/CLAUDE.md +79 -0
  6. data/Gemfile +0 -2
  7. data/README.adoc +334 -82
  8. data/Rakefile +16 -1
  9. data/lib/mml/base/content/annotation.rb +30 -0
  10. data/lib/mml/base/content/annotation_xml.rb +31 -0
  11. data/lib/mml/base/content/apply.rb +27 -0
  12. data/lib/mml/base/content/arith.rb +243 -0
  13. data/lib/mml/base/content/bind.rb +27 -0
  14. data/lib/mml/base/content/bvar.rb +20 -0
  15. data/lib/mml/base/content/calculus.rb +103 -0
  16. data/lib/mml/base/content/cbytes.rb +24 -0
  17. data/lib/mml/base/content/cerror.rb +24 -0
  18. data/lib/mml/base/content/ci.rb +77 -0
  19. data/lib/mml/base/content/cn.rb +33 -0
  20. data/lib/mml/base/content/condition.rb +20 -0
  21. data/lib/mml/base/content/constants.rb +173 -0
  22. data/lib/mml/base/content/cs.rb +22 -0
  23. data/lib/mml/base/content/csymbol.rb +79 -0
  24. data/lib/mml/base/content/declare.rb +34 -0
  25. data/lib/mml/base/content/degree.rb +20 -0
  26. data/lib/mml/base/content/elementary_functions.rb +309 -0
  27. data/lib/mml/base/content/fn.rb +25 -0
  28. data/lib/mml/base/content/functions.rb +85 -0
  29. data/lib/mml/base/content/interval.rb +24 -0
  30. data/lib/mml/base/content/inverse.rb +25 -0
  31. data/lib/mml/base/content/lambda.rb +20 -0
  32. data/lib/mml/base/content/linear_algebra.rb +122 -0
  33. data/lib/mml/base/content/logic.rb +93 -0
  34. data/lib/mml/base/content/otherwise.rb +20 -0
  35. data/lib/mml/base/content/piece.rb +20 -0
  36. data/lib/mml/base/content/piecewise.rb +20 -0
  37. data/lib/mml/base/content/relations.rb +113 -0
  38. data/lib/mml/base/content/reln.rb +19 -0
  39. data/lib/mml/base/content/semantics.rb +27 -0
  40. data/lib/mml/base/content/sep.rb +19 -0
  41. data/lib/mml/base/content/sets.rb +163 -0
  42. data/lib/mml/base/content/share.rb +24 -0
  43. data/lib/mml/base/content/statistics.rb +95 -0
  44. data/lib/mml/base/content/vector_calculus.rb +63 -0
  45. data/lib/mml/base/content_loader.rb +195 -0
  46. data/lib/mml/base/deprecated_font_attributes.rb +31 -0
  47. data/lib/mml/base/maction.rb +29 -0
  48. data/lib/mml/base/maligngroup.rb +26 -0
  49. data/lib/mml/base/malignmark.rb +26 -0
  50. data/lib/mml/base/math.rb +64 -0
  51. data/lib/mml/base/menclose.rb +27 -0
  52. data/lib/mml/base/merror.rb +25 -0
  53. data/lib/mml/base/mfenced.rb +34 -0
  54. data/lib/mml/base/mfrac.rb +35 -0
  55. data/lib/mml/base/mfraction.rb +33 -0
  56. data/lib/mml/base/mglyph.rb +44 -0
  57. data/lib/mml/base/mi.rb +37 -0
  58. data/lib/mml/base/mlabeledtr.rb +33 -0
  59. data/lib/mml/base/mlongdiv.rb +31 -0
  60. data/lib/mml/base/mmultiscripts.rb +31 -0
  61. data/lib/mml/base/mn.rb +35 -0
  62. data/lib/mml/base/mo.rb +74 -0
  63. data/lib/mml/base/mover.rb +29 -0
  64. data/lib/mml/base/mpadded.rb +35 -0
  65. data/lib/mml/base/mphantom.rb +25 -0
  66. data/lib/mml/base/mprescripts.rb +24 -0
  67. data/lib/mml/base/mroot.rb +25 -0
  68. data/lib/mml/base/mrow.rb +27 -0
  69. data/lib/mml/base/ms.rb +35 -0
  70. data/lib/mml/base/mscarries.rb +33 -0
  71. data/lib/mml/base/mscarry.rb +29 -0
  72. data/lib/mml/base/msgroup.rb +31 -0
  73. data/lib/mml/base/msline.rb +34 -0
  74. data/lib/mml/base/mspace.rb +52 -0
  75. data/lib/mml/base/msqrt.rb +25 -0
  76. data/lib/mml/base/msrow.rb +27 -0
  77. data/lib/mml/base/mstack.rb +33 -0
  78. data/lib/mml/base/mstyle.rb +185 -0
  79. data/lib/mml/base/msub.rb +27 -0
  80. data/lib/mml/base/msubsup.rb +29 -0
  81. data/lib/mml/base/msup.rb +27 -0
  82. data/lib/mml/base/mtable.rb +65 -0
  83. data/lib/mml/base/mtd.rb +35 -0
  84. data/lib/mml/base/mtext.rb +30 -0
  85. data/lib/mml/base/mtr.rb +35 -0
  86. data/lib/mml/base/munder.rb +31 -0
  87. data/lib/mml/base/munderover.rb +31 -0
  88. data/lib/mml/base/none.rb +24 -0
  89. data/lib/mml/base/semantics.rb +25 -0
  90. data/lib/mml/base/universal_presentation_attributes.rb +42 -0
  91. data/lib/mml/base/v3_common.rb +16 -0
  92. data/lib/mml/base/v3_only/operator_attrs.rb +24 -0
  93. data/lib/mml/base/v3_only/style_attrs.rb +31 -0
  94. data/lib/mml/base/v3_only/table_attrs.rb +28 -0
  95. data/lib/mml/base/v3_only.rb +11 -0
  96. data/lib/mml/base/v3_presentation_attributes.rb +15 -0
  97. data/lib/mml/base/v4_attributes.rb +16 -0
  98. data/lib/mml/base.rb +61 -0
  99. data/lib/mml/common_elements.rb +419 -0
  100. data/lib/mml/context_configuration.rb +147 -0
  101. data/lib/mml/context_options.rb +64 -0
  102. data/lib/mml/namespace.rb +10 -0
  103. data/lib/mml/v2/annotation.rb +9 -0
  104. data/lib/mml/v2/annotation_xml.rb +9 -0
  105. data/lib/mml/v2/apply.rb +9 -0
  106. data/lib/mml/v2/arith.rb +93 -0
  107. data/lib/mml/v2/bind.rb +9 -0
  108. data/lib/mml/v2/bvar.rb +9 -0
  109. data/lib/mml/v2/calculus.rb +33 -0
  110. data/lib/mml/v2/ci.rb +9 -0
  111. data/lib/mml/v2/cn.rb +9 -0
  112. data/lib/mml/v2/common_elements.rb +34 -0
  113. data/lib/mml/v2/condition.rb +9 -0
  114. data/lib/mml/v2/configuration.rb +13 -0
  115. data/lib/mml/v2/constants.rb +65 -0
  116. data/lib/mml/v2/csymbol.rb +9 -0
  117. data/lib/mml/v2/degree.rb +9 -0
  118. data/lib/mml/v2/elementary_functions.rb +121 -0
  119. data/lib/mml/v2/fn.rb +9 -0
  120. data/lib/mml/v2/functions.rb +29 -0
  121. data/lib/mml/v2/interval.rb +9 -0
  122. data/lib/mml/v2/inverse.rb +9 -0
  123. data/lib/mml/v2/lambda.rb +9 -0
  124. data/lib/mml/v2/linear_algebra.rb +41 -0
  125. data/lib/mml/v2/logic.rb +33 -0
  126. data/lib/mml/v2/maction.rb +9 -0
  127. data/lib/mml/v2/maligngroup.rb +9 -0
  128. data/lib/mml/v2/malignmark.rb +9 -0
  129. data/lib/mml/v2/math.rb +11 -0
  130. data/lib/mml/v2/menclose.rb +9 -0
  131. data/lib/mml/v2/merror.rb +9 -0
  132. data/lib/mml/v2/mfenced.rb +9 -0
  133. data/lib/mml/v2/mfrac.rb +9 -0
  134. data/lib/mml/v2/mfraction.rb +9 -0
  135. data/lib/mml/v2/mglyph.rb +9 -0
  136. data/lib/mml/v2/mi.rb +9 -0
  137. data/lib/mml/v2/mlabeledtr.rb +9 -0
  138. data/lib/mml/v2/mlongdiv.rb +9 -0
  139. data/lib/mml/v2/mmultiscripts.rb +9 -0
  140. data/lib/mml/v2/mn.rb +9 -0
  141. data/lib/mml/v2/mo.rb +10 -0
  142. data/lib/mml/v2/mover.rb +9 -0
  143. data/lib/mml/v2/mpadded.rb +9 -0
  144. data/lib/mml/v2/mphantom.rb +9 -0
  145. data/lib/mml/v2/mprescripts.rb +9 -0
  146. data/lib/mml/v2/mroot.rb +9 -0
  147. data/lib/mml/v2/mrow.rb +9 -0
  148. data/lib/mml/v2/ms.rb +9 -0
  149. data/lib/mml/v2/mscarries.rb +9 -0
  150. data/lib/mml/v2/mscarry.rb +9 -0
  151. data/lib/mml/v2/msgroup.rb +9 -0
  152. data/lib/mml/v2/msline.rb +9 -0
  153. data/lib/mml/v2/mspace.rb +9 -0
  154. data/lib/mml/v2/msqrt.rb +9 -0
  155. data/lib/mml/v2/msrow.rb +9 -0
  156. data/lib/mml/v2/mstack.rb +9 -0
  157. data/lib/mml/v2/mstyle.rb +10 -0
  158. data/lib/mml/v2/msub.rb +9 -0
  159. data/lib/mml/v2/msubsup.rb +9 -0
  160. data/lib/mml/v2/msup.rb +9 -0
  161. data/lib/mml/v2/mtable.rb +9 -0
  162. data/lib/mml/v2/mtd.rb +9 -0
  163. data/lib/mml/v2/mtext.rb +9 -0
  164. data/lib/mml/v2/mtr.rb +9 -0
  165. data/lib/mml/v2/munder.rb +9 -0
  166. data/lib/mml/v2/munderover.rb +9 -0
  167. data/lib/mml/v2/namespace.rb +7 -0
  168. data/lib/mml/v2/none.rb +9 -0
  169. data/lib/mml/v2/otherwise.rb +9 -0
  170. data/lib/mml/v2/piece.rb +9 -0
  171. data/lib/mml/v2/piecewise.rb +9 -0
  172. data/lib/mml/v2/relations.rb +41 -0
  173. data/lib/mml/v2/reln.rb +13 -0
  174. data/lib/mml/v2/semantics.rb +9 -0
  175. data/lib/mml/v2/sep.rb +9 -0
  176. data/lib/mml/v2/sets.rb +57 -0
  177. data/lib/mml/v2/statistics.rb +33 -0
  178. data/lib/mml/v2/vector_calculus.rb +21 -0
  179. data/lib/mml/v2.rb +311 -0
  180. data/lib/mml/v3/annotation.rb +10 -0
  181. data/lib/mml/v3/annotation_xml.rb +10 -0
  182. data/lib/mml/v3/apply.rb +10 -0
  183. data/lib/mml/v3/arith.rb +115 -0
  184. data/lib/mml/v3/bind.rb +10 -0
  185. data/lib/mml/v3/calculus.rb +40 -0
  186. data/lib/mml/v3/cbytes.rb +10 -0
  187. data/lib/mml/v3/cerror.rb +10 -0
  188. data/lib/mml/v3/ci.rb +10 -0
  189. data/lib/mml/v3/cn.rb +10 -0
  190. data/lib/mml/v3/common_elements.rb +42 -0
  191. data/lib/mml/v3/configuration.rb +4 -96
  192. data/lib/mml/v3/constants.rb +80 -0
  193. data/lib/mml/v3/constructs.rb +55 -0
  194. data/lib/mml/v3/cs.rb +10 -0
  195. data/lib/mml/v3/csymbol.rb +10 -0
  196. data/lib/mml/v3/deprecated_content.rb +29 -0
  197. data/lib/mml/v3/elementary_functions.rb +145 -0
  198. data/lib/mml/v3/functions.rb +35 -0
  199. data/lib/mml/v3/linear_algebra.rb +50 -0
  200. data/lib/mml/v3/logic.rb +40 -0
  201. data/lib/mml/v3/maction.rb +3 -15
  202. data/lib/mml/v3/maligngroup.rb +2 -12
  203. data/lib/mml/v3/malignmark.rb +2 -12
  204. data/lib/mml/v3/math.rb +7 -8
  205. data/lib/mml/v3/menclose.rb +3 -14
  206. data/lib/mml/v3/merror.rb +3 -12
  207. data/lib/mml/v3/mfenced.rb +3 -21
  208. data/lib/mml/v3/mfrac.rb +3 -20
  209. data/lib/mml/v3/mfraction.rb +3 -20
  210. data/lib/mml/v3/mglyph.rb +3 -38
  211. data/lib/mml/v3/mi.rb +4 -30
  212. data/lib/mml/v3/mlabeledtr.rb +2 -23
  213. data/lib/mml/v3/mlongdiv.rb +3 -18
  214. data/lib/mml/v3/mmultiscripts.rb +3 -20
  215. data/lib/mml/v3/mn.rb +4 -30
  216. data/lib/mml/v3/mo.rb +5 -78
  217. data/lib/mml/v3/mover.rb +3 -16
  218. data/lib/mml/v3/mpadded.rb +3 -22
  219. data/lib/mml/v3/mphantom.rb +3 -12
  220. data/lib/mml/v3/mprescripts.rb +2 -10
  221. data/lib/mml/v3/mroot.rb +3 -12
  222. data/lib/mml/v3/mrow.rb +4 -18
  223. data/lib/mml/v3/ms.rb +5 -36
  224. data/lib/mml/v3/mscarries.rb +3 -20
  225. data/lib/mml/v3/mscarry.rb +3 -16
  226. data/lib/mml/v3/msgroup.rb +3 -18
  227. data/lib/mml/v3/msline.rb +2 -20
  228. data/lib/mml/v3/mspace.rb +3 -50
  229. data/lib/mml/v3/msqrt.rb +3 -12
  230. data/lib/mml/v3/msrow.rb +3 -14
  231. data/lib/mml/v3/mstack.rb +3 -20
  232. data/lib/mml/v3/mstyle.rb +6 -204
  233. data/lib/mml/v3/msub.rb +3 -14
  234. data/lib/mml/v3/msubsup.rb +3 -16
  235. data/lib/mml/v3/msup.rb +3 -14
  236. data/lib/mml/v3/mtable.rb +3 -53
  237. data/lib/mml/v3/mtd.rb +3 -16
  238. data/lib/mml/v3/mtext.rb +4 -30
  239. data/lib/mml/v3/mtr.rb +2 -21
  240. data/lib/mml/v3/munder.rb +3 -18
  241. data/lib/mml/v3/munderover.rb +3 -18
  242. data/lib/mml/v3/namespace.rb +1 -4
  243. data/lib/mml/v3/none.rb +2 -10
  244. data/lib/mml/v3/relations.rb +50 -0
  245. data/lib/mml/v3/semantics.rb +3 -12
  246. data/lib/mml/v3/sets.rb +70 -0
  247. data/lib/mml/v3/statistics.rb +40 -0
  248. data/lib/mml/v3/vector_calculus.rb +25 -0
  249. data/lib/mml/v3.rb +74 -75
  250. data/lib/mml/v4/a.rb +3 -13
  251. data/lib/mml/v4/annotation.rb +10 -0
  252. data/lib/mml/v4/annotation_xml.rb +14 -0
  253. data/lib/mml/v4/apply.rb +9 -0
  254. data/lib/mml/v4/arith.rb +93 -0
  255. data/lib/mml/v4/calculus.rb +25 -0
  256. data/lib/mml/v4/cbytes.rb +9 -0
  257. data/lib/mml/v4/cerror.rb +9 -0
  258. data/lib/mml/v4/ci.rb +9 -0
  259. data/lib/mml/v4/cn.rb +9 -0
  260. data/lib/mml/v4/common_elements.rb +46 -0
  261. data/lib/mml/v4/configuration.rb +4 -97
  262. data/lib/mml/v4/constants.rb +65 -0
  263. data/lib/mml/v4/constructs.rb +49 -0
  264. data/lib/mml/v4/cs.rb +9 -0
  265. data/lib/mml/v4/csymbol.rb +9 -0
  266. data/lib/mml/v4/deprecated_content.rb +25 -0
  267. data/lib/mml/v4/elementary_functions.rb +118 -0
  268. data/lib/mml/v4/factorof.rb +9 -0
  269. data/lib/mml/v4/functions.rb +30 -0
  270. data/lib/mml/v4/limit.rb +9 -0
  271. data/lib/mml/v4/linear_algebra.rb +41 -0
  272. data/lib/mml/v4/logic.rb +33 -0
  273. data/lib/mml/v4/maction.rb +3 -19
  274. data/lib/mml/v4/maligngroup.rb +3 -17
  275. data/lib/mml/v4/malignmark.rb +3 -17
  276. data/lib/mml/v4/math.rb +4 -14
  277. data/lib/mml/v4/menclose.rb +3 -18
  278. data/lib/mml/v4/merror.rb +3 -16
  279. data/lib/mml/v4/mfenced.rb +3 -25
  280. data/lib/mml/v4/mfrac.rb +3 -24
  281. data/lib/mml/v4/mfraction.rb +3 -20
  282. data/lib/mml/v4/mglyph.rb +3 -35
  283. data/lib/mml/v4/mi.rb +4 -30
  284. data/lib/mml/v4/mlabeledtr.rb +5 -23
  285. data/lib/mml/v4/mlongdiv.rb +3 -18
  286. data/lib/mml/v4/mmultiscripts.rb +3 -24
  287. data/lib/mml/v4/mn.rb +4 -29
  288. data/lib/mml/v4/mo.rb +4 -75
  289. data/lib/mml/v4/mover.rb +3 -20
  290. data/lib/mml/v4/mpadded.rb +3 -26
  291. data/lib/mml/v4/mphantom.rb +3 -16
  292. data/lib/mml/v4/mprescripts.rb +3 -11
  293. data/lib/mml/v4/mroot.rb +3 -16
  294. data/lib/mml/v4/mrow.rb +4 -20
  295. data/lib/mml/v4/ms.rb +4 -34
  296. data/lib/mml/v4/mscarries.rb +3 -20
  297. data/lib/mml/v4/mscarry.rb +3 -16
  298. data/lib/mml/v4/msgroup.rb +3 -18
  299. data/lib/mml/v4/msline.rb +3 -21
  300. data/lib/mml/v4/mspace.rb +3 -49
  301. data/lib/mml/v4/msqrt.rb +3 -16
  302. data/lib/mml/v4/msrow.rb +3 -18
  303. data/lib/mml/v4/mstack.rb +3 -24
  304. data/lib/mml/v4/mstyle.rb +4 -186
  305. data/lib/mml/v4/msub.rb +3 -18
  306. data/lib/mml/v4/msubsup.rb +3 -20
  307. data/lib/mml/v4/msup.rb +3 -18
  308. data/lib/mml/v4/mtable.rb +3 -55
  309. data/lib/mml/v4/mtd.rb +3 -20
  310. data/lib/mml/v4/mtext.rb +4 -29
  311. data/lib/mml/v4/mtr.rb +3 -25
  312. data/lib/mml/v4/munder.rb +3 -22
  313. data/lib/mml/v4/munderover.rb +3 -22
  314. data/lib/mml/v4/namespace.rb +1 -4
  315. data/lib/mml/v4/none.rb +5 -11
  316. data/lib/mml/v4/relations.rb +37 -0
  317. data/lib/mml/v4/semantics.rb +3 -12
  318. data/lib/mml/v4/sets.rb +57 -0
  319. data/lib/mml/v4/statistics.rb +33 -0
  320. data/lib/mml/v4/tendsto.rb +9 -0
  321. data/lib/mml/v4/vector_calculus.rb +21 -0
  322. data/lib/mml/v4.rb +426 -71
  323. data/lib/mml/version.rb +1 -1
  324. data/lib/mml/versioned_parser.rb +46 -0
  325. data/lib/mml.rb +36 -6
  326. data/reference-docs/mathml-source/pubtext/mathmlspec.dtd +150 -0
  327. data/reference-docs/mathml-source/pubtext/xmlspec.dtd +2649 -0
  328. data/reference-docs/mathml-source/readme.txt +40 -0
  329. data/reference-docs/mathml-source/run +296 -0
  330. data/reference-docs/mathml-source/style/html/html2xhtml.xsl +216 -0
  331. data/reference-docs/mathml-source/style/html/images.xsl +98 -0
  332. data/reference-docs/mathml-source/style/html/mml6.xsl +1156 -0
  333. data/reference-docs/mathml-source/style/html/mmldiff.xsl +566 -0
  334. data/reference-docs/mathml-source/style/html/mmlspec.xsl +2531 -0
  335. data/reference-docs/mathml-source/style/html/slices-common.xsl +312 -0
  336. data/reference-docs/mathml-source/style/html/slices.xsl +48 -0
  337. data/reference-docs/mathml-source/style/html/xmlspec.xsl +2542 -0
  338. data/reference-docs/mathml-source/style/pdf/mathmlspec.xsl +2510 -0
  339. data/reference-docs/mathml-source/xml/changes.xml +773 -0
  340. data/reference-docs/mathml-source/xml/character-set.xml +1011 -0
  341. data/reference-docs/mathml-source/xml/content-element-def.xml +6143 -0
  342. data/reference-docs/mathml-source/xml/content-markup.xml +8178 -0
  343. data/reference-docs/mathml-source/xml/contributors.xml +425 -0
  344. data/reference-docs/mathml-source/xml/dom-bindings.xml +20 -0
  345. data/reference-docs/mathml-source/xml/dom-intro.xml +114 -0
  346. data/reference-docs/mathml-source/xml/fundamentals.xml +1646 -0
  347. data/reference-docs/mathml-source/xml/glossary.xml +519 -0
  348. data/reference-docs/mathml-source/xml/interface.xml +1096 -0
  349. data/reference-docs/mathml-source/xml/introduction.xml +724 -0
  350. data/reference-docs/mathml-source/xml/mathml-css-sample.xml +304 -0
  351. data/reference-docs/mathml-source/xml/mathml-dom.xml +3813 -0
  352. data/reference-docs/mathml-source/xml/mathml-spec.xml +356 -0
  353. data/reference-docs/mathml-source/xml/mixing.xml +982 -0
  354. data/reference-docs/mathml-source/xml/operator-dict.xml +551 -0
  355. data/reference-docs/mathml-source/xml/parsing.xml +2565 -0
  356. data/reference-docs/mathml-source/xml/presentation-markup.xml +6834 -0
  357. data/reference-docs/mathml-source/xml/references.xml +323 -0
  358. data/reference-docs/mathml-source/xml/validation-grammar.xml +877 -0
  359. data/schemas/README.adoc +15 -0
  360. data/schemas/mathml2/CVS/Entries +4 -0
  361. data/schemas/mathml2/CVS/Repository +1 -0
  362. data/schemas/mathml2/CVS/Root +1 -0
  363. data/schemas/mathml2/common/CVS/Entries +4 -0
  364. data/schemas/mathml2/common/CVS/Repository +1 -0
  365. data/schemas/mathml2/common/CVS/Root +1 -0
  366. data/schemas/mathml2/common/common-attribs.xsd +41 -0
  367. data/schemas/mathml2/common/math.xsd +126 -0
  368. data/schemas/mathml2/common/xlink-href.xsd +20 -0
  369. data/schemas/mathml2/content/CVS/Entries +16 -0
  370. data/schemas/mathml2/content/CVS/Repository +1 -0
  371. data/schemas/mathml2/content/CVS/Root +1 -0
  372. data/schemas/mathml2/content/arith.xsd +90 -0
  373. data/schemas/mathml2/content/calculus.xsd +146 -0
  374. data/schemas/mathml2/content/common-attrib.xsd +30 -0
  375. data/schemas/mathml2/content/constants.xsd +83 -0
  376. data/schemas/mathml2/content/constructs.xsd +260 -0
  377. data/schemas/mathml2/content/elementary-functions.xsd +117 -0
  378. data/schemas/mathml2/content/functions.xsd +73 -0
  379. data/schemas/mathml2/content/linear-algebra.xsd +173 -0
  380. data/schemas/mathml2/content/logic.xsd +53 -0
  381. data/schemas/mathml2/content/relations.xsd +55 -0
  382. data/schemas/mathml2/content/semantics.xsd +85 -0
  383. data/schemas/mathml2/content/sets.xsd +236 -0
  384. data/schemas/mathml2/content/statistics.xsd +136 -0
  385. data/schemas/mathml2/content/tokens.xsd +120 -0
  386. data/schemas/mathml2/content/tokens.xsd.~1.3.~ +119 -0
  387. data/schemas/mathml2/content/vector-calculus.xsd +88 -0
  388. data/schemas/mathml2/mathml2.xsd +59 -0
  389. data/schemas/mathml2/presentation/CVS/Entries +12 -0
  390. data/schemas/mathml2/presentation/CVS/Repository +1 -0
  391. data/schemas/mathml2/presentation/CVS/Root +1 -0
  392. data/schemas/mathml2/presentation/action.xsd +44 -0
  393. data/schemas/mathml2/presentation/characters.xsd +37 -0
  394. data/schemas/mathml2/presentation/common-attribs.xsd +113 -0
  395. data/schemas/mathml2/presentation/common-types.xsd +103 -0
  396. data/schemas/mathml2/presentation/error.xsd +40 -0
  397. data/schemas/mathml2/presentation/layout.xsd +195 -0
  398. data/schemas/mathml2/presentation/scripts.xsd +186 -0
  399. data/schemas/mathml2/presentation/space.xsd +52 -0
  400. data/schemas/mathml2/presentation/style.xsd +69 -0
  401. data/schemas/mathml2/presentation/table.xsd +216 -0
  402. data/schemas/mathml2/presentation/tokens.xsd +124 -0
  403. data/schemas/mathml3/mathml3-common.xsd +99 -0
  404. data/schemas/mathml3/mathml3-content.xsd +684 -0
  405. data/schemas/mathml3/mathml3-presentation.xsd +2151 -0
  406. data/schemas/mathml3/mathml3-strict-content.xsd +186 -0
  407. data/schemas/mathml3/mathml3.xsd +9 -0
  408. metadata +308 -4
  409. data/lib/mml/v3/common_attributes.rb +0 -22
  410. data/lib/mml/v4/common_attributes.rb +0 -26
@@ -0,0 +1,2565 @@
1
+ <div1 id="parsing" role="appendixa"><head>Parsing MathML</head>
2
+ <!-- $Id: parsing.xml,v 1.70 2003/09/15 13:47:27 davidc Exp $ -->
3
+
4
+
5
+ <div2 diff="add" id="parsing_wellformed"><head>Use of MathML as Well-Formed
6
+ XML</head>
7
+
8
+ <p>A MathML document must be a well-formed XML documents using elements in
9
+ the MathML namespace as defined by this specification, however it is
10
+ not required that the document refer to any specific Document Type
11
+ Definition (DTD) or schema that specifies MathML. It is sometimes
12
+ advantagous <emph>not</emph> to specify such a language definition as
13
+ these files are large, often much larger than the MathML expression
14
+ and unless they have been previously cached by the MathML application,
15
+ the time taken to fetch the DTD or schema may have an appreciable
16
+ effect on the processing of the MathML document.</p>
17
+
18
+ <p>Note also that if no DTD is specified with a DOCTYPE declaration,
19
+ that entity references (for example to refer to MathML characters by
20
+ name) may not be used. The document should be encoded in an encoding
21
+ (for example UTF-8) in which all needed characters may be encoded as
22
+ character data, or characters may be referenced using numeric
23
+ character references, for example &amp;#x222B; rather than &amp;int;</p>
24
+
25
+ <p>If a MathML fragment is parsed without a DTD, in other words as a
26
+ well-formed XML fragment, it is the responsibility of the processing
27
+ application to treat the white space characters occurring
28
+ outside of token elements as not significant.</p>
29
+
30
+ <p>However, in many circumstances, especially while producing or
31
+ editing MathML, it is useful to use a language definition, to
32
+ constrain the editing process or to check the correctness of generated
33
+ files. The following section, <specref ref="parsing_usingdtdt"/>,
34
+ discusses the MathML DTD, which forms a normative part of the
35
+ specification. Following that, <specref ref="parsing_usingxsd"/>,
36
+ discusses an alternative language definition using the W3C XML schema
37
+ language, <bibref ref="XMLSchemas"/>. One should note that the
38
+ schema definition of the language is currently stricter than the DTD
39
+ version. That is, a schema validating processor will
40
+ declare invalid documents that are declared valid by a (DTD)
41
+ validating XML parser. This is partly due to the fact that the XML schema
42
+ language may express additional constraints not expressable in the
43
+ DTD, and partly due to the fact that for
44
+ reasons of compatibility with earlier releases, the DTD is
45
+ intentionally forgiving in some places and does not enforce
46
+ constraints that are specified in the text of this specification.</p>
47
+ </div2>
48
+
49
+ <div2 id="parsing_usingdtdt">
50
+ <head>Using the MathML DTD</head>
51
+
52
+ <div3 id="parsing_doctype"><head>DOCTYPE declaration for MathML</head>
53
+ <p>MathML documents should be validated using the XML DTD for
54
+ MathML,
55
+ <loc diff="chg"
56
+ href="http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">http://www.w3.org/Math/DTD/mathml2/mathml2.dtd</loc>,
57
+ which is also shown below in
58
+ <specref ref="parsing_dtd"/>.</p>
59
+
60
+ <p>Documents using this DTD should contain a doctype declaration
61
+ of the form:
62
+ <eg diff="chg"><![CDATA[
63
+ <!DOCTYPE math
64
+ PUBLIC "-//W3C//DTD MathML 2.0//EN"
65
+ "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"
66
+ >
67
+ ]]></eg>
68
+ The URI may be changed to that of a local copy
69
+ of the DTD if required.</p>
70
+ </div3>
71
+
72
+ <div3 id="parsing_dtd_param">
73
+ <head>DTD Parameters</head>
74
+
75
+ <p>The MathML DTD has several parameter entities that may be used to
76
+ customise the behaviour of the XML parser. In the examples below
77
+ these parameter entites are shown being used in the <emph>internal
78
+ subset</emph> of the DTD, i.e. within <code>[]</code> inside the
79
+ <code>&lt;!DOCTYPE</code> declaration. If the MathML DTD is being used
80
+ as a module in a larger document type, then these parameters entities
81
+ may be set in the combined DTD and need not be explictly set in
82
+ individual document instances. For example the combined XHTML + MathML
83
+ DTD described below in <specref ref="parsing_module"/> sets each of
84
+ these parameters to appropriate defaults.</p>
85
+
86
+ <div4 diff="chg" id="parsing_dtd_prefix">
87
+ <head>Namespace Prefix</head>
88
+ <p>It is sometimes necessary, or convenient, to
89
+ use the mechanisms described in <bibref ref="Modularization"/>
90
+ which provide a namespace prefix on
91
+ MathML element names. The DTD below is designed to allow this usage.
92
+ If the parameter entity <code>MATHML.prefixed</code> is declared to be
93
+ INCLUDE, using a declaration such as
94
+ <eg><![CDATA[
95
+ <!ENTITY % MATHML.prefixed "INCLUDE" >
96
+ ]]></eg>
97
+ either in the internal subset of the DOCTYPE declaration, or in the
98
+ DTD file that is including the MathML DTD, then all MathML elements
99
+ should be used with a prefix, for example <el role="starttag">m:mrow</el>,
100
+ <el role="starttag">m:apply</el>, etc. The prefix defaults to <code>m</code>
101
+ but another prefix may be declared by
102
+ declaring in addition the parameter entity <code>MathML.prefix</code>.
103
+ For example,
104
+ <eg><![CDATA[
105
+ <!ENTITY % MATHML.prefix "mml" >
106
+ ]]></eg>
107
+ would set the prefix for the MathML namespace to <code>mml</code>.</p>
108
+
109
+ <p>So a complete declaration for a document using this prefix could be:
110
+ <eg role="mathml-fragment"><![CDATA[
111
+ <!DOCTYPE mml:math
112
+ PUBLIC "-//W3C//DTD MathML 2.0//EN"
113
+ "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd" [
114
+ <!ENTITY % MATHML.prefixed "INCLUDE">
115
+ <!ENTITY % MATHML.prefix "mml">
116
+ ]>
117
+ <mml:math>
118
+ ...
119
+ ]]></eg>
120
+ This use of parameter entities to control namespace prefixes
121
+ follows the conventions specified in <bibref ref="Modularization"/>.</p>
122
+
123
+ <p>In addition to the prefix for the MathML namespace, the DTD
124
+ allows similar customization of other prefixes that may be used
125
+ in attributes. The Xlink and W3C XML schema instance namespaces
126
+ may be used with this DTD, with default prefixes <code>xlink</code>
127
+ and <code>xsi</code> respectively. The entities <code>XLINK.prefix</code> and
128
+ <code>Schema.prefix</code> may be set in the same way as
129
+ <code>MATHML.prefix</code> above to use different prefixes. As these
130
+ namespaces are used for attribute names, they must be used with
131
+ explict prefixes, so there is no analogue of the
132
+ <code>MATHML.prefixed</code> parameter in these cases.
133
+ The following example uses the <att>s:schemaLocation</att> attribute (which is
134
+ described below in <specref ref="parsing_schemalocation"/>)
135
+ with a non standard prefix, and uses a parameter entity in the internal
136
+ subset of the DTD so that the file may be DTD valid as well as
137
+ schema valid.</p>
138
+ <eg role="mathml-fragment"><![CDATA[
139
+ <!DOCTYPE math
140
+ PUBLIC "-//W3C//DTD MathML 2.0//EN"
141
+ "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd" [
142
+ <!ENTITY % Schema.prefix "s">
143
+ ]>
144
+ <math xmlns="http://www.w3.org/1998/Math/MathML"
145
+ xmlns:s="http://www.w3.org/2001/XMLSchema-instance"
146
+ s:schemaLocation="http://www.w3.org/1998/Math/MathML
147
+ http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd">
148
+
149
+ ...
150
+ ]]></eg>
151
+ <p>Note that while the <bibref ref="Namespaces"/> Recommendation provides
152
+ mechanisms to change the prefix at arbitrary points in the document,
153
+ this flexibility is <emph>not provided</emph> in this DTD (and is probably not
154
+ possible to specify in any DTD).</p>
155
+ </div4>
156
+
157
+
158
+ <div4 diff="add" id="parsing_dtd_strict">
159
+ <head>Additional DTD Checking</head>
160
+ <p>For reasons of backward compatibility, there are several
161
+ constraints specified in this specification that are <emph>not</emph>
162
+ enforced by the DTD by default. There are many constraints in the
163
+ specification that may not be enforced by a DTD, however there
164
+ are some additional constraints that could be checked.
165
+ The parameter entity <code>MathMLStrict</code>
166
+ may be set to <code>INCLUDE</code> to activate
167
+ these stricter checks.</p>
168
+ <p>The syntax to set the parameter is as the same as for the
169
+ previous examples:
170
+ <eg><![CDATA[
171
+ <!DOCTYPE math
172
+ PUBLIC "-//W3C//DTD MathML 2.0//EN"
173
+ "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd" [
174
+ <!ENTITY % MathMLstrict "INCLUDE">
175
+ ]>
176
+ ]]></eg>
177
+ </p>
178
+ <p>If this strict checking is enabled, the DTD will enforce that
179
+ <el>mfrac</el> has exactly two child elements. Similarly for
180
+ <el>msub</el>, <el>mover</el>, etc. The values of several
181
+ attributes will be checked, for example the value of
182
+ <att>mathvariant</att> is constrained to the list specified in <specref
183
+ ref="presm_commatt"/>. The DTD will check
184
+ that table makup, <el>mtr</el> and <el>mtd</el>, is only used correctly
185
+ nested in <el>mtable</el>. Finally the use of Presentation MathML
186
+ elements within Content MathML is restricted to those elements listed
187
+ in section <specref ref="mixing_pmincm"/>.</p>
188
+ </div4>
189
+
190
+ </div3>
191
+
192
+
193
+ <div3 id="parsing_module"><head>MathML as a DTD Module</head>
194
+ <p>Normally, however, a MathML expression does not constitute an entire
195
+ XML document. MathML is designed to be used as the mathematics fragment
196
+ of larger markup languages. In particular it is designed to be used
197
+ as a <emph>module</emph> in documents marked up with the XHTML
198
+ family of markup languages, as defined in
199
+ <bibref ref="Modularization"/>. As a convenience, a version of the
200
+ <loc href="http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">XHTML DTD,
201
+ extended with this MathML module</loc>, is also provided as a
202
+ concrete example. This version
203
+ includes all the necessary declarations included into one file (in contrast
204
+ to the standalone version of the MathML DTD which references several files
205
+ for entity declarations etc.).
206
+ To use this DTD, a document should contain the doctype declaration
207
+ <eg diff="chg"><![CDATA[
208
+ <!DOCTYPE html
209
+ PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
210
+ "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"
211
+ >
212
+ ]]></eg>
213
+ as above, the URI may be altered to that of a local copy of the DTD,
214
+ and the namespace prefixes used for XHTML and MathML may be
215
+ controlled by the use of parameter entities.</p>
216
+ </div3>
217
+
218
+
219
+ <div3 id="parsing_sgml"><head>SGML</head>
220
+ <p>If required, one may validate MathML documents using an SGML
221
+ parser such as <code>nsgmls</code>,
222
+ rather than a validating XML parser.
223
+ In this case an SGML declaration defining the
224
+ constraints of XML applicable to an SGML parser must be used.
225
+ See <phrase diff="chg"><bibref ref="sgml-xml"/></phrase>.</p>
226
+
227
+ </div3>
228
+
229
+
230
+ <div3 id="parsing_dtd"><head>The MathML DTD</head>
231
+
232
+ <p>The entity declarations for characters are referenced
233
+ at the end of the DTD.
234
+ These are linked to the character tables in <specref ref="chars"/>
235
+ for each entity set.</p>
236
+ <p>Lists of the combined MathML set of character names, ordered by
237
+ <loc href="byalpha.html">name</loc> or by
238
+ <loc href="bycodes.html">Unicode value</loc> are also available.</p>
239
+
240
+ <p>In order to accommodate XML namespace prefixes, the DTD does not
241
+ directly refer to an element name such as <el>mrow</el>
242
+ but instead always refers to the name via a parameter entity such as
243
+ <code>%mrow.qname;</code>. The definitions of these parameter
244
+ entities are in the file <loc href="http://www.w3.org/Math/DTD/mathml2/mathml2-qname-1.mod"/>
245
+ but are not shown here. They are simply declarations such as
246
+ the following, one for each MathML element.
247
+ <eg><![CDATA[
248
+ <!ENTITY % mrow.qname "%MATHML.pfx;mrow" >
249
+ ]]></eg>
250
+ </p>
251
+
252
+
253
+ <p>Here we give the main
254
+ body of the DTD. The full DTD, as well as the XHTML-Math DTD, is available
255
+ as a <loc href="http://www.w3.org/Math/DTD/mathml2.tgz">gzipped tar archive</loc>.</p>
256
+
257
+ <eg>
258
+ &lt;!-- MathML 2.0 DTD ....................................................... -->
259
+ &lt;!-- file: mathml2.dtd
260
+ -->
261
+
262
+ &lt;!-- MathML 2.0 DTD
263
+
264
+ This is the Mathematical Markup Language (MathML) 2.0, an XML
265
+ application for describing mathematical notation and capturing
266
+ both its structure and content.
267
+
268
+ Copyright &amp;#xa9; 1998-2003 W3C&amp;#xae; (MIT, ERCIM, Keio), All Rights
269
+ Reserved. W3C liability, trademark, document use and software
270
+ licensing rules apply.
271
+
272
+ Permission to use, copy, modify and distribute the MathML 2.0 DTD and
273
+ its accompanying documentation for any purpose and without fee is
274
+ hereby granted in perpetuity, provided that the above copyright notice
275
+ and this paragraph appear in all copies. The copyright holders make
276
+ no representation about the suitability of the DTD for any purpose.
277
+
278
+ It is provided "as is" without expressed or implied warranty.
279
+
280
+ Revision: $Id: parsing.xml,v 1.70 2003/09/15 13:47:27 davidc Exp $
281
+
282
+ This entity may be identified by the PUBLIC and SYSTEM identifiers:
283
+
284
+ PUBLIC "-//W3C//DTD MathML 2.0//EN"
285
+ SYSTEM "mathml2.dtd"
286
+
287
+ Revisions: editor and revision history at EOF
288
+ -->
289
+ <phrase diff="add">&lt;!-- Entity used to enable marked sections which enforces stricter</phrase>
290
+ <phrase diff="add"> checking of MathML syntax rules</phrase>
291
+ -->
292
+ <phrase diff="add"><phrase id='pent_MathMLstrict'/>&lt;!ENTITY % MathMLstrict "IGNORE"></phrase>
293
+
294
+ &lt;!-- MathML Qualified Names module ............................... -->
295
+ <phrase id='pent_mathml_qname.module'/>&lt;!ENTITY % mathml-qname.module "INCLUDE" >
296
+ <phrase>&lt;![<intref ref='pent_mathml_qname.module'>%mathml-qname.module;</intref>[
297
+ <phrase id='pent_mathml_qname.mod'/>&lt;!ENTITY % mathml-qname.mod
298
+ PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN"
299
+ "mathml2-qname-1.mod" >
300
+ <intref ref='pent_mathml_qname.mod'>%mathml-qname.mod;</intref>]]&gt;</phrase>
301
+
302
+ &lt;!-- if <intref ref='pent_mathml_qname.module'>%NS.prefixed;</intref> is INCLUDE, include all NS attributes,
303
+ otherwise just those associated with MathML
304
+ -->
305
+ <phrase>&lt;![<intref ref='pent_mathml_qname.module'>%NS.prefixed;</intref>[
306
+ &lt;!ENTITY % MATHML.NamespaceDecl.attrib
307
+ "<intref ref='pent_mathml_qname.module'>%NamespaceDecl.attrib;</intref>"
308
+ >
309
+ ]]&gt;</phrase>
310
+ <phrase id='pent_MATHML.NamespaceDecl.attrib'/>&lt;!ENTITY % MATHML.NamespaceDecl.attrib
311
+ "<intref ref='pent_mathml_qname.module'>%MATHML.xmlns.attrib;</intref>"
312
+ >
313
+
314
+
315
+ &lt;!-- Attributes shared by all elements .......................... -->
316
+
317
+ <phrase id='pent_MATHML.Common.attrib'/>&lt;!ENTITY % MATHML.Common.attrib
318
+ "<intref ref='pent_MATHML.NamespaceDecl.attrib'>%MATHML.NamespaceDecl.attrib;</intref>
319
+ <phrase diff="add"> <intref ref='pent_mathml_qname.module'>%XLINK.prefix;</intref>:href CDATA #IMPLIED</phrase>
320
+ <phrase diff="chg"> <intref ref='pent_mathml_qname.module'>%XLINK.prefix;</intref>:type CDATA #IMPLIED</phrase>
321
+ class CDATA #IMPLIED
322
+ style CDATA #IMPLIED
323
+ id ID #IMPLIED
324
+ xref IDREF #IMPLIED
325
+ other CDATA #IMPLIED"
326
+ >
327
+
328
+ &lt;!-- Presentation element set ................................... -->
329
+
330
+ &lt;!-- Attribute definitions -->
331
+
332
+ <phrase id='pent_att_fontsize'/>&lt;!ENTITY % att-fontsize
333
+ "fontsize CDATA #IMPLIED" >
334
+ <phrase id='pent_att_fontweight'/>&lt;!ENTITY % att-fontweight
335
+ "fontweight ( normal | bold ) #IMPLIED" >
336
+ <phrase id='pent_att_fontstyle'/>&lt;!ENTITY % att-fontstyle
337
+ "fontstyle ( normal | italic ) #IMPLIED" >
338
+ <phrase id='pent_att_fontfamily'/>&lt;!ENTITY % att-fontfamily
339
+ "fontfamily CDATA #IMPLIED" >
340
+ <phrase id='pent_att_color'/>&lt;!ENTITY % att-color
341
+ "color CDATA #IMPLIED" >
342
+
343
+ &lt;!-- MathML2 typographically-distinguished symbol attributes -->
344
+
345
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
346
+ &lt;!ENTITY % att-mathvariant
347
+ "mathvariant ( normal | bold | italic | bold-italic | double-struck |
348
+ bold-fraktur | script | bold-script | fraktur |
349
+ sans-serif | bold-sans-serif | sans-serif-italic |
350
+ sans-serif-bold-italic | monospace )
351
+ #IMPLIED" >
352
+ ]]&gt;</phrase>
353
+ <phrase id='pent_att_mathvariant'/>&lt;!ENTITY % att-mathvariant
354
+ "mathvariant CDATA #IMPLIED" >
355
+ <phrase id='pent_att_mathsize'/>&lt;!ENTITY % att-mathsize
356
+ "mathsize CDATA #IMPLIED" >
357
+ <phrase id='pent_att_mathcolor'/>&lt;!ENTITY % att-mathcolor
358
+ "mathcolor CDATA #IMPLIED" >
359
+ <phrase id='pent_att_mathbackground'/>&lt;!ENTITY % att-mathbackground
360
+ "mathbackground CDATA #IMPLIED" >
361
+
362
+ <phrase id='pent_att_fontinfo'/>&lt;!ENTITY % att-fontinfo
363
+ "<intref ref='pent_att_fontsize'>%att-fontsize;</intref>
364
+ <intref ref='pent_att_fontweight'>%att-fontweight;</intref>
365
+ <intref ref='pent_att_fontstyle'>%att-fontstyle;</intref>
366
+ <intref ref='pent_att_fontfamily'>%att-fontfamily;</intref>
367
+ <intref ref='pent_att_color'>%att-color;</intref>
368
+ <intref ref='pent_att_mathvariant'>%att-mathvariant;</intref>
369
+ <intref ref='pent_att_mathsize'>%att-mathsize;</intref>
370
+ <intref ref='pent_att_mathcolor'>%att-mathcolor;</intref>
371
+ <intref ref='pent_att_mathbackground'>%att-mathbackground;</intref>"
372
+ >
373
+
374
+ <phrase id='pent_att_form'/>&lt;!ENTITY % att-form
375
+ "form ( prefix | infix | postfix ) #IMPLIED" >
376
+ <phrase id='pent_att_fence'/>&lt;!ENTITY % att-fence
377
+ "fence ( true | false ) #IMPLIED" >
378
+ <phrase id='pent_att_separator'/>&lt;!ENTITY % att-separator
379
+ "separator ( true | false ) #IMPLIED" >
380
+ <phrase id='pent_att_lspace'/>&lt;!ENTITY % att-lspace
381
+ "lspace CDATA #IMPLIED" >
382
+ <phrase id='pent_att_rspace'/>&lt;!ENTITY % att-rspace
383
+ "rspace CDATA #IMPLIED" >
384
+ <phrase id='pent_att_stretchy'/>&lt;!ENTITY % att-stretchy
385
+ "stretchy ( true | false ) #IMPLIED" >
386
+ <phrase id='pent_att_symmetric'/>&lt;!ENTITY % att-symmetric
387
+ "symmetric ( true | false ) #IMPLIED" >
388
+ <phrase id='pent_att_maxsize'/>&lt;!ENTITY % att-maxsize
389
+ "maxsize CDATA #IMPLIED" >
390
+ <phrase id='pent_att_minsize'/>&lt;!ENTITY % att-minsize
391
+ "minsize CDATA #IMPLIED" >
392
+ <phrase id='pent_att_largeop'/>&lt;!ENTITY % att-largeop
393
+ "largeop ( true | false) #IMPLIED" >
394
+ <phrase id='pent_att_movablelimits'/>&lt;!ENTITY % att-movablelimits
395
+ "movablelimits ( true | false ) #IMPLIED" >
396
+ <phrase id='pent_att_accent'/>&lt;!ENTITY % att-accent
397
+ "accent ( true | false ) #IMPLIED" >
398
+
399
+ <phrase id='pent_att_opinfo'/>&lt;!ENTITY % att-opinfo
400
+ "<intref ref='pent_att_form'>%att-form;</intref>
401
+ <intref ref='pent_att_fence'>%att-fence;</intref>
402
+ <intref ref='pent_att_separator'>%att-separator;</intref>
403
+ <intref ref='pent_att_lspace'>%att-lspace;</intref>
404
+ <intref ref='pent_att_rspace'>%att-rspace;</intref>
405
+ <intref ref='pent_att_stretchy'>%att-stretchy;</intref>
406
+ <intref ref='pent_att_symmetric'>%att-symmetric;</intref>
407
+ <intref ref='pent_att_maxsize'>%att-maxsize;</intref>
408
+ <intref ref='pent_att_minsize'>%att-minsize;</intref>
409
+ <intref ref='pent_att_largeop'>%att-largeop;</intref>
410
+ <intref ref='pent_att_movablelimits'>%att-movablelimits;</intref>
411
+ <intref ref='pent_att_accent'>%att-accent;</intref>"
412
+ >
413
+ <phrase id='pent_att_width'/>&lt;!ENTITY % att-width
414
+ "width CDATA #IMPLIED" >
415
+ <phrase id='pent_att_height'/>&lt;!ENTITY % att-height
416
+ "height CDATA #IMPLIED" >
417
+ <phrase id='pent_att_depth'/>&lt;!ENTITY % att-depth
418
+ "depth CDATA #IMPLIED" >
419
+ <phrase id='pent_att_linebreak'/>&lt;!ENTITY % att-linebreak
420
+ "linebreak CDATA #IMPLIED" >
421
+ <phrase id='pent_att_sizeinfo'/>&lt;!ENTITY % att-sizeinfo
422
+ "<intref ref='pent_att_width'>%att-width;</intref>
423
+ <intref ref='pent_att_height'>%att-height;</intref>
424
+ <intref ref='pent_att_depth'>%att-depth;</intref>"
425
+ >
426
+ <phrase id='pent_att_lquote'/>&lt;!ENTITY % att-lquote
427
+ "lquote CDATA #IMPLIED" >
428
+ <phrase id='pent_att_rquote'/>&lt;!ENTITY % att-rquote
429
+ "rquote CDATA #IMPLIED" >
430
+ <phrase id='pent_att_linethickness'/>&lt;!ENTITY % att-linethickness
431
+ "linethickness CDATA #IMPLIED" >
432
+ <phrase id='pent_att_scriptlevel'/>&lt;!ENTITY % att-scriptlevel
433
+ "scriptlevel CDATA #IMPLIED" >
434
+ <phrase id='pent_att_displaystyle'/>&lt;!ENTITY % att-displaystyle
435
+ "displaystyle ( true | false ) #IMPLIED" >
436
+ <phrase id='pent_att_scriptsizemultiplier'/>&lt;!ENTITY % att-scriptsizemultiplier
437
+ "scriptsizemultiplier CDATA #IMPLIED" >
438
+ <phrase id='pent_att_scriptminsize'/>&lt;!ENTITY % att-scriptminsize
439
+ "scriptminsize CDATA #IMPLIED" >
440
+ <phrase id='pent_att_background'/>&lt;!ENTITY % att-background
441
+ "background CDATA #IMPLIED" >
442
+ <phrase id='pent_att_veryverythinmathspace'/>&lt;!ENTITY % att-veryverythinmathspace
443
+ "veryverythinmathspace CDATA #IMPLIED" >
444
+ <phrase id='pent_att_verythinmathspace'/>&lt;!ENTITY % att-verythinmathspace
445
+ "verythinmathspace CDATA #IMPLIED" >
446
+ <phrase id='pent_att_thinmathspace'/>&lt;!ENTITY % att-thinmathspace
447
+ "thinmathspace CDATA #IMPLIED" >
448
+ <phrase id='pent_att_mediummathspace'/>&lt;!ENTITY % att-mediummathspace
449
+ "mediummathspace CDATA #IMPLIED" >
450
+ <phrase id='pent_att_thickmathspace'/>&lt;!ENTITY % att-thickmathspace
451
+ "thickmathspace CDATA #IMPLIED" >
452
+ <phrase id='pent_att_verythickmathspace'/>&lt;!ENTITY % att-verythickmathspace
453
+ "verythickmathspace CDATA #IMPLIED" >
454
+ <phrase id='pent_att_veryverythickmathspace'/>&lt;!ENTITY % att-veryverythickmathspace
455
+ "veryverythickmathspace CDATA #IMPLIED" >
456
+ <phrase id='pent_att_open'/>&lt;!ENTITY % att-open
457
+ "open CDATA #IMPLIED" >
458
+ <phrase id='pent_att_close'/>&lt;!ENTITY % att-close
459
+ "close CDATA #IMPLIED" >
460
+ <phrase id='pent_att_separators'/>&lt;!ENTITY % att-separators
461
+ "separators CDATA #IMPLIED" >
462
+ <phrase id='pent_att_subscriptshift'/>&lt;!ENTITY % att-subscriptshift
463
+ "subscriptshift CDATA #IMPLIED" >
464
+ <phrase id='pent_att_superscriptshift'/>&lt;!ENTITY % att-superscriptshift
465
+ "superscriptshift CDATA #IMPLIED" >
466
+ <phrase id='pent_att_accentunder'/>&lt;!ENTITY % att-accentunder
467
+ "accentunder ( true | false ) #IMPLIED" >
468
+ <phrase id='pent_att_align'/>&lt;!ENTITY % att-align
469
+ "align CDATA #IMPLIED" >
470
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
471
+ <phrase diff="chg"> &lt;!ENTITY % att-numalign</phrase>
472
+ "numalign ( left | center | right ) #IMPLIED" >
473
+ &lt;!ENTITY % att-denomalign
474
+ "denomalign ( left | center | right ) #IMPLIED" >
475
+ ]]&gt;</phrase>
476
+ <phrase diff="add"><phrase id='pent_att_numalign'/>&lt;!ENTITY % att-numalign</phrase>
477
+ <phrase diff="add"> "numalign CDATA #IMPLIED" ></phrase>
478
+ <phrase diff="add"><phrase id='pent_att_denomalign'/>&lt;!ENTITY % att-denomalign</phrase>
479
+ <phrase diff="add"> "denomalign CDATA #IMPLIED" ></phrase>
480
+ <phrase diff="add"><phrase id='pent_att-rowalign-list'/>&lt;!ENTITY % att-rowalign-list</phrase>
481
+ <phrase diff="add"> "rowalign CDATA #IMPLIED" ></phrase>
482
+ <phrase diff="add"><phrase id='pent_att-columnalign-list'/>&lt;!ENTITY % att-columnalign-list</phrase>
483
+ <phrase diff="add"> "columnalign CDATA #IMPLIED" ></phrase>
484
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
485
+ &lt;!ENTITY % att-rowalign
486
+ "rowalign ( top | bottom | center | baseline | axis ) #IMPLIED" >
487
+ &lt;!ENTITY % att-columnalign
488
+ "columnalign ( left | center | right ) #IMPLIED" >
489
+ ]]&gt;</phrase>
490
+ <phrase id='pent_att_rowalign'/>&lt;!ENTITY % att-rowalign
491
+ "rowalign CDATA #IMPLIED" >
492
+ <phrase id='pent_att_columnalign'/>&lt;!ENTITY % att-columnalign
493
+ "columnalign CDATA #IMPLIED" >
494
+ <phrase id='pent_att_columnwidth'/>&lt;!ENTITY % att-columnwidth
495
+ "columnwidth CDATA #IMPLIED" >
496
+ <phrase diff="add"><phrase id='pent_att-groupalign-list'/>&lt;!ENTITY % att-groupalign-list</phrase>
497
+ <phrase diff="add"> "groupalign CDATA #IMPLIED" ></phrase>
498
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
499
+ &lt;!ENTITY % att-groupalign
500
+ "groupalign ( left | right | center | decimalpoint ) #IMPLIED" >
501
+ ]]&gt;</phrase>
502
+ <phrase id='pent_att_groupalign'/>&lt;!ENTITY % att-groupalign
503
+ "groupalign CDATA #IMPLIED" >
504
+ <phrase id='pent_att_alignmentscope'/>&lt;!ENTITY % att-alignmentscope
505
+ "alignmentscope CDATA #IMPLIED" >
506
+ <phrase id='pent_att_rowspacing'/>&lt;!ENTITY % att-rowspacing
507
+ "rowspacing CDATA #IMPLIED" >
508
+ <phrase id='pent_att_columnspacing'/>&lt;!ENTITY % att-columnspacing
509
+ "columnspacing CDATA #IMPLIED" >
510
+ <phrase id='pent_att_rowlines'/>&lt;!ENTITY % att-rowlines
511
+ "rowlines CDATA #IMPLIED" >
512
+ <phrase id='pent_att_columnlines'/>&lt;!ENTITY % att-columnlines
513
+ "columnlines CDATA #IMPLIED" >
514
+ <phrase id='pent_att_frame'/>&lt;!ENTITY % att-frame
515
+ "frame ( none | solid | dashed ) #IMPLIED" >
516
+ <phrase diff="add"><phrase id='pent_att_side'/>&lt;!ENTITY % att-side</phrase>
517
+ <phrase diff="add"> "side ( left | right | leftoverlap | rightoverlap ) #IMPLIED" ></phrase>
518
+ <phrase id='pent_att_framespacing'/>&lt;!ENTITY % att-framespacing
519
+ "framespacing CDATA #IMPLIED" >
520
+ <phrase diff="add"><phrase id='pent_att_minlabelspacing'/>&lt;!ENTITY % att-minlabelspacing</phrase>
521
+ <phrase diff="add"> "minlabelspacing CDATA #IMPLIED" ></phrase>
522
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
523
+ &lt;!ENTITY % att-equalrows
524
+ "equalrows ( true | false ) #IMPLIED" >
525
+ &lt;!ENTITY % att-equalcolumns
526
+ "equalcolumns ( true | false ) #IMPLIED" >
527
+ ]]&gt;</phrase>
528
+ <phrase id='pent_att_equalrows'/>&lt;!ENTITY % att-equalrows
529
+ "equalrows CDATA #IMPLIED" >
530
+ <phrase id='pent_att_equalcolumns'/>&lt;!ENTITY % att-equalcolumns
531
+ "equalcolumns CDATA #IMPLIED" >
532
+
533
+ <phrase id='pent_att_tableinfo'/>&lt;!ENTITY % att-tableinfo
534
+ "<intref ref='pent_att_align'>%att-align;</intref>
535
+ <phrase diff="chg"> <intref ref='pent_att-rowalign-list'>%att-rowalign-list;</intref></phrase>
536
+ <phrase diff="chg"> <intref ref='pent_att-columnalign-list'>%att-columnalign-list;</intref></phrase>
537
+ <intref ref='pent_att_columnwidth'>%att-columnwidth;</intref>
538
+ <phrase diff="chg"> <intref ref='pent_att-groupalign-list'>%att-groupalign-list;</intref></phrase>
539
+ <intref ref='pent_att_alignmentscope'>%att-alignmentscope;</intref>
540
+ <phrase diff="add"> <intref ref='pent_att_side'>%att-side;</intref></phrase>
541
+ <intref ref='pent_att_rowspacing'>%att-rowspacing;</intref>
542
+ <intref ref='pent_att_columnspacing'>%att-columnspacing;</intref>
543
+ <intref ref='pent_att_rowlines'>%att-rowlines;</intref>
544
+ <intref ref='pent_att_columnlines'>%att-columnlines;</intref>
545
+ <phrase diff="add"> <intref ref='pent_att_width'>%att-width;</intref></phrase>
546
+ <intref ref='pent_att_frame'>%att-frame;</intref>
547
+ <intref ref='pent_att_framespacing'>%att-framespacing;</intref>
548
+ <phrase diff="add"> <intref ref='pent_att_minlabelspacing'>%att-minlabelspacing;</intref></phrase>
549
+ <intref ref='pent_att_equalrows'>%att-equalrows;</intref>
550
+ <intref ref='pent_att_equalcolumns'>%att-equalcolumns;</intref>
551
+ <intref ref='pent_att_displaystyle'>%att-displaystyle;</intref>"
552
+ >
553
+
554
+ <phrase id='pent_att_rowspan'/>&lt;!ENTITY % att-rowspan
555
+ "rowspan CDATA #IMPLIED" >
556
+ <phrase id='pent_att_columnspan'/>&lt;!ENTITY % att-columnspan
557
+ "columnspan CDATA #IMPLIED" >
558
+ <phrase id='pent_att_edge'/>&lt;!ENTITY % att-edge
559
+ "edge ( left | right ) #IMPLIED" >
560
+ <phrase id='pent_att_actiontype'/>&lt;!ENTITY % att-actiontype
561
+ "actiontype CDATA #IMPLIED" >
562
+ <phrase id='pent_att_selection'/>&lt;!ENTITY % att-selection
563
+ "selection CDATA #IMPLIED" >
564
+
565
+ <phrase id='pent_att_name'/>&lt;!ENTITY % att-name
566
+ "name CDATA #IMPLIED" >
567
+ <phrase id='pent_att_alt'/>&lt;!ENTITY % att-alt
568
+ "alt CDATA #IMPLIED" >
569
+ <phrase id='pent_att_index'/>&lt;!ENTITY % att-index
570
+ "index CDATA #IMPLIED" >
571
+
572
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
573
+ &lt;!ENTITY % att-bevelled
574
+ "bevelled ( true | false ) #IMPLIED" >
575
+ ]]&gt;</phrase>
576
+ <phrase id='pent_att_bevelled'/>&lt;!ENTITY % att-bevelled
577
+ "bevelled CDATA #IMPLIED" >
578
+
579
+ &lt;!-- Presentation schemata with content -->
580
+
581
+ <phrase id='pent_ptoken'/>&lt;!ENTITY % ptoken
582
+ "&#37;mi.qname; | &#37;mn.qname; | &#37;mo.qname;
583
+ | &#37;mtext.qname; | &#37;ms.qname;" >
584
+
585
+ <phrase id='attr_mi.qname'/><intref ref='elem_mi.qname'>&lt;!ATTLIST</intref> &#37;mi.qname;
586
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
587
+ <intref ref='pent_att_fontinfo'>%att-fontinfo;</intref>
588
+ >
589
+
590
+ <phrase id='attr_mn.qname'/><intref ref='elem_mn.qname'>&lt;!ATTLIST</intref> &#37;mn.qname;
591
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
592
+ <intref ref='pent_att_fontinfo'>%att-fontinfo;</intref>
593
+ >
594
+
595
+ <phrase id='attr_mo.qname'/><intref ref='elem_mo.qname'>&lt;!ATTLIST</intref> &#37;mo.qname;
596
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
597
+ <intref ref='pent_att_fontinfo'>%att-fontinfo;</intref>
598
+ <intref ref='pent_att_opinfo'>%att-opinfo;</intref>
599
+ >
600
+
601
+ <phrase id='attr_mtext.qname'/><intref ref='elem_mtext.qname'>&lt;!ATTLIST</intref> &#37;mtext.qname;
602
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
603
+ <intref ref='pent_att_fontinfo'>%att-fontinfo;</intref>
604
+ >
605
+
606
+ <phrase id='attr_ms.qname'/><intref ref='elem_ms.qname'>&lt;!ATTLIST</intref> &#37;ms.qname;
607
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
608
+ <intref ref='pent_att_fontinfo'>%att-fontinfo;</intref>
609
+ <intref ref='pent_att_lquote'>%att-lquote;</intref>
610
+ <intref ref='pent_att_rquote'>%att-rquote;</intref>
611
+ >
612
+
613
+ &lt;!-- Empty presentation schemata -->
614
+
615
+ <phrase id='pent_petoken'/>&lt;!ENTITY % petoken
616
+ "&#37;mspace.qname;" >
617
+ <phrase id='elem_mspace.qname'/><intref ref='attr_mspace.qname'>&lt;!ELEMENT</intref> &#37;mspace.qname; EMPTY >
618
+
619
+ <phrase id='attr_mspace.qname'/><intref ref='elem_mspace.qname'>&lt;!ATTLIST</intref> &#37;mspace.qname;
620
+ <intref ref='pent_att_sizeinfo'>%att-sizeinfo;</intref>
621
+ <intref ref='pent_att_linebreak'>%att-linebreak;</intref>
622
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
623
+ >
624
+
625
+ &lt;!-- Presentation: general layout schemata -->
626
+
627
+ <phrase id='pent_pgenschema'/>&lt;!ENTITY % pgenschema
628
+ "&#37;mrow.qname; | &#37;mfrac.qname; | &#37;msqrt.qname; | &#37;mroot.qname;
629
+ | &#37;menclose.qname; | &#37;mstyle.qname; | &#37;merror.qname;
630
+ | &#37;mpadded.qname; | &#37;mphantom.qname; | &#37;mfenced.qname;" >
631
+
632
+ <phrase id='attr_mrow.qname'/><intref ref='elem_mrow.qname'>&lt;!ATTLIST</intref> &#37;mrow.qname;
633
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
634
+ >
635
+
636
+ <phrase id='attr_mfrac.qname'/><intref ref='elem_mfrac.qname'>&lt;!ATTLIST</intref> &#37;mfrac.qname;
637
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
638
+ <phrase diff="add"> <intref ref='pent_att_bevelled'>%att-bevelled;</intref></phrase>
639
+ <phrase diff="add"> <intref ref='pent_att_numalign'>%att-numalign;</intref></phrase>
640
+ <phrase diff="add"> <intref ref='pent_att_denomalign'>%att-denomalign;</intref></phrase>
641
+ <intref ref='pent_att_linethickness'>%att-linethickness;</intref>
642
+ >
643
+
644
+ <phrase id='attr_msqrt.qname'/><intref ref='elem_msqrt.qname'>&lt;!ATTLIST</intref> &#37;msqrt.qname;
645
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
646
+ >
647
+
648
+ <phrase id='attr_menclose.qname'/><intref ref='elem_menclose.qname'>&lt;!ATTLIST</intref> &#37;menclose.qname;
649
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
650
+ notation CDATA 'longdiv' >
651
+
652
+ <phrase id='attr_mroot.qname'/><intref ref='elem_mroot.qname'>&lt;!ATTLIST</intref> &#37;mroot.qname;
653
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
654
+ >
655
+
656
+ <phrase id='attr_mstyle.qname'/><intref ref='elem_mstyle.qname'>&lt;!ATTLIST</intref> &#37;mstyle.qname;
657
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
658
+ <intref ref='pent_att_fontinfo'>%att-fontinfo;</intref>
659
+ <intref ref='pent_att_opinfo'>%att-opinfo;</intref>
660
+ <intref ref='pent_att_lquote'>%att-lquote;</intref>
661
+ <intref ref='pent_att_rquote'>%att-rquote;</intref>
662
+ <intref ref='pent_att_linethickness'>%att-linethickness;</intref>
663
+ <intref ref='pent_att_scriptlevel'>%att-scriptlevel;</intref>
664
+ <intref ref='pent_att_scriptsizemultiplier'>%att-scriptsizemultiplier;</intref>
665
+ <intref ref='pent_att_scriptminsize'>%att-scriptminsize;</intref>
666
+ <intref ref='pent_att_background'>%att-background;</intref>
667
+ <intref ref='pent_att_veryverythinmathspace'>%att-veryverythinmathspace;</intref>
668
+ <intref ref='pent_att_verythinmathspace'>%att-verythinmathspace;</intref>
669
+ <intref ref='pent_att_thinmathspace'>%att-thinmathspace;</intref>
670
+ <intref ref='pent_att_mediummathspace'>%att-mediummathspace;</intref>
671
+ <intref ref='pent_att_thickmathspace'>%att-thickmathspace;</intref>
672
+ <intref ref='pent_att_verythickmathspace'>%att-verythickmathspace;</intref>
673
+ <intref ref='pent_att_veryverythickmathspace'>%att-veryverythickmathspace;</intref>
674
+ <intref ref='pent_att_open'>%att-open;</intref>
675
+ <intref ref='pent_att_close'>%att-close;</intref>
676
+ <intref ref='pent_att_separators'>%att-separators;</intref>
677
+ <intref ref='pent_att_subscriptshift'>%att-subscriptshift;</intref>
678
+ <intref ref='pent_att_superscriptshift'>%att-superscriptshift;</intref>
679
+ <intref ref='pent_att_accentunder'>%att-accentunder;</intref>
680
+ <intref ref='pent_att_tableinfo'>%att-tableinfo;</intref>
681
+ <intref ref='pent_att_rowspan'>%att-rowspan;</intref>
682
+ <intref ref='pent_att_columnspan'>%att-columnspan;</intref>
683
+ <intref ref='pent_att_edge'>%att-edge;</intref>
684
+ <intref ref='pent_att_selection'>%att-selection;</intref>
685
+ <phrase diff="chg"> <intref ref='pent_att_bevelled'>%att-bevelled;</intref></phrase>
686
+ <phrase diff="add"> <intref ref='pent_att_height'>%att-height;</intref></phrase>
687
+ <phrase diff="add"> <intref ref='pent_att_depth'>%att-depth;</intref></phrase>
688
+ >
689
+
690
+ <phrase id='attr_merror.qname'/><intref ref='elem_merror.qname'>&lt;!ATTLIST</intref> &#37;merror.qname;
691
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
692
+ >
693
+
694
+ <phrase id='attr_mpadded.qname'/><intref ref='elem_mpadded.qname'>&lt;!ATTLIST</intref> &#37;mpadded.qname;
695
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
696
+ <intref ref='pent_att_sizeinfo'>%att-sizeinfo;</intref>
697
+ <intref ref='pent_att_lspace'>%att-lspace;</intref>
698
+ >
699
+
700
+ <phrase id='attr_mphantom.qname'/><intref ref='elem_mphantom.qname'>&lt;!ATTLIST</intref> &#37;mphantom.qname;
701
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
702
+ >
703
+
704
+ <phrase id='attr_mfenced.qname'/><intref ref='elem_mfenced.qname'>&lt;!ATTLIST</intref> &#37;mfenced.qname;
705
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
706
+ <intref ref='pent_att_open'>%att-open;</intref>
707
+ <intref ref='pent_att_close'>%att-close;</intref>
708
+ <intref ref='pent_att_separators'>%att-separators;</intref>
709
+ >
710
+
711
+ &lt;!-- Presentation layout schemata: scripts and limits -->
712
+
713
+ <phrase id='pent_pscrschema'/>&lt;!ENTITY % pscrschema
714
+ "&#37;msub.qname; | &#37;msup.qname; | &#37;msubsup.qname; | &#37;munder.qname;
715
+ | &#37;mover.qname; | &#37;munderover.qname; | &#37;mmultiscripts.qname;" >
716
+
717
+ <phrase id='attr_msub.qname'/><intref ref='elem_msub.qname'>&lt;!ATTLIST</intref> &#37;msub.qname;
718
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
719
+ <intref ref='pent_att_subscriptshift'>%att-subscriptshift;</intref>
720
+ >
721
+
722
+ <phrase id='attr_msup.qname'/><intref ref='elem_msup.qname'>&lt;!ATTLIST</intref> &#37;msup.qname;
723
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
724
+ <intref ref='pent_att_superscriptshift'>%att-superscriptshift;</intref>
725
+ >
726
+
727
+ <phrase id='attr_msubsup.qname'/><intref ref='elem_msubsup.qname'>&lt;!ATTLIST</intref> &#37;msubsup.qname;
728
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
729
+ <intref ref='pent_att_subscriptshift'>%att-subscriptshift;</intref>
730
+ <intref ref='pent_att_superscriptshift'>%att-superscriptshift;</intref>
731
+ >
732
+
733
+ <phrase id='attr_munder.qname'/><intref ref='elem_munder.qname'>&lt;!ATTLIST</intref> &#37;munder.qname;
734
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
735
+ <intref ref='pent_att_accentunder'>%att-accentunder;</intref>
736
+ >
737
+
738
+ <phrase id='attr_mover.qname'/><intref ref='elem_mover.qname'>&lt;!ATTLIST</intref> &#37;mover.qname;
739
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
740
+ <intref ref='pent_att_accent'>%att-accent;</intref>
741
+ >
742
+
743
+ <phrase id='attr_munderover.qname'/><intref ref='elem_munderover.qname'>&lt;!ATTLIST</intref> &#37;munderover.qname;
744
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
745
+ <intref ref='pent_att_accent'>%att-accent;</intref>
746
+ <intref ref='pent_att_accentunder'>%att-accentunder;</intref>
747
+ >
748
+
749
+ <phrase id='attr_mmultiscripts.qname'/><intref ref='elem_mmultiscripts.qname'>&lt;!ATTLIST</intref> &#37;mmultiscripts.qname;
750
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
751
+ <intref ref='pent_att_subscriptshift'>%att-subscriptshift;</intref>
752
+ <intref ref='pent_att_superscriptshift'>%att-superscriptshift;</intref>
753
+ >
754
+
755
+ &lt;!-- Presentation layout schemata: empty elements for scripts -->
756
+
757
+ <phrase id='pent_pscreschema'/>&lt;!ENTITY % pscreschema
758
+ "&#37;mprescripts.qname; | &#37;none.qname;" >
759
+
760
+ <phrase id='elem_mprescripts.qname'/><intref ref='attr_mprescripts.qname'>&lt;!ELEMENT</intref> &#37;mprescripts.qname; EMPTY >
761
+ <phrase id='attr_mprescripts.qname'/><intref ref='elem_mprescripts.qname'>&lt;!ATTLIST</intref> &#37;mprescripts.qname;
762
+ <intref ref='pent_mathml_qname.module'>%MATHML.xmlns.attrib;</intref> >
763
+
764
+ <phrase id='elem_none.qname'/><intref ref='attr_none.qname'>&lt;!ELEMENT</intref> &#37;none.qname; EMPTY >
765
+ <phrase id='attr_none.qname'/><intref ref='elem_none.qname'>&lt;!ATTLIST</intref> &#37;none.qname;
766
+ <intref ref='pent_mathml_qname.module'>%MATHML.xmlns.attrib;</intref> >
767
+
768
+ &lt;!-- Presentation layout schemata: tables -->
769
+
770
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
771
+ &lt;!-- in strict mode only allow mtable at top level.
772
+ mtr ,mlabledtr and mtd only allowed inside mtable.
773
+ -->
774
+ &lt;!ENTITY % ptabschema "&#37;mtable.qname;" >
775
+ ]]&gt;</phrase>
776
+
777
+ <phrase id='pent_ptabschema'/>&lt;!ENTITY % ptabschema
778
+ "&#37;mtable.qname; | &#37;mtr.qname; | &#37;mlabeledtr.qname; | &#37;mtd.qname;" >
779
+
780
+ <phrase id='attr_mtable.qname'/><intref ref='elem_mtable.qname'>&lt;!ATTLIST</intref> &#37;mtable.qname;
781
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
782
+ <intref ref='pent_att_tableinfo'>%att-tableinfo;</intref>
783
+ >
784
+
785
+ <phrase id='attr_mtr.qname'/><intref ref='elem_mtr.qname'>&lt;!ATTLIST</intref> &#37;mtr.qname;
786
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
787
+ <intref ref='pent_att_rowalign'>%att-rowalign;</intref>
788
+ <phrase diff="chg"> <intref ref='pent_att-columnalign-list'>%att-columnalign-list;</intref></phrase>
789
+ <phrase diff="chg"> <intref ref='pent_att-groupalign-list'>%att-groupalign-list;</intref></phrase>
790
+ >
791
+
792
+ <phrase id='attr_mlabeledtr.qname'/><intref ref='elem_mlabeledtr.qname'>&lt;!ATTLIST</intref> &#37;mlabeledtr.qname;
793
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
794
+ <intref ref='pent_att_rowalign'>%att-rowalign;</intref>
795
+ <phrase diff="chg"> <intref ref='pent_att-columnalign-list'>%att-columnalign-list;</intref></phrase>
796
+ <phrase diff="chg"> <intref ref='pent_att-groupalign-list'>%att-groupalign-list;</intref></phrase>
797
+ >
798
+
799
+ <phrase id='attr_mtd.qname'/><intref ref='elem_mtd.qname'>&lt;!ATTLIST</intref> &#37;mtd.qname;
800
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
801
+ <intref ref='pent_att_rowalign'>%att-rowalign;</intref>
802
+ <intref ref='pent_att_columnalign'>%att-columnalign;</intref>
803
+ <phrase diff="chg"> <intref ref='pent_att-groupalign-list'>%att-groupalign-list;</intref></phrase>
804
+ <intref ref='pent_att_rowspan'>%att-rowspan;</intref>
805
+ <intref ref='pent_att_columnspan'>%att-columnspan;</intref>
806
+ >
807
+ <phrase id='pent_plschema'/>&lt;!ENTITY % plschema
808
+ "<intref ref='pent_pgenschema'>%pgenschema;</intref> | <intref ref='pent_pscrschema'>%pscrschema;</intref> | <intref ref='pent_ptabschema'>%ptabschema;</intref>" >
809
+
810
+ &lt;!-- Empty presentation layout schemata -->
811
+
812
+ <phrase id='pent_peschema'/>&lt;!ENTITY % peschema
813
+ "&#37;maligngroup.qname; | &#37;malignmark.qname;" >
814
+
815
+ <phrase id='elem_malignmark.qname'/><intref ref='attr_malignmark.qname'>&lt;!ELEMENT</intref> &#37;malignmark.qname; EMPTY >
816
+
817
+ <phrase id='attr_malignmark.qname'/><intref ref='elem_malignmark.qname'>&lt;!ATTLIST</intref> &#37;malignmark.qname;
818
+ <intref ref='pent_att_edge'>%att-edge;</intref> >
819
+
820
+ <phrase id='elem_maligngroup.qname'/><intref ref='attr_maligngroup.qname'>&lt;!ELEMENT</intref> &#37;maligngroup.qname; EMPTY >
821
+ <phrase id='attr_maligngroup.qname'/><intref ref='elem_maligngroup.qname'>&lt;!ATTLIST</intref> &#37;maligngroup.qname;
822
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
823
+ <intref ref='pent_att_groupalign'>%att-groupalign;</intref>
824
+ >
825
+
826
+
827
+ <phrase id='elem_mglyph.qname'/><intref ref='attr_mglyph.qname'>&lt;!ELEMENT</intref> &#37;mglyph.qname; EMPTY >
828
+ <phrase id='attr_mglyph.qname'/><intref ref='elem_mglyph.qname'>&lt;!ATTLIST</intref> &#37;mglyph.qname;
829
+ <intref ref='pent_att_alt'>%att-alt;</intref>
830
+ <intref ref='pent_att_fontfamily'>%att-fontfamily;</intref>
831
+ <intref ref='pent_att_index'>%att-index;</intref> >
832
+
833
+ &lt;!-- Presentation action schemata -->
834
+
835
+ <phrase id='pent_pactions'/>&lt;!ENTITY % pactions
836
+ "&#37;maction.qname;" >
837
+ <phrase id='attr_maction.qname'/><intref ref='elem_maction.qname'>&lt;!ATTLIST</intref> &#37;maction.qname;
838
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
839
+ <intref ref='pent_att_actiontype'>%att-actiontype;</intref>
840
+ <intref ref='pent_att_selection'>%att-selection;</intref>
841
+ >
842
+
843
+ &lt;!-- The following entity for substitution into
844
+ content constructs excludes elements that
845
+ are not valid as expressions.
846
+ -->
847
+
848
+ <phrase id='pent_PresInCont'/>&lt;!ENTITY % PresInCont
849
+ "<intref ref='pent_ptoken'>%ptoken;</intref> | <intref ref='pent_petoken'>%petoken;</intref> |
850
+ <intref ref='pent_plschema'>%plschema;</intref> | <intref ref='pent_peschema'>%peschema;</intref> | <intref ref='pent_pactions'>%pactions;</intref>" >
851
+
852
+ &lt;!-- Presentation entity: all presentation constructs -->
853
+
854
+
855
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
856
+ &lt;!-- In strict mode don't allow prescripts and none at top level.-->
857
+ &lt;!ENTITY % Presentation "<intref ref='pent_PresInCont'>%PresInCont;</intref>">
858
+ ]]&gt;</phrase>
859
+ <phrase id='pent_Presentation'/>&lt;!ENTITY % Presentation
860
+ "<intref ref='pent_ptoken'>%ptoken;</intref> | <intref ref='pent_petoken'>%petoken;</intref> | <intref ref='pent_pscreschema'>%pscreschema;</intref> |
861
+ <intref ref='pent_plschema'>%plschema;</intref> | <intref ref='pent_peschema'>%peschema;</intref> | <intref ref='pent_pactions'>%pactions;</intref>">
862
+
863
+ &lt;!-- Content element set ........................................ -->
864
+
865
+ &lt;!-- Attribute definitions -->
866
+
867
+ <phrase id='pent_att_base'/>&lt;!ENTITY % att-base
868
+ "base CDATA '10'" >
869
+ <phrase id='pent_att_closure'/>&lt;!ENTITY % att-closure
870
+ "closure CDATA 'closed'" >
871
+ <phrase id='pent_att_definition'/>&lt;!ENTITY % att-definition
872
+ "definitionURL CDATA ''" >
873
+ <phrase id='pent_att_encoding'/>&lt;!ENTITY % att-encoding
874
+ "encoding CDATA ''" >
875
+ <phrase id='pent_att_nargs'/>&lt;!ENTITY % att-nargs
876
+ "nargs CDATA '1'" >
877
+ <phrase id='pent_att_occurrence'/>&lt;!ENTITY % att-occurrence
878
+ "occurrence CDATA 'function-model'" >
879
+ <phrase id='pent_att_order'/>&lt;!ENTITY % att-order
880
+ "order CDATA 'numeric'" >
881
+ <phrase id='pent_att_scope'/>&lt;!ENTITY % att-scope
882
+ "scope CDATA 'local'" >
883
+ <phrase id='pent_att_type'/>&lt;!ENTITY % att-type
884
+ "type CDATA #IMPLIED" >
885
+
886
+ &lt;!-- Content elements: leaf nodes -->
887
+
888
+ <phrase id='pent_ctoken'/>&lt;!ENTITY % ctoken
889
+ "&#37;csymbol.qname; | &#37;ci.qname; | &#37;cn.qname;" >
890
+
891
+ <phrase id='attr_ci.qname'/><intref ref='elem_ci.qname'>&lt;!ATTLIST</intref> &#37;ci.qname;
892
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
893
+ <intref ref='pent_att_type'>%att-type;</intref>
894
+ <intref ref='pent_att_definition'>%att-definition;</intref>
895
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
896
+ >
897
+
898
+ <phrase id='attr_csymbol.qname'/><intref ref='elem_csymbol.qname'>&lt;!ATTLIST</intref> &#37;csymbol.qname;
899
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
900
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
901
+ <intref ref='pent_att_type'>%att-type;</intref>
902
+ <intref ref='pent_att_definition'>%att-definition;</intref>
903
+ >
904
+
905
+ <phrase id='attr_cn.qname'/><intref ref='elem_cn.qname'>&lt;!ATTLIST</intref> &#37;cn.qname;
906
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
907
+ <intref ref='pent_att_type'>%att-type;</intref>
908
+ <intref ref='pent_att_base'>%att-base;</intref>
909
+ <intref ref='pent_att_definition'>%att-definition;</intref>
910
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
911
+ >
912
+
913
+ &lt;!-- Content elements: specials -->
914
+
915
+ <phrase id='pent_cspecial'/>&lt;!ENTITY % cspecial
916
+ "&#37;apply.qname; | &#37;reln.qname; |
917
+ &#37;lambda.qname;" >
918
+
919
+ <phrase id='attr_apply.qname'/><intref ref='elem_apply.qname'>&lt;!ATTLIST</intref> &#37;apply.qname;
920
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
921
+ >
922
+
923
+ <phrase id='attr_reln.qname'/><intref ref='elem_reln.qname'>&lt;!ATTLIST</intref> &#37;reln.qname;
924
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
925
+ >
926
+
927
+ <phrase id='attr_lambda.qname'/><intref ref='elem_lambda.qname'>&lt;!ATTLIST</intref> &#37;lambda.qname;
928
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
929
+ >
930
+
931
+ &lt;!-- Content elements: others -->
932
+
933
+ <phrase id='pent_cother'/>&lt;!ENTITY % cother
934
+ "&#37;condition.qname; | &#37;declare.qname; | &#37;sep.qname;" >
935
+
936
+ <phrase id='attr_condition.qname'/><intref ref='elem_condition.qname'>&lt;!ATTLIST</intref> &#37;condition.qname;
937
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
938
+ >
939
+
940
+ <phrase id='attr_declare.qname'/><intref ref='elem_declare.qname'>&lt;!ATTLIST</intref> &#37;declare.qname;
941
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
942
+ <intref ref='pent_att_type'>%att-type;</intref>
943
+ <intref ref='pent_att_scope'>%att-scope;</intref>
944
+ <intref ref='pent_att_nargs'>%att-nargs;</intref>
945
+ <intref ref='pent_att_occurrence'>%att-occurrence;</intref>
946
+ <intref ref='pent_att_definition'>%att-definition;</intref>
947
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
948
+ >
949
+
950
+ <phrase id='elem_sep.qname'/><intref ref='attr_sep.qname'>&lt;!ELEMENT</intref> &#37;sep.qname; EMPTY >
951
+ <phrase id='attr_sep.qname'/><intref ref='elem_sep.qname'>&lt;!ATTLIST</intref> &#37;sep.qname;
952
+ <intref ref='pent_mathml_qname.module'>%MATHML.xmlns.attrib;</intref> >
953
+
954
+ &lt;!-- Content elements: semantic mapping -->
955
+
956
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
957
+ &lt;!-- in strict mode only allow semantics at top level.
958
+ annotation and annotation-xml only allowed in semantics
959
+ -->
960
+ &lt;!ENTITY % csemantics "&#37;semantics.qname;" >
961
+ ]]&gt;</phrase>
962
+ <phrase id='pent_csemantics'/>&lt;!ENTITY % csemantics
963
+ "&#37;semantics.qname; | &#37;annotation.qname; |
964
+ &#37;annotation-xml.qname;" >
965
+
966
+ <phrase id='attr_semantics.qname'/><intref ref='elem_semantics.qname'>&lt;!ATTLIST</intref> &#37;semantics.qname;
967
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
968
+ <intref ref='pent_att_definition'>%att-definition;</intref>
969
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
970
+ >
971
+
972
+ <phrase id='attr_annotation.qname'/><intref ref='elem_annotation.qname'>&lt;!ATTLIST</intref> &#37;annotation.qname;
973
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
974
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
975
+ >
976
+
977
+ <phrase id='attr_annotation_xml.qname'/><intref ref='elem_annotation_xml.qname'>&lt;!ATTLIST</intref> &#37;annotation-xml.qname;
978
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
979
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
980
+ >
981
+
982
+ &lt;!-- Content elements: constructors -->
983
+
984
+ <phrase id='pent_cconstructor'/>&lt;!ENTITY % cconstructor
985
+ "&#37;interval.qname; | &#37;list.qname; | &#37;matrix.qname;
986
+ | &#37;matrixrow.qname; | &#37;set.qname; | &#37;vector.qname;
987
+ | &#37;piecewise.qname; " >
988
+
989
+ <phrase id='attr_interval.qname'/><intref ref='elem_interval.qname'>&lt;!ATTLIST</intref> &#37;interval.qname;
990
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
991
+ <intref ref='pent_att_closure'>%att-closure;</intref>
992
+ >
993
+
994
+ <phrase id='attr_set.qname'/><intref ref='elem_set.qname'>&lt;!ATTLIST</intref> &#37;set.qname;
995
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
996
+ <intref ref='pent_att_type'>%att-type;</intref>
997
+ >
998
+
999
+ <phrase id='attr_list.qname'/><intref ref='elem_list.qname'>&lt;!ATTLIST</intref> &#37;list.qname;
1000
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1001
+ <intref ref='pent_att_order'>%att-order;</intref>
1002
+ >
1003
+
1004
+ <phrase id='attr_vector.qname'/><intref ref='elem_vector.qname'>&lt;!ATTLIST</intref> &#37;vector.qname;
1005
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1006
+ >
1007
+
1008
+ <phrase id='attr_matrix.qname'/><intref ref='elem_matrix.qname'>&lt;!ATTLIST</intref> &#37;matrix.qname;
1009
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1010
+ >
1011
+
1012
+ <phrase id='attr_matrixrow.qname'/><intref ref='elem_matrixrow.qname'>&lt;!ATTLIST</intref> &#37;matrixrow.qname;
1013
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1014
+ >
1015
+
1016
+ <phrase id='attr_piecewise.qname'/><intref ref='elem_piecewise.qname'>&lt;!ATTLIST</intref> &#37;piecewise.qname;
1017
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1018
+ >
1019
+
1020
+ <phrase id='attr_piece.qname'/><intref ref='elem_piece.qname'>&lt;!ATTLIST</intref> &#37;piece.qname;
1021
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1022
+ >
1023
+
1024
+ <phrase id='attr_otherwise.qname'/><intref ref='elem_otherwise.qname'>&lt;!ATTLIST</intref> &#37;otherwise.qname;
1025
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1026
+ >
1027
+
1028
+
1029
+ &lt;!-- Content elements: symbols -->
1030
+
1031
+ <phrase id='pent_c0ary'/>&lt;!ENTITY % c0ary
1032
+ "&#37;integers.qname; |
1033
+ &#37;reals.qname; |
1034
+ &#37;rationals.qname; |
1035
+ &#37;naturalnumbers.qname; |
1036
+ &#37;complexes.qname; |
1037
+ &#37;primes.qname; |
1038
+ %exponentiale.qname; |
1039
+ &#37;imaginaryi.qname; |
1040
+ &#37;notanumber.qname; |
1041
+ &#37;true.qname; |
1042
+ &#37;false.qname; |
1043
+ %emptyset.qname; |
1044
+ &#37;pi.qname; |
1045
+ %eulergamma.qname; |
1046
+ &#37;infinity.qname;" >
1047
+
1048
+ <phrase id='elem_integers.qname'/><intref ref='attr_integers.qname'>&lt;!ELEMENT</intref> &#37;integers.qname; EMPTY >
1049
+ <phrase id='attr_integers.qname'/><intref ref='elem_integers.qname'>&lt;!ATTLIST</intref> &#37;integers.qname;
1050
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1051
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1052
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1053
+ >
1054
+
1055
+ <phrase id='elem_reals.qname'/><intref ref='attr_reals.qname'>&lt;!ELEMENT</intref> &#37;reals.qname; EMPTY >
1056
+ <phrase id='attr_reals.qname'/><intref ref='elem_reals.qname'>&lt;!ATTLIST</intref> &#37;reals.qname;
1057
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1058
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1059
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1060
+ >
1061
+
1062
+ <phrase id='elem_rationals.qname'/><intref ref='attr_rationals.qname'>&lt;!ELEMENT</intref> &#37;rationals.qname; EMPTY >
1063
+ <phrase id='attr_rationals.qname'/><intref ref='elem_rationals.qname'>&lt;!ATTLIST</intref> &#37;rationals.qname;
1064
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1065
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1066
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1067
+ >
1068
+
1069
+ <phrase id='elem_naturalnumbers.qname'/><intref ref='attr_naturalnumbers.qname'>&lt;!ELEMENT</intref> &#37;naturalnumbers.qname; EMPTY >
1070
+ <phrase id='attr_naturalnumbers.qname'/><intref ref='elem_naturalnumbers.qname'>&lt;!ATTLIST</intref> &#37;naturalnumbers.qname;
1071
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1072
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1073
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1074
+ >
1075
+
1076
+ <phrase id='elem_complexes.qname'/><intref ref='attr_complexes.qname'>&lt;!ELEMENT</intref> &#37;complexes.qname; EMPTY >
1077
+ <phrase id='attr_complexes.qname'/><intref ref='elem_complexes.qname'>&lt;!ATTLIST</intref> &#37;complexes.qname;
1078
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1079
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1080
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1081
+ >
1082
+
1083
+ <phrase id='elem_primes.qname'/><intref ref='attr_primes.qname'>&lt;!ELEMENT</intref> &#37;primes.qname; EMPTY >
1084
+ <phrase id='attr_primes.qname'/><intref ref='elem_primes.qname'>&lt;!ATTLIST</intref> &#37;primes.qname;
1085
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1086
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1087
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1088
+ >
1089
+
1090
+ <phrase id='elem_exponentiale.qname'/><intref ref='attr_exponentiale.qname'>&lt;!ELEMENT</intref> %exponentiale.qname; EMPTY >
1091
+ <phrase id='attr_exponentiale.qname'/><intref ref='elem_exponentiale.qname'>&lt;!ATTLIST</intref> %exponentiale.qname;
1092
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1093
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1094
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1095
+ >
1096
+
1097
+ <phrase id='elem_imaginaryi.qname'/><intref ref='attr_imaginaryi.qname'>&lt;!ELEMENT</intref> &#37;imaginaryi.qname; EMPTY >
1098
+ <phrase id='attr_imaginaryi.qname'/><intref ref='elem_imaginaryi.qname'>&lt;!ATTLIST</intref> &#37;imaginaryi.qname;
1099
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1100
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1101
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1102
+ >
1103
+
1104
+ <phrase id='elem_notanumber.qname'/><intref ref='attr_notanumber.qname'>&lt;!ELEMENT</intref> &#37;notanumber.qname; EMPTY >
1105
+ <phrase id='attr_notanumber.qname'/><intref ref='elem_notanumber.qname'>&lt;!ATTLIST</intref> &#37;notanumber.qname;
1106
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1107
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1108
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1109
+ >
1110
+
1111
+ <phrase id='elem_true.qname'/><intref ref='attr_true.qname'>&lt;!ELEMENT</intref> &#37;true.qname; EMPTY >
1112
+ <phrase id='attr_true.qname'/><intref ref='elem_true.qname'>&lt;!ATTLIST</intref> &#37;true.qname;
1113
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1114
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1115
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1116
+ >
1117
+
1118
+ <phrase id='elem_false.qname'/><intref ref='attr_false.qname'>&lt;!ELEMENT</intref> &#37;false.qname; EMPTY >
1119
+ <phrase id='attr_false.qname'/><intref ref='elem_false.qname'>&lt;!ATTLIST</intref> &#37;false.qname;
1120
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1121
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1122
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1123
+ >
1124
+
1125
+ <phrase id='elem_emptyset.qname'/><intref ref='attr_emptyset.qname'>&lt;!ELEMENT</intref> %emptyset.qname; EMPTY >
1126
+ <phrase id='attr_emptyset.qname'/><intref ref='elem_emptyset.qname'>&lt;!ATTLIST</intref> %emptyset.qname;
1127
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1128
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1129
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1130
+ >
1131
+
1132
+ <phrase id='elem_pi.qname'/><intref ref='attr_pi.qname'>&lt;!ELEMENT</intref> &#37;pi.qname; EMPTY >
1133
+ <phrase id='attr_pi.qname'/><intref ref='elem_pi.qname'>&lt;!ATTLIST</intref> &#37;pi.qname;
1134
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1135
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1136
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1137
+ >
1138
+
1139
+ <phrase id='elem_eulergamma.qname'/><intref ref='attr_eulergamma.qname'>&lt;!ELEMENT</intref> %eulergamma.qname; EMPTY >
1140
+ <phrase id='attr_eulergamma.qname'/><intref ref='elem_eulergamma.qname'>&lt;!ATTLIST</intref> %eulergamma.qname;
1141
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1142
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1143
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1144
+ >
1145
+
1146
+ <phrase id='elem_infinity.qname'/><intref ref='attr_infinity.qname'>&lt;!ELEMENT</intref> &#37;infinity.qname; EMPTY >
1147
+ <phrase id='attr_infinity.qname'/><intref ref='elem_infinity.qname'>&lt;!ATTLIST</intref> &#37;infinity.qname;
1148
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1149
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1150
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1151
+ >
1152
+
1153
+ &lt;!-- Content elements: operators -->
1154
+
1155
+ <phrase id='pent_cfuncop1ary'/>&lt;!ENTITY % cfuncop1ary
1156
+ "&#37;inverse.qname; | &#37;ident.qname;|
1157
+ &#37;domain.qname; | &#37;codomain.qname; |
1158
+ &#37;image.qname; " >
1159
+
1160
+ <phrase id='elem_inverse.qname'/><intref ref='attr_inverse.qname'>&lt;!ELEMENT</intref> &#37;inverse.qname; EMPTY >
1161
+ <phrase id='attr_inverse.qname'/><intref ref='elem_inverse.qname'>&lt;!ATTLIST</intref> &#37;inverse.qname;
1162
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1163
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1164
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1165
+ >
1166
+
1167
+ <phrase id='elem_domain.qname'/><intref ref='attr_domain.qname'>&lt;!ELEMENT</intref> &#37;domain.qname; EMPTY >
1168
+ <phrase id='attr_domain.qname'/><intref ref='elem_domain.qname'>&lt;!ATTLIST</intref> &#37;domain.qname;
1169
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1170
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1171
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1172
+ >
1173
+
1174
+ <phrase id='elem_codomain.qname'/><intref ref='attr_codomain.qname'>&lt;!ELEMENT</intref> &#37;codomain.qname; EMPTY >
1175
+ <phrase id='attr_codomain.qname'/><intref ref='elem_codomain.qname'>&lt;!ATTLIST</intref> &#37;codomain.qname;
1176
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1177
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1178
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1179
+ >
1180
+
1181
+ <phrase id='elem_image.qname'/><intref ref='attr_image.qname'>&lt;!ELEMENT</intref> &#37;image.qname; EMPTY >
1182
+ <phrase id='attr_image.qname'/><intref ref='elem_image.qname'>&lt;!ATTLIST</intref> &#37;image.qname;
1183
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1184
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1185
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1186
+ >
1187
+
1188
+
1189
+
1190
+ <phrase id='pent_cfuncopnary'/>&lt;!ENTITY % cfuncopnary
1191
+ "&#37;fn.qname; | &#37;compose.qname;" >
1192
+
1193
+ <phrase id='attr_fn.qname'/><intref ref='elem_fn.qname'>&lt;!ATTLIST</intref> &#37;fn.qname;
1194
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1195
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1196
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1197
+ >
1198
+
1199
+ <phrase id='elem_ident.qname'/><intref ref='attr_ident.qname'>&lt;!ELEMENT</intref> &#37;ident.qname; EMPTY >
1200
+ <phrase id='attr_ident.qname'/><intref ref='elem_ident.qname'>&lt;!ATTLIST</intref> &#37;ident.qname;
1201
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1202
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1203
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1204
+ >
1205
+
1206
+ <phrase id='elem_compose.qname'/><intref ref='attr_compose.qname'>&lt;!ELEMENT</intref> &#37;compose.qname; EMPTY >
1207
+ <phrase id='attr_compose.qname'/><intref ref='elem_compose.qname'>&lt;!ATTLIST</intref> &#37;compose.qname;
1208
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1209
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1210
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1211
+ >
1212
+
1213
+ <phrase id='pent_carithop1ary'/>&lt;!ENTITY % carithop1ary
1214
+ "&#37;abs.qname; | &#37;conjugate.qname; | %exp.qname; | &#37;factorial.qname; |
1215
+ &#37;arg.qname; | &#37;real.qname; | &#37;imaginary.qname; |
1216
+ &#37;floor.qname; | &#37;ceiling.qname;" >
1217
+
1218
+ <phrase id='elem_exp.qname'/><intref ref='attr_exp.qname'>&lt;!ELEMENT</intref> %exp.qname; EMPTY >
1219
+ <phrase id='attr_exp.qname'/><intref ref='elem_exp.qname'>&lt;!ATTLIST</intref> %exp.qname;
1220
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1221
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1222
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1223
+ >
1224
+
1225
+ <phrase id='elem_abs.qname'/><intref ref='attr_abs.qname'>&lt;!ELEMENT</intref> &#37;abs.qname; EMPTY >
1226
+ <phrase id='attr_abs.qname'/><intref ref='elem_abs.qname'>&lt;!ATTLIST</intref> &#37;abs.qname;
1227
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1228
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1229
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1230
+ >
1231
+
1232
+ <phrase id='elem_arg.qname'/><intref ref='attr_arg.qname'>&lt;!ELEMENT</intref> &#37;arg.qname; EMPTY >
1233
+ <phrase id='attr_arg.qname'/><intref ref='elem_arg.qname'>&lt;!ATTLIST</intref> &#37;arg.qname;
1234
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1235
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1236
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1237
+ >
1238
+
1239
+ <phrase id='elem_real.qname'/><intref ref='attr_real.qname'>&lt;!ELEMENT</intref> &#37;real.qname; EMPTY >
1240
+ <phrase id='attr_real.qname'/><intref ref='elem_real.qname'>&lt;!ATTLIST</intref> &#37;real.qname;
1241
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1242
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1243
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1244
+ >
1245
+
1246
+ <phrase id='elem_imaginary.qname'/><intref ref='attr_imaginary.qname'>&lt;!ELEMENT</intref> &#37;imaginary.qname; EMPTY >
1247
+ <phrase id='attr_imaginary.qname'/><intref ref='elem_imaginary.qname'>&lt;!ATTLIST</intref> &#37;imaginary.qname;
1248
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1249
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1250
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1251
+ >
1252
+
1253
+ <phrase id='elem_conjugate.qname'/><intref ref='attr_conjugate.qname'>&lt;!ELEMENT</intref> &#37;conjugate.qname; EMPTY >
1254
+ <phrase id='attr_conjugate.qname'/><intref ref='elem_conjugate.qname'>&lt;!ATTLIST</intref> &#37;conjugate.qname;
1255
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1256
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1257
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1258
+ >
1259
+
1260
+ <phrase id='elem_factorial.qname'/><intref ref='attr_factorial.qname'>&lt;!ELEMENT</intref> &#37;factorial.qname; EMPTY >
1261
+ <phrase id='attr_factorial.qname'/><intref ref='elem_factorial.qname'>&lt;!ATTLIST</intref> &#37;factorial.qname;
1262
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1263
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1264
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1265
+ >
1266
+
1267
+
1268
+ <phrase id='elem_floor.qname'/><intref ref='attr_floor.qname'>&lt;!ELEMENT</intref> &#37;floor.qname; EMPTY >
1269
+ <phrase id='attr_floor.qname'/><intref ref='elem_floor.qname'>&lt;!ATTLIST</intref> &#37;floor.qname;
1270
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1271
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1272
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1273
+ >
1274
+
1275
+ <phrase id='elem_ceiling.qname'/><intref ref='attr_ceiling.qname'>&lt;!ELEMENT</intref> &#37;ceiling.qname; EMPTY >
1276
+ <phrase id='attr_ceiling.qname'/><intref ref='elem_ceiling.qname'>&lt;!ATTLIST</intref> &#37;ceiling.qname;
1277
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1278
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1279
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1280
+ >
1281
+ <phrase id='pent_carithop1or2ary'/>&lt;!ENTITY % carithop1or2ary
1282
+ "&#37;minus.qname;" >
1283
+
1284
+ <phrase id='elem_minus.qname'/><intref ref='attr_minus.qname'>&lt;!ELEMENT</intref> &#37;minus.qname; EMPTY >
1285
+ <phrase id='attr_minus.qname'/><intref ref='elem_minus.qname'>&lt;!ATTLIST</intref> &#37;minus.qname;
1286
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1287
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1288
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1289
+ >
1290
+
1291
+ <phrase id='pent_carithop2ary'/>&lt;!ENTITY % carithop2ary
1292
+ "&#37;quotient.qname; | &#37;divide.qname; | &#37;power.qname; | &#37;rem.qname;" >
1293
+
1294
+ <phrase id='elem_quotient.qname'/><intref ref='attr_quotient.qname'>&lt;!ELEMENT</intref> &#37;quotient.qname; EMPTY >
1295
+ <phrase id='attr_quotient.qname'/><intref ref='elem_quotient.qname'>&lt;!ATTLIST</intref> &#37;quotient.qname;
1296
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1297
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1298
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1299
+ >
1300
+
1301
+ <phrase id='elem_divide.qname'/><intref ref='attr_divide.qname'>&lt;!ELEMENT</intref> &#37;divide.qname; EMPTY >
1302
+ <phrase id='attr_divide.qname'/><intref ref='elem_divide.qname'>&lt;!ATTLIST</intref> &#37;divide.qname;
1303
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1304
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1305
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1306
+ >
1307
+
1308
+ <phrase id='elem_power.qname'/><intref ref='attr_power.qname'>&lt;!ELEMENT</intref> &#37;power.qname; EMPTY >
1309
+ <phrase id='attr_power.qname'/><intref ref='elem_power.qname'>&lt;!ATTLIST</intref> &#37;power.qname;
1310
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1311
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1312
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1313
+ >
1314
+
1315
+ <phrase id='elem_rem.qname'/><intref ref='attr_rem.qname'>&lt;!ELEMENT</intref> &#37;rem.qname; EMPTY >
1316
+ <phrase id='attr_rem.qname'/><intref ref='elem_rem.qname'>&lt;!ATTLIST</intref> &#37;rem.qname;
1317
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1318
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1319
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1320
+ >
1321
+
1322
+ <phrase id='pent_carithopnary'/>&lt;!ENTITY % carithopnary
1323
+ "&#37;plus.qname; | &#37;times.qname; | &#37;max.qname;
1324
+ | &#37;min.qname; | &#37;gcd.qname; | &#37;lcm.qname;" >
1325
+
1326
+ <phrase id='elem_plus.qname'/><intref ref='attr_plus.qname'>&lt;!ELEMENT</intref> &#37;plus.qname; EMPTY >
1327
+ <phrase id='attr_plus.qname'/><intref ref='elem_plus.qname'>&lt;!ATTLIST</intref> &#37;plus.qname;
1328
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1329
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1330
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1331
+ >
1332
+
1333
+ <phrase id='elem_max.qname'/><intref ref='attr_max.qname'>&lt;!ELEMENT</intref> &#37;max.qname; EMPTY >
1334
+ <phrase id='attr_max.qname'/><intref ref='elem_max.qname'>&lt;!ATTLIST</intref> &#37;max.qname;
1335
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1336
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1337
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1338
+ >
1339
+
1340
+ <phrase id='elem_min.qname'/><intref ref='attr_min.qname'>&lt;!ELEMENT</intref> &#37;min.qname; EMPTY >
1341
+ <phrase id='attr_min.qname'/><intref ref='elem_min.qname'>&lt;!ATTLIST</intref> &#37;min.qname;
1342
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1343
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1344
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1345
+ >
1346
+
1347
+ <phrase id='elem_times.qname'/><intref ref='attr_times.qname'>&lt;!ELEMENT</intref> &#37;times.qname; EMPTY >
1348
+ <phrase id='attr_times.qname'/><intref ref='elem_times.qname'>&lt;!ATTLIST</intref> &#37;times.qname;
1349
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1350
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1351
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1352
+ >
1353
+
1354
+ <phrase id='elem_gcd.qname'/><intref ref='attr_gcd.qname'>&lt;!ELEMENT</intref> &#37;gcd.qname; EMPTY >
1355
+ <phrase id='attr_gcd.qname'/><intref ref='elem_gcd.qname'>&lt;!ATTLIST</intref> &#37;gcd.qname;
1356
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1357
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1358
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1359
+ >
1360
+
1361
+ <phrase id='elem_lcm.qname'/><intref ref='attr_lcm.qname'>&lt;!ELEMENT</intref> &#37;lcm.qname; EMPTY >
1362
+ <phrase id='attr_lcm.qname'/><intref ref='elem_lcm.qname'>&lt;!ATTLIST</intref> &#37;lcm.qname;
1363
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1364
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1365
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1366
+ >
1367
+
1368
+ <phrase id='pent_carithoproot'/>&lt;!ENTITY % carithoproot
1369
+ "&#37;root.qname;" >
1370
+
1371
+ <phrase id='elem_root.qname'/><intref ref='attr_root.qname'>&lt;!ELEMENT</intref> &#37;root.qname; EMPTY >
1372
+ <phrase id='attr_root.qname'/><intref ref='elem_root.qname'>&lt;!ATTLIST</intref> &#37;root.qname;
1373
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1374
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1375
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1376
+ >
1377
+
1378
+ <phrase id='pent_clogicopquant'/>&lt;!ENTITY % clogicopquant
1379
+ "%exists.qname; | &#37;forall.qname;" >
1380
+
1381
+ <phrase id='elem_exists.qname'/><intref ref='attr_exists.qname'>&lt;!ELEMENT</intref> %exists.qname; EMPTY >
1382
+ <phrase id='attr_exists.qname'/><intref ref='elem_exists.qname'>&lt;!ATTLIST</intref> %exists.qname;
1383
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1384
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1385
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1386
+ >
1387
+
1388
+ <phrase id='elem_forall.qname'/><intref ref='attr_forall.qname'>&lt;!ELEMENT</intref> &#37;forall.qname; EMPTY >
1389
+ <phrase id='attr_forall.qname'/><intref ref='elem_forall.qname'>&lt;!ATTLIST</intref> &#37;forall.qname;
1390
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1391
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1392
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1393
+ >
1394
+
1395
+ <phrase id='pent_clogicopnary'/>&lt;!ENTITY % clogicopnary
1396
+ "&#37;and.qname; | &#37;or.qname; | &#37;xor.qname;" >
1397
+
1398
+ <phrase id='elem_and.qname'/><intref ref='attr_and.qname'>&lt;!ELEMENT</intref> &#37;and.qname; EMPTY >
1399
+ <phrase id='attr_and.qname'/><intref ref='elem_and.qname'>&lt;!ATTLIST</intref> &#37;and.qname;
1400
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1401
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1402
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1403
+ >
1404
+
1405
+ <phrase id='elem_or.qname'/><intref ref='attr_or.qname'>&lt;!ELEMENT</intref> &#37;or.qname; EMPTY >
1406
+ <phrase id='attr_or.qname'/><intref ref='elem_or.qname'>&lt;!ATTLIST</intref> &#37;or.qname;
1407
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1408
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1409
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1410
+ >
1411
+
1412
+ <phrase id='elem_xor.qname'/><intref ref='attr_xor.qname'>&lt;!ELEMENT</intref> &#37;xor.qname; EMPTY >
1413
+ <phrase id='attr_xor.qname'/><intref ref='elem_xor.qname'>&lt;!ATTLIST</intref> &#37;xor.qname;
1414
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1415
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1416
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1417
+ >
1418
+
1419
+ <phrase id='pent_clogicop1ary'/>&lt;!ENTITY % clogicop1ary
1420
+ "&#37;not.qname;" >
1421
+
1422
+ <phrase id='elem_not.qname'/><intref ref='attr_not.qname'>&lt;!ELEMENT</intref> &#37;not.qname; EMPTY >
1423
+ <phrase id='attr_not.qname'/><intref ref='elem_not.qname'>&lt;!ATTLIST</intref> &#37;not.qname;
1424
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1425
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1426
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1427
+ >
1428
+
1429
+ <phrase id='pent_clogicop2ary'/>&lt;!ENTITY % clogicop2ary
1430
+ "&#37;implies.qname;" >
1431
+
1432
+ <phrase id='elem_implies.qname'/><intref ref='attr_implies.qname'>&lt;!ELEMENT</intref> &#37;implies.qname; EMPTY >
1433
+ <phrase id='attr_implies.qname'/><intref ref='elem_implies.qname'>&lt;!ATTLIST</intref> &#37;implies.qname;
1434
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1435
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1436
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1437
+ >
1438
+
1439
+ <phrase id='pent_ccalcop'/>&lt;!ENTITY % ccalcop
1440
+ "&#37;log.qname; | &#37;int.qname; | &#37;diff.qname; | &#37;partialdiff.qname; |
1441
+ &#37;divergence.qname; | &#37;grad.qname; | &#37;curl.qname; | &#37;laplacian.qname;" >
1442
+
1443
+ <phrase id='elem_divergence.qname'/><intref ref='attr_divergence.qname'>&lt;!ELEMENT</intref> &#37;divergence.qname; EMPTY >
1444
+ <phrase id='attr_divergence.qname'/><intref ref='elem_divergence.qname'>&lt;!ATTLIST</intref> &#37;divergence.qname;
1445
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1446
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1447
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1448
+ >
1449
+
1450
+ <phrase id='elem_grad.qname'/><intref ref='attr_grad.qname'>&lt;!ELEMENT</intref> &#37;grad.qname; EMPTY >
1451
+ <phrase id='attr_grad.qname'/><intref ref='elem_grad.qname'>&lt;!ATTLIST</intref> &#37;grad.qname;
1452
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1453
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1454
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1455
+ >
1456
+
1457
+ <phrase id='elem_curl.qname'/><intref ref='attr_curl.qname'>&lt;!ELEMENT</intref> &#37;curl.qname; EMPTY >
1458
+ <phrase id='attr_curl.qname'/><intref ref='elem_curl.qname'>&lt;!ATTLIST</intref> &#37;curl.qname;
1459
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1460
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1461
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1462
+ >
1463
+
1464
+ <phrase id='elem_laplacian.qname'/><intref ref='attr_laplacian.qname'>&lt;!ELEMENT</intref> &#37;laplacian.qname; EMPTY >
1465
+ <phrase id='attr_laplacian.qname'/><intref ref='elem_laplacian.qname'>&lt;!ATTLIST</intref> &#37;laplacian.qname;
1466
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1467
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1468
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1469
+ >
1470
+
1471
+ <phrase id='elem_log.qname'/><intref ref='attr_log.qname'>&lt;!ELEMENT</intref> &#37;log.qname; EMPTY >
1472
+ <phrase id='attr_log.qname'/><intref ref='elem_log.qname'>&lt;!ATTLIST</intref> &#37;log.qname;
1473
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1474
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1475
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1476
+ >
1477
+
1478
+ <phrase id='elem_int.qname'/><intref ref='attr_int.qname'>&lt;!ELEMENT</intref> &#37;int.qname; EMPTY >
1479
+ <phrase id='attr_int.qname'/><intref ref='elem_int.qname'>&lt;!ATTLIST</intref> &#37;int.qname;
1480
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1481
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1482
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1483
+ >
1484
+
1485
+ <phrase id='elem_diff.qname'/><intref ref='attr_diff.qname'>&lt;!ELEMENT</intref> &#37;diff.qname; EMPTY >
1486
+ <phrase id='attr_diff.qname'/><intref ref='elem_diff.qname'>&lt;!ATTLIST</intref> &#37;diff.qname;
1487
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1488
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1489
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1490
+ >
1491
+
1492
+ <phrase id='elem_partialdiff.qname'/><intref ref='attr_partialdiff.qname'>&lt;!ELEMENT</intref> &#37;partialdiff.qname; EMPTY >
1493
+ <phrase id='attr_partialdiff.qname'/><intref ref='elem_partialdiff.qname'>&lt;!ATTLIST</intref> &#37;partialdiff.qname;
1494
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1495
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1496
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1497
+ >
1498
+
1499
+ <phrase id='pent_ccalcop1ary'/>&lt;!ENTITY % ccalcop1ary
1500
+ "&#37;ln.qname;" >
1501
+
1502
+ <phrase id='elem_ln.qname'/><intref ref='attr_ln.qname'>&lt;!ELEMENT</intref> &#37;ln.qname; EMPTY >
1503
+ <phrase id='attr_ln.qname'/><intref ref='elem_ln.qname'>&lt;!ATTLIST</intref> &#37;ln.qname;
1504
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1505
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1506
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1507
+ >
1508
+
1509
+ <phrase id='pent_csetop1ary'/>&lt;!ENTITY % csetop1ary
1510
+ "&#37;card.qname;" >
1511
+
1512
+ <phrase id='elem_card.qname'/><intref ref='attr_card.qname'>&lt;!ELEMENT</intref> &#37;card.qname; EMPTY >
1513
+ <phrase id='attr_card.qname'/><intref ref='elem_card.qname'>&lt;!ATTLIST</intref> &#37;card.qname;
1514
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1515
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1516
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1517
+ >
1518
+
1519
+ <phrase id='pent_csetop2ary'/>&lt;!ENTITY % csetop2ary
1520
+ "&#37;setdiff.qname;" >
1521
+
1522
+ <phrase id='elem_setdiff.qname'/><intref ref='attr_setdiff.qname'>&lt;!ELEMENT</intref> &#37;setdiff.qname; EMPTY >
1523
+ <phrase id='attr_setdiff.qname'/><intref ref='elem_setdiff.qname'>&lt;!ATTLIST</intref> &#37;setdiff.qname;
1524
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1525
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1526
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1527
+ >
1528
+
1529
+ <phrase id='pent_csetopnary'/>&lt;!ENTITY % csetopnary
1530
+ "&#37;union.qname; | &#37;intersect.qname; | &#37;cartesianproduct.qname; " >
1531
+
1532
+ <phrase id='elem_union.qname'/><intref ref='attr_union.qname'>&lt;!ELEMENT</intref> &#37;union.qname; EMPTY >
1533
+ <phrase id='attr_union.qname'/><intref ref='elem_union.qname'>&lt;!ATTLIST</intref> &#37;union.qname;
1534
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1535
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1536
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1537
+ >
1538
+
1539
+ <phrase id='elem_intersect.qname'/><intref ref='attr_intersect.qname'>&lt;!ELEMENT</intref> &#37;intersect.qname; EMPTY >
1540
+ <phrase id='attr_intersect.qname'/><intref ref='elem_intersect.qname'>&lt;!ATTLIST</intref> &#37;intersect.qname;
1541
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1542
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1543
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1544
+ >
1545
+
1546
+ <phrase id='elem_cartesianproduct.qname'/><intref ref='attr_cartesianproduct.qname'>&lt;!ELEMENT</intref> &#37;cartesianproduct.qname; EMPTY >
1547
+ <phrase id='attr_cartesianproduct.qname'/><intref ref='elem_cartesianproduct.qname'>&lt;!ATTLIST</intref> &#37;cartesianproduct.qname;
1548
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1549
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1550
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1551
+ >
1552
+
1553
+ <phrase id='pent_cseqop'/>&lt;!ENTITY % cseqop
1554
+ "&#37;sum.qname; | &#37;product.qname; | &#37;limit.qname;" >
1555
+
1556
+ <phrase id='elem_sum.qname'/><intref ref='attr_sum.qname'>&lt;!ELEMENT</intref> &#37;sum.qname; EMPTY >
1557
+ <phrase id='attr_sum.qname'/><intref ref='elem_sum.qname'>&lt;!ATTLIST</intref> &#37;sum.qname;
1558
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1559
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1560
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1561
+ >
1562
+
1563
+ <phrase id='elem_product.qname'/><intref ref='attr_product.qname'>&lt;!ELEMENT</intref> &#37;product.qname; EMPTY >
1564
+ <phrase id='attr_product.qname'/><intref ref='elem_product.qname'>&lt;!ATTLIST</intref> &#37;product.qname;
1565
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1566
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1567
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1568
+ >
1569
+
1570
+ <phrase id='elem_limit.qname'/><intref ref='attr_limit.qname'>&lt;!ELEMENT</intref> &#37;limit.qname; EMPTY >
1571
+ <phrase id='attr_limit.qname'/><intref ref='elem_limit.qname'>&lt;!ATTLIST</intref> &#37;limit.qname;
1572
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1573
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1574
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1575
+ >
1576
+
1577
+ <phrase id='pent_ctrigop'/>&lt;!ENTITY % ctrigop
1578
+ "&#37;sin.qname; | &#37;cos.qname; | &#37;tan.qname;
1579
+ | &#37;sec.qname; | &#37;csc.qname; | &#37;cot.qname;
1580
+ | &#37;sinh.qname; | &#37;cosh.qname; | &#37;tanh.qname;
1581
+ | &#37;sech.qname; | &#37;csch.qname; | &#37;coth.qname;
1582
+ | &#37;arcsin.qname; | &#37;arccos.qname; | &#37;arctan.qname;
1583
+ | &#37;arccosh.qname; | &#37;arccot.qname; | &#37;arccoth.qname;
1584
+ | &#37;arccsc.qname; | &#37;arccsch.qname; | &#37;arcsec.qname;
1585
+ | &#37;arcsech.qname; | &#37;arcsinh.qname; | &#37;arctanh.qname;
1586
+ " >
1587
+
1588
+ <phrase id='elem_sin.qname'/><intref ref='attr_sin.qname'>&lt;!ELEMENT</intref> &#37;sin.qname; EMPTY >
1589
+ <phrase id='attr_sin.qname'/><intref ref='elem_sin.qname'>&lt;!ATTLIST</intref> &#37;sin.qname;
1590
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1591
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1592
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1593
+ >
1594
+
1595
+ <phrase id='elem_cos.qname'/><intref ref='attr_cos.qname'>&lt;!ELEMENT</intref> &#37;cos.qname; EMPTY >
1596
+ <phrase id='attr_cos.qname'/><intref ref='elem_cos.qname'>&lt;!ATTLIST</intref> &#37;cos.qname;
1597
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1598
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1599
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1600
+ >
1601
+
1602
+ <phrase id='elem_tan.qname'/><intref ref='attr_tan.qname'>&lt;!ELEMENT</intref> &#37;tan.qname; EMPTY >
1603
+ <phrase id='attr_tan.qname'/><intref ref='elem_tan.qname'>&lt;!ATTLIST</intref> &#37;tan.qname;
1604
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1605
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1606
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1607
+ >
1608
+
1609
+ <phrase id='elem_sec.qname'/><intref ref='attr_sec.qname'>&lt;!ELEMENT</intref> &#37;sec.qname; EMPTY >
1610
+ <phrase id='attr_sec.qname'/><intref ref='elem_sec.qname'>&lt;!ATTLIST</intref> &#37;sec.qname;
1611
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1612
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1613
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1614
+ >
1615
+
1616
+ <phrase id='elem_csc.qname'/><intref ref='attr_csc.qname'>&lt;!ELEMENT</intref> &#37;csc.qname; EMPTY >
1617
+ <phrase id='attr_csc.qname'/><intref ref='elem_csc.qname'>&lt;!ATTLIST</intref> &#37;csc.qname;
1618
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1619
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1620
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1621
+ >
1622
+
1623
+ <phrase id='elem_cot.qname'/><intref ref='attr_cot.qname'>&lt;!ELEMENT</intref> &#37;cot.qname; EMPTY >
1624
+ <phrase id='attr_cot.qname'/><intref ref='elem_cot.qname'>&lt;!ATTLIST</intref> &#37;cot.qname;
1625
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1626
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1627
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1628
+ >
1629
+
1630
+ <phrase id='elem_sinh.qname'/><intref ref='attr_sinh.qname'>&lt;!ELEMENT</intref> &#37;sinh.qname; EMPTY >
1631
+ <phrase id='attr_sinh.qname'/><intref ref='elem_sinh.qname'>&lt;!ATTLIST</intref> &#37;sinh.qname;
1632
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1633
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1634
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1635
+ >
1636
+
1637
+ <phrase id='elem_cosh.qname'/><intref ref='attr_cosh.qname'>&lt;!ELEMENT</intref> &#37;cosh.qname; EMPTY >
1638
+ <phrase id='attr_cosh.qname'/><intref ref='elem_cosh.qname'>&lt;!ATTLIST</intref> &#37;cosh.qname;
1639
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1640
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1641
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1642
+ >
1643
+
1644
+ <phrase id='elem_tanh.qname'/><intref ref='attr_tanh.qname'>&lt;!ELEMENT</intref> &#37;tanh.qname; EMPTY >
1645
+ <phrase id='attr_tanh.qname'/><intref ref='elem_tanh.qname'>&lt;!ATTLIST</intref> &#37;tanh.qname;
1646
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1647
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1648
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1649
+ >
1650
+
1651
+ <phrase id='elem_sech.qname'/><intref ref='attr_sech.qname'>&lt;!ELEMENT</intref> &#37;sech.qname; EMPTY >
1652
+ <phrase id='attr_sech.qname'/><intref ref='elem_sech.qname'>&lt;!ATTLIST</intref> &#37;sech.qname;
1653
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1654
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1655
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1656
+ >
1657
+
1658
+ <phrase id='elem_csch.qname'/><intref ref='attr_csch.qname'>&lt;!ELEMENT</intref> &#37;csch.qname; EMPTY >
1659
+ <phrase id='attr_csch.qname'/><intref ref='elem_csch.qname'>&lt;!ATTLIST</intref> &#37;csch.qname;
1660
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1661
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1662
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1663
+ >
1664
+
1665
+ <phrase id='elem_coth.qname'/><intref ref='attr_coth.qname'>&lt;!ELEMENT</intref> &#37;coth.qname; EMPTY >
1666
+ <phrase id='attr_coth.qname'/><intref ref='elem_coth.qname'>&lt;!ATTLIST</intref> &#37;coth.qname;
1667
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1668
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1669
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1670
+ >
1671
+
1672
+ <phrase id='elem_arcsin.qname'/><intref ref='attr_arcsin.qname'>&lt;!ELEMENT</intref> &#37;arcsin.qname; EMPTY >
1673
+ <phrase id='attr_arcsin.qname'/><intref ref='elem_arcsin.qname'>&lt;!ATTLIST</intref> &#37;arcsin.qname;
1674
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1675
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1676
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1677
+ >
1678
+
1679
+ <phrase id='elem_arccos.qname'/><intref ref='attr_arccos.qname'>&lt;!ELEMENT</intref> &#37;arccos.qname; EMPTY >
1680
+ <phrase id='attr_arccos.qname'/><intref ref='elem_arccos.qname'>&lt;!ATTLIST</intref> &#37;arccos.qname;
1681
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1682
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1683
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1684
+ >
1685
+
1686
+ <phrase id='elem_arctan.qname'/><intref ref='attr_arctan.qname'>&lt;!ELEMENT</intref> &#37;arctan.qname; EMPTY >
1687
+ <phrase id='attr_arctan.qname'/><intref ref='elem_arctan.qname'>&lt;!ATTLIST</intref> &#37;arctan.qname;
1688
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1689
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1690
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1691
+ >
1692
+
1693
+ <phrase id='elem_arccosh.qname'/><intref ref='attr_arccosh.qname'>&lt;!ELEMENT</intref> &#37;arccosh.qname; EMPTY >
1694
+ <phrase id='attr_arccosh.qname'/><intref ref='elem_arccosh.qname'>&lt;!ATTLIST</intref> &#37;arccosh.qname;
1695
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1696
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1697
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1698
+ >
1699
+
1700
+
1701
+ <phrase id='elem_arccot.qname'/><intref ref='attr_arccot.qname'>&lt;!ELEMENT</intref> &#37;arccot.qname; EMPTY >
1702
+ <phrase id='attr_arccot.qname'/><intref ref='elem_arccot.qname'>&lt;!ATTLIST</intref> &#37;arccot.qname;
1703
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1704
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1705
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1706
+ >
1707
+
1708
+ <phrase id='elem_arccoth.qname'/><intref ref='attr_arccoth.qname'>&lt;!ELEMENT</intref> &#37;arccoth.qname; EMPTY >
1709
+ <phrase id='attr_arccoth.qname'/><intref ref='elem_arccoth.qname'>&lt;!ATTLIST</intref> &#37;arccoth.qname;
1710
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1711
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1712
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1713
+ >
1714
+
1715
+
1716
+ <phrase id='elem_arccsc.qname'/><intref ref='attr_arccsc.qname'>&lt;!ELEMENT</intref> &#37;arccsc.qname; EMPTY >
1717
+ <phrase id='attr_arccsc.qname'/><intref ref='elem_arccsc.qname'>&lt;!ATTLIST</intref> &#37;arccsc.qname;
1718
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1719
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1720
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1721
+ >
1722
+
1723
+ <phrase id='elem_arccsch.qname'/><intref ref='attr_arccsch.qname'>&lt;!ELEMENT</intref> &#37;arccsch.qname; EMPTY >
1724
+ <phrase id='attr_arccsch.qname'/><intref ref='elem_arccsch.qname'>&lt;!ATTLIST</intref> &#37;arccsch.qname;
1725
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1726
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1727
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1728
+ >
1729
+
1730
+ <phrase id='elem_arcsec.qname'/><intref ref='attr_arcsec.qname'>&lt;!ELEMENT</intref> &#37;arcsec.qname; EMPTY >
1731
+ <phrase id='attr_arcsec.qname'/><intref ref='elem_arcsec.qname'>&lt;!ATTLIST</intref> &#37;arcsec.qname;
1732
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1733
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1734
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1735
+ >
1736
+
1737
+ <phrase id='elem_arcsech.qname'/><intref ref='attr_arcsech.qname'>&lt;!ELEMENT</intref> &#37;arcsech.qname; EMPTY >
1738
+ <phrase id='attr_arcsech.qname'/><intref ref='elem_arcsech.qname'>&lt;!ATTLIST</intref> &#37;arcsech.qname;
1739
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1740
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1741
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1742
+ >
1743
+
1744
+ <phrase id='elem_arcsinh.qname'/><intref ref='attr_arcsinh.qname'>&lt;!ELEMENT</intref> &#37;arcsinh.qname; EMPTY >
1745
+ <phrase id='attr_arcsinh.qname'/><intref ref='elem_arcsinh.qname'>&lt;!ATTLIST</intref> &#37;arcsinh.qname;
1746
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1747
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1748
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1749
+ >
1750
+
1751
+ <phrase id='elem_arctanh.qname'/><intref ref='attr_arctanh.qname'>&lt;!ELEMENT</intref> &#37;arctanh.qname; EMPTY >
1752
+ <phrase id='attr_arctanh.qname'/><intref ref='elem_arctanh.qname'>&lt;!ATTLIST</intref> &#37;arctanh.qname;
1753
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1754
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1755
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1756
+ >
1757
+
1758
+
1759
+
1760
+ <phrase id='pent_cstatopnary'/>&lt;!ENTITY % cstatopnary
1761
+ "&#37;mean.qname; | &#37;sdev.qname; |
1762
+ &#37;variance.qname; | &#37;median.qname; |
1763
+ &#37;mode.qname;" >
1764
+
1765
+ <phrase id='elem_mean.qname'/><intref ref='attr_mean.qname'>&lt;!ELEMENT</intref> &#37;mean.qname; EMPTY >
1766
+ <phrase id='attr_mean.qname'/><intref ref='elem_mean.qname'>&lt;!ATTLIST</intref> &#37;mean.qname;
1767
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1768
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1769
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1770
+ >
1771
+
1772
+ <phrase id='elem_sdev.qname'/><intref ref='attr_sdev.qname'>&lt;!ELEMENT</intref> &#37;sdev.qname; EMPTY >
1773
+ <phrase id='attr_sdev.qname'/><intref ref='elem_sdev.qname'>&lt;!ATTLIST</intref> &#37;sdev.qname;
1774
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1775
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1776
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1777
+ >
1778
+
1779
+ <phrase id='elem_variance.qname'/><intref ref='attr_variance.qname'>&lt;!ELEMENT</intref> &#37;variance.qname; EMPTY >
1780
+ <phrase id='attr_variance.qname'/><intref ref='elem_variance.qname'>&lt;!ATTLIST</intref> &#37;variance.qname;
1781
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1782
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1783
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1784
+ >
1785
+
1786
+ <phrase id='elem_median.qname'/><intref ref='attr_median.qname'>&lt;!ELEMENT</intref> &#37;median.qname; EMPTY >
1787
+ <phrase id='attr_median.qname'/><intref ref='elem_median.qname'>&lt;!ATTLIST</intref> &#37;median.qname;
1788
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1789
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1790
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1791
+ >
1792
+
1793
+ <phrase id='elem_mode.qname'/><intref ref='attr_mode.qname'>&lt;!ELEMENT</intref> &#37;mode.qname; EMPTY >
1794
+ <phrase id='attr_mode.qname'/><intref ref='elem_mode.qname'>&lt;!ATTLIST</intref> &#37;mode.qname;
1795
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1796
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1797
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1798
+ >
1799
+
1800
+ <phrase id='pent_cstatopmoment'/>&lt;!ENTITY % cstatopmoment
1801
+ "&#37;moment.qname;" >
1802
+
1803
+ <phrase id='elem_moment.qname'/><intref ref='attr_moment.qname'>&lt;!ELEMENT</intref> &#37;moment.qname; EMPTY >
1804
+ <phrase id='attr_moment.qname'/><intref ref='elem_moment.qname'>&lt;!ATTLIST</intref> &#37;moment.qname;
1805
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1806
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1807
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1808
+ >
1809
+
1810
+ <phrase id='pent_clalgop1ary'/>&lt;!ENTITY % clalgop1ary
1811
+ "&#37;determinant.qname; |
1812
+ &#37;transpose.qname;" >
1813
+
1814
+ <phrase id='elem_determinant.qname'/><intref ref='attr_determinant.qname'>&lt;!ELEMENT</intref> &#37;determinant.qname; EMPTY >
1815
+ <phrase id='attr_determinant.qname'/><intref ref='elem_determinant.qname'>&lt;!ATTLIST</intref> &#37;determinant.qname;
1816
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1817
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1818
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1819
+ >
1820
+
1821
+ <phrase id='elem_transpose.qname'/><intref ref='attr_transpose.qname'>&lt;!ELEMENT</intref> &#37;transpose.qname; EMPTY >
1822
+ <phrase id='attr_transpose.qname'/><intref ref='elem_transpose.qname'>&lt;!ATTLIST</intref> &#37;transpose.qname;
1823
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1824
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1825
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1826
+ >
1827
+
1828
+ <phrase id='pent_clalgop2ary'/>&lt;!ENTITY % clalgop2ary
1829
+ "&#37;vectorproduct.qname;
1830
+ | &#37;scalarproduct.qname;
1831
+ | &#37;outerproduct.qname;" >
1832
+
1833
+ <phrase id='elem_vectorproduct.qname'/><intref ref='attr_vectorproduct.qname'>&lt;!ELEMENT</intref> &#37;vectorproduct.qname; EMPTY >
1834
+ <phrase id='attr_vectorproduct.qname'/><intref ref='elem_vectorproduct.qname'>&lt;!ATTLIST</intref> &#37;vectorproduct.qname;
1835
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1836
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1837
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1838
+ >
1839
+
1840
+ <phrase id='elem_scalarproduct.qname'/><intref ref='attr_scalarproduct.qname'>&lt;!ELEMENT</intref> &#37;scalarproduct.qname; EMPTY >
1841
+ <phrase id='attr_scalarproduct.qname'/><intref ref='elem_scalarproduct.qname'>&lt;!ATTLIST</intref> &#37;scalarproduct.qname;
1842
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1843
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1844
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1845
+ >
1846
+
1847
+ <phrase id='elem_outerproduct.qname'/><intref ref='attr_outerproduct.qname'>&lt;!ELEMENT</intref> &#37;outerproduct.qname; EMPTY >
1848
+ <phrase id='attr_outerproduct.qname'/><intref ref='elem_outerproduct.qname'>&lt;!ATTLIST</intref> &#37;outerproduct.qname;
1849
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1850
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1851
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1852
+ >
1853
+
1854
+ <phrase id='pent_clalgopnary'/>&lt;!ENTITY % clalgopnary
1855
+ "&#37;selector.qname;" >
1856
+
1857
+ <phrase id='elem_selector.qname'/><intref ref='attr_selector.qname'>&lt;!ELEMENT</intref> &#37;selector.qname; EMPTY >
1858
+ <phrase id='attr_selector.qname'/><intref ref='elem_selector.qname'>&lt;!ATTLIST</intref> &#37;selector.qname;
1859
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1860
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1861
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1862
+ >
1863
+
1864
+ &lt;!-- Content elements: relations -->
1865
+
1866
+ <phrase id='pent_cgenrel2ary'/>&lt;!ENTITY % cgenrel2ary
1867
+ "&#37;neq.qname; | &#37;factorof.qname;" >
1868
+
1869
+ <phrase id='elem_neq.qname'/><intref ref='attr_neq.qname'>&lt;!ELEMENT</intref> &#37;neq.qname; EMPTY >
1870
+ <phrase id='attr_neq.qname'/><intref ref='elem_neq.qname'>&lt;!ATTLIST</intref> &#37;neq.qname;
1871
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1872
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1873
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1874
+ >
1875
+
1876
+ <phrase id='elem_factorof.qname'/><intref ref='attr_factorof.qname'>&lt;!ELEMENT</intref> &#37;factorof.qname; EMPTY >
1877
+ <phrase id='attr_factorof.qname'/><intref ref='elem_factorof.qname'>&lt;!ATTLIST</intref> &#37;factorof.qname;
1878
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1879
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1880
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1881
+ >
1882
+
1883
+ <phrase id='pent_cgenrelnary'/>&lt;!ENTITY % cgenrelnary
1884
+ "%eq.qname; | &#37;leq.qname; | &#37;lt.qname; | &#37;geq.qname;
1885
+ | &#37;gt.qname;| %equivalent.qname; | &#37;approx.qname;" >
1886
+
1887
+ <phrase id='elem_eq.qname'/><intref ref='attr_eq.qname'>&lt;!ELEMENT</intref> %eq.qname; EMPTY >
1888
+ <phrase id='attr_eq.qname'/><intref ref='elem_eq.qname'>&lt;!ATTLIST</intref> %eq.qname;
1889
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1890
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1891
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1892
+ >
1893
+
1894
+ <phrase id='elem_equivalent.qname'/><intref ref='attr_equivalent.qname'>&lt;!ELEMENT</intref> %equivalent.qname; EMPTY >
1895
+ <phrase id='attr_equivalent.qname'/><intref ref='elem_equivalent.qname'>&lt;!ATTLIST</intref> %equivalent.qname;
1896
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1897
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1898
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1899
+ >
1900
+
1901
+ <phrase id='elem_approx.qname'/><intref ref='attr_approx.qname'>&lt;!ELEMENT</intref> &#37;approx.qname; EMPTY >
1902
+ <phrase id='attr_approx.qname'/><intref ref='elem_approx.qname'>&lt;!ATTLIST</intref> &#37;approx.qname;
1903
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1904
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1905
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1906
+ >
1907
+
1908
+ <phrase id='elem_gt.qname'/><intref ref='attr_gt.qname'>&lt;!ELEMENT</intref> &#37;gt.qname; EMPTY >
1909
+ <phrase id='attr_gt.qname'/><intref ref='elem_gt.qname'>&lt;!ATTLIST</intref> &#37;gt.qname;
1910
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1911
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1912
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1913
+ >
1914
+
1915
+ <phrase id='elem_lt.qname'/><intref ref='attr_lt.qname'>&lt;!ELEMENT</intref> &#37;lt.qname; EMPTY >
1916
+ <phrase id='attr_lt.qname'/><intref ref='elem_lt.qname'>&lt;!ATTLIST</intref> &#37;lt.qname;
1917
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1918
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1919
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1920
+ >
1921
+
1922
+ <phrase id='elem_geq.qname'/><intref ref='attr_geq.qname'>&lt;!ELEMENT</intref> &#37;geq.qname; EMPTY >
1923
+ <phrase id='attr_geq.qname'/><intref ref='elem_geq.qname'>&lt;!ATTLIST</intref> &#37;geq.qname;
1924
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1925
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1926
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1927
+ >
1928
+
1929
+ <phrase id='elem_leq.qname'/><intref ref='attr_leq.qname'>&lt;!ELEMENT</intref> &#37;leq.qname; EMPTY >
1930
+ <phrase id='attr_leq.qname'/><intref ref='elem_leq.qname'>&lt;!ATTLIST</intref> &#37;leq.qname;
1931
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1932
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1933
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1934
+ >
1935
+
1936
+ <phrase id='pent_csetrel2ary'/>&lt;!ENTITY % csetrel2ary
1937
+ "&#37;in.qname; | &#37;notin.qname; | &#37;notsubset.qname; | &#37;notprsubset.qname;" >
1938
+
1939
+ <phrase id='elem_in.qname'/><intref ref='attr_in.qname'>&lt;!ELEMENT</intref> &#37;in.qname; EMPTY >
1940
+ <phrase id='attr_in.qname'/><intref ref='elem_in.qname'>&lt;!ATTLIST</intref> &#37;in.qname;
1941
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1942
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1943
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1944
+ >
1945
+
1946
+ <phrase id='elem_notin.qname'/><intref ref='attr_notin.qname'>&lt;!ELEMENT</intref> &#37;notin.qname; EMPTY >
1947
+ <phrase id='attr_notin.qname'/><intref ref='elem_notin.qname'>&lt;!ATTLIST</intref> &#37;notin.qname;
1948
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1949
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1950
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1951
+ >
1952
+
1953
+ <phrase id='elem_notsubset.qname'/><intref ref='attr_notsubset.qname'>&lt;!ELEMENT</intref> &#37;notsubset.qname; EMPTY >
1954
+ <phrase id='attr_notsubset.qname'/><intref ref='elem_notsubset.qname'>&lt;!ATTLIST</intref> &#37;notsubset.qname;
1955
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1956
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1957
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1958
+ >
1959
+
1960
+ <phrase id='elem_notprsubset.qname'/><intref ref='attr_notprsubset.qname'>&lt;!ELEMENT</intref> &#37;notprsubset.qname; EMPTY >
1961
+ <phrase id='attr_notprsubset.qname'/><intref ref='elem_notprsubset.qname'>&lt;!ATTLIST</intref> &#37;notprsubset.qname;
1962
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1963
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1964
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1965
+ >
1966
+
1967
+ <phrase id='pent_csetrelnary'/>&lt;!ENTITY % csetrelnary
1968
+ "&#37;subset.qname; | &#37;prsubset.qname;" >
1969
+
1970
+ <phrase id='elem_subset.qname'/><intref ref='attr_subset.qname'>&lt;!ELEMENT</intref> &#37;subset.qname; EMPTY >
1971
+ <phrase id='attr_subset.qname'/><intref ref='elem_subset.qname'>&lt;!ATTLIST</intref> &#37;subset.qname;
1972
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1973
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1974
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1975
+ >
1976
+
1977
+ <phrase id='elem_prsubset.qname'/><intref ref='attr_prsubset.qname'>&lt;!ELEMENT</intref> &#37;prsubset.qname; EMPTY >
1978
+ <phrase id='attr_prsubset.qname'/><intref ref='elem_prsubset.qname'>&lt;!ATTLIST</intref> &#37;prsubset.qname;
1979
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1980
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1981
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1982
+ >
1983
+
1984
+ <phrase id='pent_cseqrel2ary'/>&lt;!ENTITY % cseqrel2ary
1985
+ "&#37;tendsto.qname;" >
1986
+
1987
+ <phrase id='elem_tendsto.qname'/><intref ref='attr_tendsto.qname'>&lt;!ELEMENT</intref> &#37;tendsto.qname; EMPTY >
1988
+ <phrase id='attr_tendsto.qname'/><intref ref='elem_tendsto.qname'>&lt;!ATTLIST</intref> &#37;tendsto.qname;
1989
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
1990
+ <intref ref='pent_att_definition'>%att-definition;</intref>
1991
+ <intref ref='pent_att_encoding'>%att-encoding;</intref>
1992
+ <intref ref='pent_att_type'>%att-type;</intref>
1993
+ >
1994
+
1995
+ &lt;!-- Content elements: quantifiers -->
1996
+
1997
+ <phrase id='pent_cquantifier'/>&lt;!ENTITY % cquantifier
1998
+ "&#37;lowlimit.qname; | &#37;uplimit.qname; | &#37;bvar.qname;
1999
+ | &#37;degree.qname; | &#37;logbase.qname;
2000
+ | &#37;momentabout.qname; | &#37;domainofapplication.qname; " >
2001
+
2002
+ <phrase id='attr_lowlimit.qname'/><intref ref='elem_lowlimit.qname'>&lt;!ATTLIST</intref> &#37;lowlimit.qname;
2003
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
2004
+ >
2005
+
2006
+ <phrase id='attr_uplimit.qname'/><intref ref='elem_uplimit.qname'>&lt;!ATTLIST</intref> &#37;uplimit.qname;
2007
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
2008
+ >
2009
+
2010
+ <phrase id='attr_bvar.qname'/><intref ref='elem_bvar.qname'>&lt;!ATTLIST</intref> &#37;bvar.qname;
2011
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
2012
+ >
2013
+
2014
+ <phrase id='attr_degree.qname'/><intref ref='elem_degree.qname'>&lt;!ATTLIST</intref> &#37;degree.qname;
2015
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
2016
+ >
2017
+
2018
+ <phrase id='attr_logbase.qname'/><intref ref='elem_logbase.qname'>&lt;!ATTLIST</intref> &#37;logbase.qname;
2019
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
2020
+ >
2021
+
2022
+ <phrase id='attr_momentabout.qname'/><intref ref='elem_momentabout.qname'>&lt;!ATTLIST</intref> &#37;momentabout.qname;
2023
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
2024
+ >
2025
+
2026
+ <phrase id='attr_domainofapplication.qname'/><intref ref='elem_domainofapplication.qname'>&lt;!ATTLIST</intref> &#37;domainofapplication.qname;
2027
+ <intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
2028
+ >
2029
+
2030
+ &lt;!-- Operator groups -->
2031
+
2032
+ <phrase id='pent_cop1ary'/>&lt;!ENTITY % cop1ary
2033
+ "<intref ref='pent_cfuncop1ary'>%cfuncop1ary;</intref> | <intref ref='pent_carithop1ary'>%carithop1ary;</intref> | <intref ref='pent_clogicop1ary'>%clogicop1ary;</intref> |
2034
+ <intref ref='pent_ccalcop1ary'>%ccalcop1ary;</intref> | <intref ref='pent_ctrigop'>%ctrigop;</intref> | <intref ref='pent_clalgop1ary'>%clalgop1ary;</intref> |
2035
+ <intref ref='pent_csetop1ary'>%csetop1ary;</intref>" >
2036
+
2037
+ <phrase id='pent_cop2ary'/>&lt;!ENTITY % cop2ary
2038
+ "<intref ref='pent_carithop2ary'>%carithop2ary;</intref> | <intref ref='pent_clogicop2ary'>%clogicop2ary;</intref>| <intref ref='pent_clalgop2ary'>%clalgop2ary;</intref> | <intref ref='pent_csetop2ary'>%csetop2ary;</intref>" >
2039
+
2040
+ <phrase id='pent_copnary'/>&lt;!ENTITY % copnary
2041
+ "<intref ref='pent_cfuncopnary'>%cfuncopnary;</intref> | <intref ref='pent_carithopnary'>%carithopnary;</intref> | <intref ref='pent_clogicopnary'>%clogicopnary;</intref> |
2042
+ <intref ref='pent_csetopnary'>%csetopnary;</intref> | <intref ref='pent_cstatopnary'>%cstatopnary;</intref> | <intref ref='pent_clalgopnary'>%clalgopnary;</intref>" >
2043
+
2044
+ <phrase id='pent_copmisc'/>&lt;!ENTITY % copmisc
2045
+ "<intref ref='pent_carithoproot'>%carithoproot;</intref> | <intref ref='pent_carithop1or2ary'>%carithop1or2ary;</intref> | <intref ref='pent_ccalcop'>%ccalcop;</intref> |
2046
+ <intref ref='pent_cseqop'>%cseqop;</intref> | <intref ref='pent_cstatopmoment'>%cstatopmoment;</intref> | <intref ref='pent_clogicopquant'>%clogicopquant;</intref>" >
2047
+
2048
+ &lt;!-- Relation groups -->
2049
+
2050
+ <phrase id='pent_crel2ary'/>&lt;!ENTITY % crel2ary
2051
+ "<intref ref='pent_cgenrel2ary'>%cgenrel2ary;</intref> | <intref ref='pent_csetrel2ary'>%csetrel2ary;</intref> | <intref ref='pent_cseqrel2ary'>%cseqrel2ary;</intref>" >
2052
+
2053
+ <phrase id='pent_crelnary'/>&lt;!ENTITY % crelnary
2054
+ "<intref ref='pent_cgenrelnary'>%cgenrelnary;</intref> | <intref ref='pent_csetrelnary'>%csetrelnary;</intref>" >
2055
+
2056
+ &lt;!-- Content constructs: all -->
2057
+
2058
+ <phrase id='pent_Content'/>&lt;!ENTITY % Content
2059
+ "<intref ref='pent_ctoken'>%ctoken;</intref> | <intref ref='pent_cspecial'>%cspecial;</intref> | <intref ref='pent_cother'>%cother;</intref> | <intref ref='pent_csemantics'>%csemantics;</intref> | <intref ref='pent_c0ary'>%c0ary;</intref>
2060
+ | <intref ref='pent_cconstructor'>%cconstructor;</intref> | <intref ref='pent_cquantifier'>%cquantifier;</intref> | <intref ref='pent_cop1ary'>%cop1ary;</intref> | <intref ref='pent_cop2ary'>%cop2ary;</intref>
2061
+ | <intref ref='pent_copnary'>%copnary;</intref> |<intref ref='pent_copmisc'>%copmisc;</intref> | <intref ref='pent_crel2ary'>%crel2ary;</intref> | <intref ref='pent_crelnary'>%crelnary;</intref>" >
2062
+
2063
+ &lt;!-- Content constructs for substitution in presentation structures -->
2064
+
2065
+ <phrase id='pent_ContInPres'/>&lt;!ENTITY % ContInPres
2066
+ "&#37;ci.qname; |&#37;csymbol.qname;| &#37;cn.qname; | <intref ref='pent_c0ary'>%c0ary;</intref> |
2067
+ &#37;apply.qname; | &#37;fn.qname; |
2068
+ &#37;lambda.qname; | &#37;reln.qname; |
2069
+ <intref ref='pent_cconstructor'>%cconstructor;</intref> |
2070
+ &#37;semantics.qname; |&#37;declare.qname;" >
2071
+
2072
+ &lt;!-- ............................................................. -->
2073
+ &lt;!-- Recursive definition for content of expressions. Include
2074
+ presentation constructs at lowest level so presentation
2075
+ layout schemata hold presentation or content elements.
2076
+ Include content constructs at lowest level so content
2077
+ elements hold PCDATA or presentation elements at leaf
2078
+ level (for permitted substitutable elements in context)
2079
+ -->
2080
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
2081
+ &lt;!-- in strict mode don't allow presentation in content
2082
+ except where allowed by chapter 5:
2083
+ ci, cn, csymbol, semantics
2084
+ -->
2085
+ &lt;!ENTITY % ContentExpression "(<intref ref='pent_Content'>%Content;</intref>)*" >
2086
+ &lt;!ENTITY % semanticsContentExpression
2087
+ "(<intref ref='pent_Content'>%Content;</intref> | <intref ref='pent_PresInCont'>%PresInCont;</intref> |
2088
+ &#37;annotation.qname; | &#37;annotation-xml.qname;)*" >
2089
+ ]]&gt;</phrase>
2090
+ <phrase id='pent_ContentExpression'/>&lt;!ENTITY % ContentExpression
2091
+ "(<intref ref='pent_Content'>%Content;</intref> | <intref ref='pent_PresInCont'>%PresInCont;</intref>)*" >
2092
+ <phrase id='pent_semanticsContentExpression'/>&lt;!ENTITY % semanticsContentExpression "<intref ref='pent_ContentExpression'>%ContentExpression;</intref>">
2093
+
2094
+
2095
+ <phrase id='pent_PresExpression'/>&lt;!ENTITY % PresExpression
2096
+ "(<intref ref='pent_Presentation'>%Presentation;</intref> | <intref ref='pent_ContInPres'>%ContInPres;</intref>)*" >
2097
+ <phrase id='pent_MathExpression'/>&lt;!ENTITY % MathExpression
2098
+ "(<intref ref='pent_PresInCont'>%PresInCont;</intref> | <intref ref='pent_ContInPres'>%ContInPres;</intref>)*" >
2099
+
2100
+ &lt;!-- PCDATA or MathML character elements -->
2101
+ <phrase id='pent_MathMLCharacters'/>&lt;!ENTITY % MathMLCharacters
2102
+ "#PCDATA | &#37;mglyph.qname; " >
2103
+
2104
+ &lt;!-- Content elements: tokens -->
2105
+ &lt;!-- (may contain embedded presentation constructs) -->
2106
+
2107
+ <phrase id='elem_ci.qname'/><intref ref='attr_ci.qname'>&lt;!ELEMENT</intref> &#37;ci.qname; (<intref ref='pent_MathMLCharacters'>%MathMLCharacters;</intref> | <intref ref='pent_PresInCont'>%PresInCont;</intref>)* >
2108
+ <phrase id='elem_csymbol.qname'/><intref ref='attr_csymbol.qname'>&lt;!ELEMENT</intref> &#37;csymbol.qname; (<intref ref='pent_MathMLCharacters'>%MathMLCharacters;</intref> | <intref ref='pent_PresInCont'>%PresInCont;</intref>)* >
2109
+ <phrase id='elem_cn.qname'/><intref ref='attr_cn.qname'>&lt;!ELEMENT</intref> &#37;cn.qname; (<intref ref='pent_MathMLCharacters'>%MathMLCharacters;</intref> | &#37;sep.qname; | <intref ref='pent_PresInCont'>%PresInCont;</intref>)* >
2110
+
2111
+ &lt;!-- Content elements: special -->
2112
+
2113
+ <phrase id='elem_apply.qname'/><intref ref='attr_apply.qname'>&lt;!ELEMENT</intref> &#37;apply.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2114
+ <phrase id='elem_reln.qname'/><intref ref='attr_reln.qname'>&lt;!ELEMENT</intref> &#37;reln.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2115
+ <phrase id='elem_lambda.qname'/><intref ref='attr_lambda.qname'>&lt;!ELEMENT</intref> &#37;lambda.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2116
+
2117
+ &lt;!-- Content elements: other -->
2118
+
2119
+ <phrase id='elem_condition.qname'/><intref ref='attr_condition.qname'>&lt;!ELEMENT</intref> &#37;condition.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2120
+ <phrase id='elem_declare.qname'/><intref ref='attr_declare.qname'>&lt;!ELEMENT</intref> &#37;declare.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2121
+
2122
+ &lt;!-- Content elements: semantics -->
2123
+
2124
+ <phrase id='elem_semantics.qname'/><intref ref='attr_semantics.qname'>&lt;!ELEMENT</intref> &#37;semantics.qname; (<intref ref='pent_semanticsContentExpression'>%semanticsContentExpression;</intref>) >
2125
+ <phrase id='pent_Annotation.content'/>&lt;!ENTITY % Annotation.content "( #PCDATA )" >
2126
+ <phrase id='elem_annotation.qname'/><intref ref='attr_annotation.qname'>&lt;!ELEMENT</intref> &#37;annotation.qname; <intref ref='pent_Annotation.content'>%Annotation.content;</intref> >
2127
+
2128
+ <phrase id='pent_Annotation_xml.content'/>&lt;!ENTITY % Annotation-xml.content "ANY" >
2129
+ <phrase id='elem_annotation_xml.qname'/><intref ref='attr_annotation_xml.qname'>&lt;!ELEMENT</intref> &#37;annotation-xml.qname; <intref ref='pent_Annotation_xml.content'>%Annotation-xml.content;</intref> >
2130
+
2131
+ &lt;!-- Content elements: constructors -->
2132
+
2133
+ <phrase id='elem_interval.qname'/><intref ref='attr_interval.qname'>&lt;!ELEMENT</intref> &#37;interval.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2134
+ <phrase id='elem_set.qname'/><intref ref='attr_set.qname'>&lt;!ELEMENT</intref> &#37;set.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2135
+ <phrase id='elem_list.qname'/><intref ref='attr_list.qname'>&lt;!ELEMENT</intref> &#37;list.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2136
+ <phrase id='elem_vector.qname'/><intref ref='attr_vector.qname'>&lt;!ELEMENT</intref> &#37;vector.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2137
+ <phrase id='elem_matrix.qname'/><intref ref='attr_matrix.qname'>&lt;!ELEMENT</intref> &#37;matrix.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2138
+ <phrase id='elem_matrixrow.qname'/><intref ref='attr_matrixrow.qname'>&lt;!ELEMENT</intref> &#37;matrixrow.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2139
+
2140
+ <phrase id='elem_piecewise.qname'/><intref ref='attr_piecewise.qname'>&lt;!ELEMENT</intref> &#37;piecewise.qname; ((&#37;piece.qname;)*, (&#37;otherwise.qname;)? ) >
2141
+ <phrase id='elem_piece.qname'/><intref ref='attr_piece.qname'>&lt;!ELEMENT</intref> &#37;piece.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2142
+ <phrase id='elem_otherwise.qname'/><intref ref='attr_otherwise.qname'>&lt;!ELEMENT</intref> &#37;otherwise.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2143
+
2144
+ &lt;!-- Content elements: operator (user-defined) -->
2145
+
2146
+ <phrase id='elem_fn.qname'/><intref ref='attr_fn.qname'>&lt;!ELEMENT</intref> &#37;fn.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2147
+
2148
+ &lt;!-- Content elements: quantifiers -->
2149
+
2150
+ <phrase id='elem_lowlimit.qname'/><intref ref='attr_lowlimit.qname'>&lt;!ELEMENT</intref> &#37;lowlimit.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2151
+ <phrase id='elem_uplimit.qname'/><intref ref='attr_uplimit.qname'>&lt;!ELEMENT</intref> &#37;uplimit.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2152
+ <phrase id='elem_bvar.qname'/><intref ref='attr_bvar.qname'>&lt;!ELEMENT</intref> &#37;bvar.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2153
+ <phrase id='elem_degree.qname'/><intref ref='attr_degree.qname'>&lt;!ELEMENT</intref> &#37;degree.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2154
+ <phrase id='elem_logbase.qname'/><intref ref='attr_logbase.qname'>&lt;!ELEMENT</intref> &#37;logbase.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2155
+ <phrase id='elem_momentabout.qname'/><intref ref='attr_momentabout.qname'>&lt;!ELEMENT</intref> &#37;momentabout.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2156
+ <phrase id='elem_domainofapplication.qname'/><intref ref='attr_domainofapplication.qname'>&lt;!ELEMENT</intref> &#37;domainofapplication.qname; (<intref ref='pent_ContentExpression'>%ContentExpression;</intref>) >
2157
+
2158
+ &lt;!-- ............................................................. -->
2159
+ &lt;!-- Presentation layout schemata contain tokens,
2160
+ layout and content schemata.
2161
+ -->
2162
+
2163
+
2164
+
2165
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
2166
+ &lt;!-- In strict mode enforce mfrac has exactly two children
2167
+ same for msub etc -->
2168
+ &lt;!ENTITY % onePresExpression
2169
+ "(<intref ref='pent_Presentation'>%Presentation;</intref> | <intref ref='pent_ContInPres'>%ContInPres;</intref>)" >
2170
+ &lt;!ENTITY % twoPresExpression
2171
+ "(<intref ref='pent_onePresExpression'>%onePresExpression;</intref>,<intref ref='pent_onePresExpression'>%onePresExpression;</intref>)" >
2172
+ &lt;!ENTITY % threePresExpression
2173
+ "(<intref ref='pent_onePresExpression'>%onePresExpression;</intref>,<intref ref='pent_onePresExpression'>%onePresExpression;</intref>,<intref ref='pent_onePresExpression'>%onePresExpression;</intref>)" >
2174
+ &lt;!ENTITY % mtrPresExpression
2175
+ "(&#37;mtr.qname;|&#37;mlabeledtr.qname;)*" >
2176
+ &lt;!ENTITY % mtdPresExpression
2177
+ "(&#37;mtd.qname;)*" >
2178
+ &lt;!ENTITY % prscrPresExpression " (<intref ref='pent_onePresExpression'>%onePresExpression;</intref>,
2179
+ ((<intref ref='pent_onePresExpression'>%onePresExpression;</intref>|&#37;none.qname;),(<intref ref='pent_onePresExpression'>%onePresExpression;</intref>|&#37;none.qname;))*,
2180
+ (&#37;mprescripts.qname;,
2181
+ ((<intref ref='pent_onePresExpression'>%onePresExpression;</intref>|&#37;none.qname;),(<intref ref='pent_onePresExpression'>%onePresExpression;</intref>|&#37;none.qname;))*)?
2182
+ )">
2183
+ ]]&gt;</phrase>
2184
+
2185
+
2186
+ &lt;!-- By default keep them as they were in MathML 2.0 -->
2187
+ <phrase id='pent_onePresExpression'/>&lt;!ENTITY % onePresExpression "<intref ref='pent_PresExpression'>%PresExpression;</intref>">
2188
+ <phrase id='pent_twoPresExpression'/>&lt;!ENTITY % twoPresExpression "<intref ref='pent_PresExpression'>%PresExpression;</intref>">
2189
+ <phrase id='pent_threePresExpression'/>&lt;!ENTITY % threePresExpression "<intref ref='pent_PresExpression'>%PresExpression;</intref>">
2190
+ <phrase id='pent_mtrPresExpression'/>&lt;!ENTITY % mtrPresExpression "<intref ref='pent_PresExpression'>%PresExpression;</intref>">
2191
+ <phrase id='pent_mtdPresExpression'/>&lt;!ENTITY % mtdPresExpression "<intref ref='pent_PresExpression'>%PresExpression;</intref>">
2192
+ <phrase id='pent_prscrPresExpression'/>&lt;!ENTITY % prscrPresExpression "<intref ref='pent_PresExpression'>%PresExpression;</intref>">
2193
+
2194
+ <phrase id='elem_mstyle.qname'/><intref ref='attr_mstyle.qname'>&lt;!ELEMENT</intref> &#37;mstyle.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2195
+ <phrase id='elem_merror.qname'/><intref ref='attr_merror.qname'>&lt;!ELEMENT</intref> &#37;merror.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2196
+ <phrase id='elem_mphantom.qname'/><intref ref='attr_mphantom.qname'>&lt;!ELEMENT</intref> &#37;mphantom.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2197
+ <phrase id='elem_mrow.qname'/><intref ref='attr_mrow.qname'>&lt;!ELEMENT</intref> &#37;mrow.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2198
+ <phrase id='elem_mfrac.qname'/><intref ref='attr_mfrac.qname'>&lt;!ELEMENT</intref> &#37;mfrac.qname; (<intref ref='pent_twoPresExpression'>%twoPresExpression;</intref>) >
2199
+ <phrase id='elem_msqrt.qname'/><intref ref='attr_msqrt.qname'>&lt;!ELEMENT</intref> &#37;msqrt.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2200
+ <phrase id='elem_menclose.qname'/><intref ref='attr_menclose.qname'>&lt;!ELEMENT</intref> &#37;menclose.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2201
+ <phrase id='elem_mroot.qname'/><intref ref='attr_mroot.qname'>&lt;!ELEMENT</intref> &#37;mroot.qname; (<intref ref='pent_twoPresExpression'>%twoPresExpression;</intref>) >
2202
+ <phrase id='elem_msub.qname'/><intref ref='attr_msub.qname'>&lt;!ELEMENT</intref> &#37;msub.qname; (<intref ref='pent_twoPresExpression'>%twoPresExpression;</intref>) >
2203
+ <phrase id='elem_msup.qname'/><intref ref='attr_msup.qname'>&lt;!ELEMENT</intref> &#37;msup.qname; (<intref ref='pent_twoPresExpression'>%twoPresExpression;</intref>) >
2204
+ <phrase id='elem_msubsup.qname'/><intref ref='attr_msubsup.qname'>&lt;!ELEMENT</intref> &#37;msubsup.qname; (<intref ref='pent_threePresExpression'>%threePresExpression;</intref>) >
2205
+ <phrase id='elem_mmultiscripts.qname'/><intref ref='attr_mmultiscripts.qname'>&lt;!ELEMENT</intref> &#37;mmultiscripts.qname; (<intref ref='pent_prscrPresExpression'>%prscrPresExpression;</intref>) >
2206
+ <phrase id='elem_munder.qname'/><intref ref='attr_munder.qname'>&lt;!ELEMENT</intref> &#37;munder.qname; (<intref ref='pent_twoPresExpression'>%twoPresExpression;</intref>) >
2207
+ <phrase id='elem_mover.qname'/><intref ref='attr_mover.qname'>&lt;!ELEMENT</intref> &#37;mover.qname; (<intref ref='pent_twoPresExpression'>%twoPresExpression;</intref>) >
2208
+ <phrase id='elem_munderover.qname'/><intref ref='attr_munderover.qname'>&lt;!ELEMENT</intref> &#37;munderover.qname; (<intref ref='pent_threePresExpression'>%threePresExpression;</intref>) >
2209
+ <phrase id='elem_mtable.qname'/><intref ref='attr_mtable.qname'>&lt;!ELEMENT</intref> &#37;mtable.qname; (<intref ref='pent_mtrPresExpression'>%mtrPresExpression;</intref>) >
2210
+ <phrase id='elem_mtr.qname'/><intref ref='attr_mtr.qname'>&lt;!ELEMENT</intref> &#37;mtr.qname; (<intref ref='pent_mtdPresExpression'>%mtdPresExpression;</intref>) >
2211
+ <phrase id='elem_mlabeledtr.qname'/><intref ref='attr_mlabeledtr.qname'>&lt;!ELEMENT</intref> &#37;mlabeledtr.qname; (<intref ref='pent_mtdPresExpression'>%mtdPresExpression;</intref>) >
2212
+ <phrase id='elem_mtd.qname'/><intref ref='attr_mtd.qname'>&lt;!ELEMENT</intref> &#37;mtd.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2213
+ <phrase id='elem_maction.qname'/><intref ref='attr_maction.qname'>&lt;!ELEMENT</intref> &#37;maction.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2214
+ <phrase id='elem_mfenced.qname'/><intref ref='attr_mfenced.qname'>&lt;!ELEMENT</intref> &#37;mfenced.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2215
+ <phrase id='elem_mpadded.qname'/><intref ref='attr_mpadded.qname'>&lt;!ELEMENT</intref> &#37;mpadded.qname; (<intref ref='pent_PresExpression'>%PresExpression;</intref>) >
2216
+
2217
+ &lt;!-- Presentation elements contain PCDATA or malignmark constructs. -->
2218
+
2219
+ <phrase id='elem_mi.qname'/><intref ref='attr_mi.qname'>&lt;!ELEMENT</intref> &#37;mi.qname; (<intref ref='pent_MathMLCharacters'>%MathMLCharacters;</intref> |
2220
+ &#37;malignmark.qname;)* >
2221
+ <phrase id='elem_mn.qname'/><intref ref='attr_mn.qname'>&lt;!ELEMENT</intref> &#37;mn.qname; (<intref ref='pent_MathMLCharacters'>%MathMLCharacters;</intref> |
2222
+ &#37;malignmark.qname;)* >
2223
+ <phrase id='elem_mo.qname'/><intref ref='attr_mo.qname'>&lt;!ELEMENT</intref> &#37;mo.qname; (<intref ref='pent_MathMLCharacters'>%MathMLCharacters;</intref> |
2224
+ &#37;malignmark.qname;)* >
2225
+ <phrase id='elem_mtext.qname'/><intref ref='attr_mtext.qname'>&lt;!ELEMENT</intref> &#37;mtext.qname; (<intref ref='pent_MathMLCharacters'>%MathMLCharacters;</intref> |
2226
+ &#37;malignmark.qname;)* >
2227
+ <phrase id='elem_ms.qname'/><intref ref='attr_ms.qname'>&lt;!ELEMENT</intref> &#37;ms.qname; (<intref ref='pent_MathMLCharacters'>%MathMLCharacters;</intref> |
2228
+ &#37;malignmark.qname;)* >
2229
+
2230
+ &lt;!-- Browser interface definition ............................... -->
2231
+
2232
+ &lt;!-- Attributes for top-level element "math" -->
2233
+
2234
+ <phrase id='pent_att_macros'/>&lt;!ENTITY % att-macros
2235
+ "macros CDATA #IMPLIED" >
2236
+ <phrase id='pent_att_mode'/>&lt;!ENTITY % att-mode
2237
+ "mode CDATA #IMPLIED" >
2238
+ <phrase diff='add'>&lt;![<intref ref='pent_MathMLstrict'>%MathMLstrict;</intref>[
2239
+ &lt;!ENTITY % att-display
2240
+ "display ( block | inline ) 'inline'" >
2241
+ ]]&gt;</phrase>
2242
+ <phrase id='pent_att_display'/>&lt;!ENTITY % att-display
2243
+ "display CDATA #IMPLIED" >
2244
+
2245
+ <phrase id='pent_att_schemalocation'/>&lt;!ENTITY % att-schemalocation
2246
+ <phrase diff="add"> "<intref ref='pent_mathml_qname.module'>%Schema.prefix;</intref>:schemaLocation CDATA #IMPLIED"></phrase>
2247
+
2248
+ <phrase id='pent_att_topinfo'/>&lt;!ENTITY % att-topinfo
2249
+ "<intref ref='pent_MATHML.Common.attrib'>%MATHML.Common.attrib;</intref>
2250
+ <phrase diff="add"> <intref ref='pent_att_schemalocation'>%att-schemalocation;</intref></phrase>
2251
+ <intref ref='pent_att_macros'>%att-macros;</intref>
2252
+ <intref ref='pent_att_mode'>%att-mode;</intref>
2253
+ <intref ref='pent_att_display'>%att-display;</intref>" >
2254
+
2255
+ &lt;!-- Attributes for browser interface element -->
2256
+
2257
+ <phrase id='pent_att_baseline'/>&lt;!ENTITY % att-baseline
2258
+ "baseline CDATA #IMPLIED" >
2259
+ <phrase id='pent_att_overflow'/>&lt;!ENTITY % att-overflow
2260
+ "overflow ( scroll | elide | truncate | scale ) 'scroll'" >
2261
+ <phrase id='pent_att_altimg'/>&lt;!ENTITY % att-altimg
2262
+ "altimg CDATA #IMPLIED" >
2263
+ <phrase id='pent_att_alttext'/>&lt;!ENTITY % att-alttext
2264
+ "alttext CDATA #IMPLIED" >
2265
+
2266
+ <phrase id='pent_att_browif'/>&lt;!ENTITY % att-browif
2267
+ "<intref ref='pent_att_type'>%att-type;</intref>
2268
+ <intref ref='pent_att_name'>%att-name;</intref>
2269
+ <intref ref='pent_att_height'>%att-height;</intref>
2270
+ <intref ref='pent_att_width'>%att-width;</intref>
2271
+ <intref ref='pent_att_baseline'>%att-baseline;</intref>
2272
+ <intref ref='pent_att_overflow'>%att-overflow;</intref>
2273
+ <intref ref='pent_att_altimg'>%att-altimg;</intref>
2274
+ <intref ref='pent_att_alttext'>%att-alttext;</intref>" >
2275
+
2276
+ &lt;!-- ............................................................. -->
2277
+ &lt;!-- The top-level element "math" contains MathML encoded
2278
+ mathematics. The "math" element has the browser info
2279
+ attributes iff it is also the browser interface element.
2280
+ -->
2281
+
2282
+ <phrase id='elem_math.qname'/><intref ref='attr_math.qname'>&lt;!ELEMENT</intref> &#37;math.qname; (<intref ref='pent_MathExpression'>%MathExpression;</intref>) >
2283
+
2284
+ <phrase id='attr_math.qname'/><intref ref='elem_math.qname'>&lt;!ATTLIST</intref> &#37;math.qname;
2285
+ <intref ref='pent_att_topinfo'>%att-topinfo;</intref>
2286
+ <intref ref='pent_att_browif'>%att-browif;</intref> >
2287
+
2288
+ &lt;!-- MathML Character Entities .............................................. -->
2289
+ <phrase id='pent_mathml_charent.module'/>&lt;!ENTITY % mathml-charent.module "INCLUDE" >
2290
+ <phrase>&lt;![<intref ref='pent_mathml_charent.module'>%mathml-charent.module;</intref>[
2291
+ &lt;!-- Entity sets from ISO Technical Report 9573-13 ..... -->
2292
+
2293
+ <phrase id='pent_ent_isoamsa'/>&lt;!ENTITY % ent-isoamsa
2294
+ PUBLIC "-//W3C//ENTITIES Added Math Symbols: Arrow Relations for MathML 2.0//EN"
2295
+ "iso9573-13/isoamsa.ent" >
2296
+ <intref ref='chars_entity_tables'>%ent-isoamsa;</intref>
2297
+
2298
+ <phrase id='pent_ent_isoamsb'/>&lt;!ENTITY % ent-isoamsb
2299
+ PUBLIC "-//W3C//ENTITIES Added Math Symbols: Binary Operators for MathML 2.0//EN"
2300
+ "iso9573-13/isoamsb.ent" >
2301
+ <intref ref='chars_entity_tables'>%ent-isoamsb;</intref>
2302
+
2303
+ <phrase id='pent_ent_isoamsc'/>&lt;!ENTITY % ent-isoamsc
2304
+ PUBLIC "-//W3C//ENTITIES Added Math Symbols: Delimiters for MathML 2.0//EN"
2305
+ "iso9573-13/isoamsc.ent" >
2306
+ <intref ref='chars_entity_tables'>%ent-isoamsc;</intref>
2307
+
2308
+ <phrase id='pent_ent_isoamsn'/>&lt;!ENTITY % ent-isoamsn
2309
+ PUBLIC "-//W3C//ENTITIES Added Math Symbols: Negated Relations for MathML 2.0//EN"
2310
+ "iso9573-13/isoamsn.ent" >
2311
+ <intref ref='chars_entity_tables'>%ent-isoamsn;</intref>
2312
+
2313
+ <phrase id='pent_ent_isoamso'/>&lt;!ENTITY % ent-isoamso
2314
+ PUBLIC "-//W3C//ENTITIES Added Math Symbols: Ordinary for MathML 2.0//EN"
2315
+ "iso9573-13/isoamso.ent" >
2316
+ <intref ref='chars_entity_tables'>%ent-isoamso;</intref>
2317
+
2318
+ <phrase id='pent_ent_isoamsr'/>&lt;!ENTITY % ent-isoamsr
2319
+ PUBLIC "-//W3C//ENTITIES Added Math Symbols: Relations for MathML 2.0//EN"
2320
+ "iso9573-13/isoamsr.ent" >
2321
+ <intref ref='chars_entity_tables'>%ent-isoamsr;</intref>
2322
+
2323
+ <phrase id='pent_ent_isogrk3'/>&lt;!ENTITY % ent-isogrk3
2324
+ PUBLIC "-//W3C//ENTITIES Greek Symbols for MathML 2.0//EN"
2325
+ "iso9573-13/isogrk3.ent" >
2326
+ <intref ref='chars_entity_tables'>%ent-isogrk3;</intref>
2327
+
2328
+ <phrase id='pent_ent_isomfrk'/>&lt;!ENTITY % ent-isomfrk
2329
+ PUBLIC "-//W3C//ENTITIES Math Alphabets: Fraktur for MathML 2.0//EN"
2330
+ "iso9573-13/isomfrk.ent" >
2331
+ <intref ref='chars_entity_tables'>%ent-isomfrk;</intref>
2332
+
2333
+ <phrase id='pent_ent_isomopf'/>&lt;!ENTITY % ent-isomopf
2334
+ PUBLIC "-//W3C//ENTITIES Math Alphabets: Open Face for MathML 2.0//EN"
2335
+ "iso9573-13/isomopf.ent" >
2336
+ <intref ref='chars_entity_tables'>%ent-isomopf;</intref>
2337
+
2338
+ <phrase id='pent_ent_isomscr'/>&lt;!ENTITY % ent-isomscr
2339
+ PUBLIC "-//W3C//ENTITIES Math Alphabets: Script for MathML 2.0//EN"
2340
+ "iso9573-13/isomscr.ent" >
2341
+ <intref ref='chars_entity_tables'>%ent-isomscr;</intref>
2342
+
2343
+ <phrase id='pent_ent_isotech'/>&lt;!ENTITY % ent-isotech
2344
+ PUBLIC "-//W3C//ENTITIES General Technical for MathML 2.0//EN"
2345
+ "iso9573-13/isotech.ent" >
2346
+ <intref ref='chars_entity_tables'>%ent-isotech;</intref>
2347
+
2348
+ &lt;!-- Entity sets from informative annex to ISO 8879:1986 (SGML) ....... -->
2349
+
2350
+ <phrase id='pent_ent_isobox'/>&lt;!ENTITY % ent-isobox
2351
+ PUBLIC "-//W3C//ENTITIES Box and Line Drawing for MathML 2.0//EN"
2352
+ "iso8879/isobox.ent" >
2353
+ <intref ref='chars_entity_tables'>%ent-isobox;</intref>
2354
+
2355
+ <phrase id='pent_ent_isocyr1'/>&lt;!ENTITY % ent-isocyr1
2356
+ PUBLIC "-//W3C//ENTITIES Russian Cyrillic for MathML 2.0//EN"
2357
+ "iso8879/isocyr1.ent" >
2358
+ <intref ref='chars_entity_tables'>%ent-isocyr1;</intref>
2359
+
2360
+ <phrase id='pent_ent_isocyr2'/>&lt;!ENTITY % ent-isocyr2
2361
+ PUBLIC "-//W3C//ENTITIES Non-Russian Cyrillic for MathML 2.0//EN"
2362
+ "iso8879/isocyr2.ent" >
2363
+ <intref ref='chars_entity_tables'>%ent-isocyr2;</intref>
2364
+
2365
+ <phrase id='pent_ent_isodia'/>&lt;!ENTITY % ent-isodia
2366
+ PUBLIC "-//W3C//ENTITIES Diacritical Marks for MathML 2.0//EN"
2367
+ "iso8879/isodia.ent" >
2368
+ <intref ref='chars_entity_tables'>%ent-isodia;</intref>
2369
+
2370
+ <phrase id='pent_ent_isolat1'/>&lt;!ENTITY % ent-isolat1
2371
+ PUBLIC "-//W3C//ENTITIES Added Latin 1 for MathML 2.0//EN"
2372
+ "iso8879/isolat1.ent" >
2373
+ <intref ref='chars_entity_tables'>%ent-isolat1;</intref>
2374
+
2375
+ <phrase id='pent_ent_isolat2'/>&lt;!ENTITY % ent-isolat2
2376
+ PUBLIC "-//W3C//ENTITIES Added Latin 2 for MathML 2.0//EN"
2377
+ "iso8879/isolat2.ent" >
2378
+ <intref ref='chars_entity_tables'>%ent-isolat2;</intref>
2379
+
2380
+ <phrase id='pent_ent_isonum'/>&lt;!ENTITY % ent-isonum
2381
+ PUBLIC "-//W3C//ENTITIES Numeric and Special Graphic for MathML 2.0//EN"
2382
+ "iso8879/isonum.ent" >
2383
+ <intref ref='chars_entity_tables'>%ent-isonum;</intref>
2384
+
2385
+ <phrase id='pent_ent_isopub'/>&lt;!ENTITY % ent-isopub
2386
+ PUBLIC "-//W3C//ENTITIES Publishing for MathML 2.0//EN"
2387
+ "iso8879/isopub.ent" >
2388
+ <intref ref='chars_entity_tables'>%ent-isopub;</intref>
2389
+
2390
+ &lt;!-- New characters defined by MathML ............................ -->
2391
+
2392
+ <phrase id='pent_ent_mmlextra'/>&lt;!ENTITY % ent-mmlextra
2393
+ PUBLIC "-//W3C//ENTITIES Extra for MathML 2.0//EN"
2394
+ "mathml/mmlextra.ent" >
2395
+ <intref ref='chars_entity_tables'>%ent-mmlextra;</intref>
2396
+
2397
+ &lt;!-- MathML aliases for characters defined above ................. -->
2398
+
2399
+ <phrase id='pent_ent_mmlalias'/>&lt;!ENTITY % ent-mmlalias
2400
+ PUBLIC "-//W3C//ENTITIES Aliases for MathML 2.0//EN"
2401
+ "mathml/mmlalias.ent" >
2402
+ <intref ref='chars_entity_tables'>%ent-mmlalias;</intref>
2403
+
2404
+ &lt;!-- end of MathML Character Entity section -->]]&gt;</phrase>
2405
+
2406
+ &lt;!-- Revision History:
2407
+
2408
+ Initial draft (syntax = XML) 1997-05-09
2409
+ Stephen Buswell
2410
+ Revised 1997-05-14
2411
+ Robert Miner
2412
+ Revised 1997-06-29 and 1997-07-02
2413
+ Stephen Buswell
2414
+ Revised 1997-12-15
2415
+ Stephen Buswell
2416
+ Revised 1998-02-08
2417
+ Stephen Buswell
2418
+ Revised 1998-04-04
2419
+ Stephen Buswell
2420
+ Entities and small revisions 1999-02-21
2421
+ David Carlisle
2422
+ Added attribute definitionURL to ci and cn 1999-10-11
2423
+ Nico Poppelier
2424
+ Additions for MathML 2 1999-12-16
2425
+ David Carlisle
2426
+ Namespace support 2000-01-14
2427
+ David Carlisle
2428
+ XHTML Compatibility 2000-02-23
2429
+ Murray Altheim
2430
+ New content elements 2000-03-26
2431
+ David Carlisle
2432
+ Further revisions for MathML2 CR draft 2000-07-11
2433
+ David Carlisle
2434
+ <phrase diff="add"> Further revisions for MathML2 CR draft 2000-10-31</phrase>
2435
+ <phrase diff="add"> David Carlisle</phrase>
2436
+ <phrase diff="add"> Revisions for Unicode 3.2 2002-05-21</phrase>
2437
+ <phrase diff="add"> David Carlisle</phrase>
2438
+ <phrase diff="add"> Add width and side attributes to mtable (to align with the specification) 2002-06-05</phrase>
2439
+ <phrase diff="add"> David Carlisle</phrase>
2440
+ <phrase diff="add"> Use %XLINK.prefix rather than hardwired xlink:, add xlink:type 2002-06-12</phrase>
2441
+ <phrase diff="add"> David Carlisle</phrase>
2442
+ <phrase diff="add"> Add missing numalign and denomalign attributes for mfrac 2002-07-05</phrase>
2443
+ <phrase diff="add"> David Carlisle</phrase>
2444
+ <phrase diff="add"> Add MathMLstrict entity and related extra constraints 2002-12-05</phrase>
2445
+ <phrase diff="add"> David Carlisle</phrase>
2446
+ <phrase diff="add"> Add support for xi:schemaLocation 2003-04-05</phrase>
2447
+ <phrase diff="add"> David Carlisle</phrase>
2448
+ <phrase diff="add"> Removed actiontype from mstyle (to match spec) 2003-04-07</phrase>
2449
+ <phrase diff="add"> David Carlisle</phrase>
2450
+ <phrase diff="add"> Additional constraints for MathMLstrict code (From Simon</phrase>
2451
+ <phrase diff="add"> Pepping on www-math list) 2003-05-22</phrase>
2452
+ <phrase diff="add"> David Carlisle</phrase>
2453
+ <phrase diff="add"> Add missing minlabelspacing attribute (From Simon</phrase>
2454
+ <phrase diff="add"> Pepping on www-math list) 2003-05-22</phrase>
2455
+ <phrase diff="add"> David Carlisle</phrase>
2456
+ <phrase diff="add"> Add missing height and depth attributes to mstyle (From Simon</phrase>
2457
+ <phrase diff="add"> Pepping on www-math list) 2003-06-30</phrase>
2458
+ <phrase diff="add"> David Carlisle</phrase>
2459
+ <phrase diff="add"> Removed restricted menclose notation checking from MathMLstrict 2003-09-08</phrase>
2460
+ <phrase diff="add"> David Carlisle</phrase>
2461
+
2462
+ -->
2463
+
2464
+ &lt;!-- end of MathML 2.0 DTD ................................................ -->
2465
+ &lt;!-- ....................................................................... -->
2466
+ </eg>
2467
+
2468
+ </div3>
2469
+ </div2>
2470
+
2471
+ <div2 diff="add" id="parsing_usingxsd">
2472
+ <head>Using the MathML XML Schema</head>
2473
+
2474
+ <p>MathML fragments can be validated using the XML Schema for MathML,
2475
+ located at <loc
2476
+ href="http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd">http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd</loc>. The
2477
+ provided schema allows checking a MathML fragment in a stricter way
2478
+ than by performing DTD validation, in particular constrained attribute
2479
+ values such as <intref
2480
+ ref="presm_mfrac"><att>linethickness</att></intref> are enforced by
2481
+ the schema. Additionally, XML Schemas have the advantage over DTDs of
2482
+ supporting the XML namespaces mechanism. Thus a MathML fragment can
2483
+ declare any namespace prefix (and possibly more than one), without the
2484
+ requirement that the author indicate it using a parameter entity, as
2485
+ described above.</p>
2486
+
2487
+ <p>In its current version the schema does not declare deprecated
2488
+ markup such as the <el>fn</el> element, so documents using such
2489
+ deprecated features will be declared invalid.</p>
2490
+
2491
+ <div3 id="parsing_schemalocation">
2492
+ <head>Associating the MathML schema with MathML fragments</head>
2493
+
2494
+ <p>Similarly to the DOCTYPE declaration used in documents, it is possible to link a MathML fragment to the XML Schema, as shown below.</p>
2495
+
2496
+ <eg role="mathml-fragment"><![CDATA[<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"
2497
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2498
+ xsi:schemaLocation="http://www.w3.org/1998/Math/MathML
2499
+ http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd">
2500
+ ...
2501
+ </mml:math>]]></eg>
2502
+
2503
+ <p>The <att>xsi:schemaLocation</att> attribute belongs to the XML Schema
2504
+ instance namespace, defined in <bibref ref="XMLSchemas"/>. The value
2505
+ of the attribute is a pair of URIs: the first is the MathML namespace
2506
+ URI and the second is the location of the schema for that
2507
+ namespace. The second URI may be changed to that of a local copy if
2508
+ required.</p>
2509
+
2510
+ <p>As the XML Schema specification indicates, the use of the
2511
+ <att>schemaLocation</att> attribute is only a hint for schema
2512
+ processors: validation by a MathML-aware processor can be performed
2513
+ without requiring that the <att>schemaLocation</att> attribute be
2514
+ declared in the instance. Moreover, a processor can even ignore or
2515
+ override the specified schema URI, if it is directed to.</p>
2516
+
2517
+ <p>Note that the file <code>mathml.xsd</code> at the URI given above
2518
+ is only the main body of the schema, and is one of many files that
2519
+ constitute the MathML XML Schema. However the complete set of files is
2520
+ available as a <loc
2521
+ href="http://www.w3.org/Math/XMLSchema/mathml2.tgz">gzipped tar archive</loc>
2522
+ for local use.</p>
2523
+
2524
+ </div3>
2525
+
2526
+
2527
+ <div3 id="parsing-charents"><head>Character entity references</head>
2528
+
2529
+ <p>Although validating a MathML fragment with the XML Schema provided
2530
+ performs more checks regarding the structure of the fragment than the
2531
+ DTD, DTD processing is still necessary if the MathML markup contains
2532
+ entity references for characters and symbols, as XML Schema does not
2533
+ provide a mechanism for expanding named entities. Therefore the
2534
+ MathML DOCTYPE declaration must still be present if one wishes to use
2535
+ entities for mathematical symbols, such as
2536
+ <code>&amp;DifferentialD;</code>. An example of a MathML document
2537
+ linking to both the MathML DTD and the XML Schema is shown below.</p>
2538
+
2539
+ <eg role="mathml-fragment"><![CDATA[<!DOCTYPE mml:math
2540
+ PUBLIC "-//W3C//DTD MathML 2.0//EN"
2541
+ "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd" [
2542
+ <!ENTITY % MATHML.prefixed "INCLUDE">
2543
+ <!ENTITY % MATHML.prefix "mml">
2544
+ ]>
2545
+
2546
+ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"
2547
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2548
+ xsi:schemaLocation="http://www.w3.org/1998/Math/MathML
2549
+ http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd">
2550
+ ...
2551
+ <mml:mo> &DifferentialD; </mml:mo>
2552
+ ...
2553
+ </mml:math>]]></eg>
2554
+
2555
+ <p>The use of character references to represent characters and
2556
+ symbols, such as <code>&amp;#x2146;</code> (which is equivalent
2557
+ <code>to &amp;DifferentialD;</code>) does not necessitate the use of a
2558
+ DOCTYPE declaration.</p>
2559
+
2560
+ </div3>
2561
+
2562
+ </div2>
2563
+
2564
+ </div1>
2565
+