summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/stex/schema/rng/mathml3-strict.rng
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/stex/schema/rng/mathml3-strict.rng')
-rw-r--r--Master/texmf-dist/source/latex/stex/schema/rng/mathml3-strict.rng267
1 files changed, 267 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/stex/schema/rng/mathml3-strict.rng b/Master/texmf-dist/source/latex/stex/schema/rng/mathml3-strict.rng
new file mode 100644
index 00000000000..be5a334c8fe
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/schema/rng/mathml3-strict.rng
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ This is the Mathematical Markup Language (MathML) 3.0, an XML
+ application for describing mathematical notation and capturing
+ both its structure and content.
+
+ Copyright 1998-2008 W3C (MIT, ERCIM, Keio)
+
+ Use and distribution of this code are permitted under the terms
+ W3C Software Notice and License
+ http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+
+ Revision: $Id: mathml3-strict.rnc 8515 2009-08-17 13:51:36Z kohlhase $
+
+ Update to MathML3 and Relax NG: David Carlisle and Michael Kohlhase
+
+ This is the RelaxNG schema module for the strict content part of MathML.
+-->
+<grammar ns="http://www.w3.org/1998/Math/MathML" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <include href="mathml3-common.rng"/>
+ <define name="math.content" combine="choice">
+ <ref name="ContExp"/>
+ </define>
+ <!-- ednote(rnc:opel-content) What is the content of a operator element, currently all text? -->
+ <define name="opel.content">
+ <text/>
+ </define>
+ <!--
+ we want to extend this in pragmatic CMathML, so we introduce abbrevs here.
+ ednote(rnc:cn-content) What is the content of a cn?
+ -->
+ <define name="cn.content">
+ <choice>
+ <text/>
+ <group>
+ <ref name="cn"/>
+ <ref name="cn"/>
+ </group>
+ </choice>
+ </define>
+ <define name="cn.type.vals">
+ <choice>
+ <value>integer</value>
+ <value>real</value>
+ <value>double</value>
+ </choice>
+ </define>
+ <define name="cn">
+ <element name="cn">
+ <optional>
+ <attribute name="base"/>
+ </optional>
+ <optional>
+ <attribute name="type">
+ <ref name="cn.type.vals"/>
+ </attribute>
+ </optional>
+ <ref name="Definition.attrib"/>
+ <ref name="MathML.Common.attrib"/>
+ <zeroOrMore>
+ <ref name="cn.content"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="ci">
+ <element name="ci">
+ <optional>
+ <attribute name="type">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="nargs">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="occurrence">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <ref name="Definition.attrib"/>
+ <ref name="MathML.Common.attrib"/>
+ <ref name="opel.content"/>
+ <optional>
+ <ref name="name.attrib"/>
+ </optional>
+ </element>
+ </define>
+ <define name="cdname.attrib">
+ <attribute name="cd">
+ <data type="NCName"/>
+ </attribute>
+ </define>
+ <define name="csymbol">
+ <element name="csymbol">
+ <ref name="MathML.Common.attrib"/>
+ <ref name="Definition.attrib"/>
+ <optional>
+ <ref name="cdname.attrib"/>
+ </optional>
+ <optional>
+ <ref name="cdbase.attrib"/>
+ </optional>
+ <ref name="opel.content"/>
+ </element>
+ </define>
+ <!-- the content of the apply element, leave it empty and extend it later -->
+ <define name="apply">
+ <element name="apply">
+ <ref name="MathML.Common.attrib"/>
+ <optional>
+ <ref name="cdbase.attrib"/>
+ </optional>
+ <ref name="apply.content"/>
+ </element>
+ </define>
+ <define name="apply-head">
+ <choice>
+ <ref name="apply"/>
+ <ref name="bind"/>
+ <ref name="ci"/>
+ <ref name="csymbol"/>
+ <ref name="semantics-apply"/>
+ </choice>
+ </define>
+ <define name="apply.content">
+ <ref name="apply-head"/>
+ <zeroOrMore>
+ <ref name="ContExp"/>
+ </zeroOrMore>
+ </define>
+ <define name="semantics-apply">
+ <element name="semantics">
+ <ref name="semantics.attribs"/>
+ <ref name="apply-head"/>
+ <zeroOrMore>
+ <ref name="semantics-annotation"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="qualifier">
+ <notAllowed/>
+ </define>
+ <!-- the content of the bind element, leave it empty and extend it later -->
+ <define name="bind">
+ <element name="bind">
+ <ref name="MathML.Common.attrib"/>
+ <optional>
+ <ref name="cdbase.attrib"/>
+ </optional>
+ <ref name="bind.content"/>
+ </element>
+ </define>
+ <define name="bind-head">
+ <choice>
+ <ref name="apply"/>
+ <ref name="csymbol"/>
+ <ref name="semantics-bind"/>
+ </choice>
+ </define>
+ <define name="bind.content">
+ <ref name="bind-head"/>
+ <zeroOrMore>
+ <ref name="bvar"/>
+ </zeroOrMore>
+ <optional>
+ <ref name="qualifier"/>
+ </optional>
+ <ref name="ContExp"/>
+ </define>
+ <define name="semantics-bind">
+ <element name="semantics">
+ <ref name="semantics.attribs"/>
+ <ref name="bind-head"/>
+ <zeroOrMore>
+ <ref name="semantics-annotation"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="bvar">
+ <element name="bvar">
+ <ref name="MathML.Common.attrib"/>
+ <optional>
+ <ref name="cdbase.attrib"/>
+ </optional>
+ <ref name="bvar-head"/>
+ </element>
+ </define>
+ <define name="bvar-head">
+ <choice>
+ <ref name="ci"/>
+ <ref name="semantics-bvar"/>
+ </choice>
+ </define>
+ <define name="semantics-bvar">
+ <element name="semantics">
+ <ref name="semantics.attribs"/>
+ <ref name="bvar-head"/>
+ <zeroOrMore>
+ <ref name="semantics-annotation"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="share">
+ <element name="share">
+ <ref name="MathML.Common.attrib"/>
+ <attribute name="href">
+ <data type="anyURI"/>
+ </attribute>
+ </element>
+ </define>
+ <!-- the content of the cerror element, leave it empty and extend it later -->
+ <define name="cerror">
+ <element name="cerror">
+ <ref name="MathML.Common.attrib"/>
+ <optional>
+ <ref name="cdbase.attrib"/>
+ </optional>
+ <ref name="cerror.content"/>
+ </element>
+ </define>
+ <define name="cerror-head">
+ <choice>
+ <ref name="csymbol"/>
+ <ref name="apply"/>
+ <ref name="semantics-cerror"/>
+ </choice>
+ </define>
+ <define name="cerror.content">
+ <ref name="cerror-head"/>
+ <zeroOrMore>
+ <ref name="ContExp"/>
+ </zeroOrMore>
+ </define>
+ <define name="semantics-cerror">
+ <element name="semantics">
+ <ref name="semantics.attribs"/>
+ <ref name="cerror-head"/>
+ <zeroOrMore>
+ <ref name="semantics-annotation"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="semantics-cmml">
+ <element name="semantics">
+ <ref name="semantics.attribs"/>
+ <ref name="ContExp"/>
+ <zeroOrMore>
+ <ref name="semantics-annotation"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="ContExp">
+ <choice>
+ <ref name="cn"/>
+ <ref name="ci"/>
+ <ref name="csymbol"/>
+ <ref name="apply"/>
+ <ref name="bind"/>
+ <ref name="share"/>
+ <ref name="cerror"/>
+ <ref name="semantics-cmml"/>
+ </choice>
+ </define>
+</grammar>