summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/stex/schema/rng/omdocpres.rng
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/stex/schema/rng/omdocpres.rng')
-rw-r--r--Master/texmf-dist/source/latex/stex/schema/rng/omdocpres.rng386
1 files changed, 386 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/stex/schema/rng/omdocpres.rng b/Master/texmf-dist/source/latex/stex/schema/rng/omdocpres.rng
new file mode 100644
index 00000000000..3f37f8cbedd
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/schema/rng/omdocpres.rng
@@ -0,0 +1,386 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ A RelaxNG for Open Mathematical documents (OMDoc 1.3) Module PRES
+ $Id: omdocpres.rnc 8973 2011-09-09 12:45:16Z kohlhase $
+ $HeadURL: https://svn.omdoc.org/repos/omdoc/branches/omdoc-1.3/schema/rnc/omdocpres.rnc $
+ See the documentation and examples at http://www.omdoc.org
+ Copyright (c) 2004-2008 Michael Kohlhase, released under the GNU Public License (GPL)
+-->
+<grammar ns="http://omdoc.org/ns" xmlns:omdoc="http://omdoc.org/ns" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <define name="omdoc.class" combine="interleave">
+ <zeroOrMore>
+ <ref name="notation"/>
+ </zeroOrMore>
+ </define>
+ <define name="ic.attrib">
+ <a:documentation>we first add the ic and ec attributes for notation contexts everywhere </a:documentation>
+ <attribute name="ic"/>
+ </define>
+ <define name="ec.attrib">
+ <attribute name="ec"/>
+ </define>
+ <define name="idrest.attribs" combine="interleave">
+ <interleave>
+ <optional>
+ <ref name="ic.attrib"/>
+ </optional>
+ <optional>
+ <ref name="ec.attrib"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="prototype.attribs">
+ <empty/>
+ </define>
+ <define name="prototype.model">
+ <ref name="protoexp"/>
+ </define>
+ <define name="prototype">
+ <element name="prototype">
+ <choice>
+ <ref name="tref"/>
+ <interleave>
+ <ref name="prototype.attribs"/>
+ <ref name="prototype.model"/>
+ </interleave>
+ </choice>
+ </element>
+ </define>
+ <define name="protoexp">
+ <choice>
+ <grammar>
+ <include href="openmath2.rng">
+ <start>
+ <ref name="omel"/>
+ </start>
+ <define name="common.attributes">
+ <parentRef name="id.attribs"/>
+ </define>
+ </include>
+ <define name="omel" combine="choice">
+ <parentRef name="proto.class"/>
+ </define>
+ <define name="omvar" combine="choice">
+ <parentRef name="proto.class"/>
+ </define>
+ <define name="common.attributes" combine="interleave">
+ <parentRef name="ntn.attrib"/>
+ </define>
+ </grammar>
+ <grammar>
+ <include href="mathml3.rng">
+ <start>
+ <ref name="ContExp"/>
+ </start>
+ </include>
+ <define name="ContExp" combine="choice">
+ <parentRef name="proto.class"/>
+ </define>
+ <define name="ci" combine="choice">
+ <parentRef name="proto.class"/>
+ </define>
+ <define name="CommonAtt" combine="interleave">
+ <parentRef name="ntn.attrib"/>
+ </define>
+ </grammar>
+ </choice>
+ </define>
+ <define name="precedence.att">
+ <choice>
+ <attribute name="precedence">
+ <data type="integer"/>
+ </attribute>
+ <attribute name="argprec">
+ <data type="integer"/>
+ </attribute>
+ </choice>
+ </define>
+ <define name="context.att">
+ <interleave>
+ <optional>
+ <attribute name="xml:lang"/>
+ </optional>
+ <optional>
+ <attribute name="context"/>
+ </optional>
+ <optional>
+ <attribute name="variant"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="format.att">
+ <optional>
+ <attribute name="format"/>
+ </optional>
+ </define>
+ <define name="rendering.attribs">
+ <interleave>
+ <optional>
+ <ref name="precedence.att"/>
+ </optional>
+ <ref name="context.att"/>
+ <ref name="format.att"/>
+ </interleave>
+ </define>
+ <define name="rendering.model">
+ <ref name="renderexp"/>
+ </define>
+ <define name="rendering">
+ <element name="rendering">
+ <choice>
+ <ref name="tref"/>
+ <interleave>
+ <ref name="rendering.attribs"/>
+ <ref name="rendering.model"/>
+ </interleave>
+ </choice>
+ </element>
+ </define>
+ <define name="renderexp">
+ <choice>
+ <grammar>
+ <include href="mathml3-common.rng">
+ <start>
+ <ref name="PresentationExpression"/>
+ </start>
+ </include>
+ <include href="mathml3-presentation.rng"/>
+ <define name="PresentationExpression" combine="choice">
+ <parentRef name="render.class"/>
+ </define>
+ <define name="CommonAtt" combine="interleave">
+ <parentRef name="ntn.attrib"/>
+ </define>
+ <define name="mtable.content.class" combine="choice">
+ <parentRef name="render.class"/>
+ </define>
+ <define name="mtr.content.class" combine="choice">
+ <parentRef name="render.class"/>
+ </define>
+ </grammar>
+ <zeroOrMore>
+ <choice>
+ <ref name="pdata"/>
+ <ref name="render.class"/>
+ </choice>
+ </zeroOrMore>
+ </choice>
+ </define>
+ <define name="pdata.attribs">
+ <empty/>
+ </define>
+ <define name="pdata.model">
+ <text/>
+ </define>
+ <define name="pdata">
+ <element name="pdata">
+ <interleave>
+ <ref name="pdata.attribs"/>
+ <ref name="pdata.model"/>
+ </interleave>
+ </element>
+ </define>
+ <define name="iterexp">
+ <grammar>
+ <include href="mathml3.rng">
+ <start>
+ <choice>
+ <ref name="PresentationExpression"/>
+ <ref name="mtr"/>
+ <ref name="mlabeledtr"/>
+ <ref name="mtd"/>
+ </choice>
+ </start>
+ </include>
+ <define name="PresentationExpression" combine="choice">
+ <parentRef name="render.class"/>
+ </define>
+ <define name="MathML.Common.attrib" combine="interleave">
+ <parentRef name="ntn.attrib"/>
+ </define>
+ <define name="mtable.content.class" combine="choice">
+ <parentRef name="render.class"/>
+ </define>
+ <define name="mtr.content.class" combine="choice">
+ <parentRef name="render.class"/>
+ </define>
+ </grammar>
+ </define>
+ <define name="name.attrib">
+ <optional>
+ <attribute name="name">
+ <data type="NCName"/>
+ </attribute>
+ </optional>
+ </define>
+ <define name="triple.att">
+ <interleave>
+ <optional>
+ <attribute name="cdbase">
+ <data type="anyURI"/>
+ </attribute>
+ </optional>
+ <ref name="name.attrib"/>
+ <optional>
+ <attribute name="cd">
+ <data type="NCName"/>
+ </attribute>
+ </optional>
+ </interleave>
+ </define>
+ <define name="notation.attribs">
+ <interleave>
+ <ref name="id.attribs"/>
+ <ref name="triple.att"/>
+ </interleave>
+ </define>
+ <define name="notation.model">
+ <interleave>
+ <ref name="metadata.class"/>
+ <zeroOrMore>
+ <ref name="CMP"/>
+ </zeroOrMore>
+ <oneOrMore>
+ <ref name="prototype"/>
+ </oneOrMore>
+ <zeroOrMore>
+ <ref name="rendering"/>
+ </zeroOrMore>
+ </interleave>
+ </define>
+ <define name="notation">
+ <element name="notation">
+ <choice>
+ <ref name="tref"/>
+ <interleave>
+ <ref name="notation.attribs"/>
+ <ref name="notation.model"/>
+ </interleave>
+ </choice>
+ </element>
+ </define>
+ <!-- we extend the content and presentation models by metavariables -->
+ <define name="proto.class">
+ <choice>
+ <ref name="exprlist"/>
+ <ref name="expr"/>
+ </choice>
+ </define>
+ <define name="render.class">
+ <choice>
+ <ref name="render"/>
+ <ref name="iterate"/>
+ </choice>
+ </define>
+ <define name="ntn.attrib">
+ <interleave>
+ <optional>
+ <attribute name="cr"/>
+ </optional>
+ <optional>
+ <attribute name="egroup"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="exprlist.attribs">
+ <ref name="name.attrib"/>
+ </define>
+ <define name="exprlist.model">
+ <zeroOrMore>
+ <ref name="protoexp"/>
+ </zeroOrMore>
+ </define>
+ <define name="exprlist">
+ <element name="exprlist">
+ <interleave>
+ <ref name="exprlist.attribs"/>
+ <ref name="exprlist.model"/>
+ </interleave>
+ </element>
+ </define>
+ <define name="expr.attribs">
+ <ref name="name.attrib"/>
+ </define>
+ <define name="expr.model">
+ <empty/>
+ </define>
+ <define name="expr">
+ <element name="expr">
+ <choice>
+ <ref name="tref"/>
+ <interleave>
+ <ref name="expr.attribs"/>
+ <ref name="expr.model"/>
+ </interleave>
+ </choice>
+ </element>
+ </define>
+ <define name="iterate.attribs">
+ <interleave>
+ <ref name="name.attrib"/>
+ <optional>
+ <ref name="precedence.att"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="iterate.model">
+ <interleave>
+ <ref name="separator"/>
+ <zeroOrMore>
+ <ref name="iterexp"/>
+ </zeroOrMore>
+ </interleave>
+ </define>
+ <define name="iterate">
+ <element name="iterate">
+ <choice>
+ <ref name="tref"/>
+ <interleave>
+ <ref name="iterate.attribs"/>
+ <ref name="iterate.model"/>
+ </interleave>
+ </choice>
+ </element>
+ </define>
+ <define name="render.attribs">
+ <interleave>
+ <ref name="name.attrib"/>
+ <optional>
+ <ref name="precedence.att"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="render.model">
+ <empty/>
+ </define>
+ <define name="render">
+ <element name="render">
+ <choice>
+ <ref name="tref"/>
+ <interleave>
+ <ref name="render.attribs"/>
+ <ref name="render.model"/>
+ </interleave>
+ </choice>
+ </element>
+ </define>
+ <define name="separator.attribs">
+ <empty/>
+ </define>
+ <define name="separator.model">
+ <zeroOrMore>
+ <ref name="renderexp"/>
+ </zeroOrMore>
+ </define>
+ <define name="separator">
+ <element name="separator">
+ <choice>
+ <ref name="tref"/>
+ <interleave>
+ <ref name="separator.attribs"/>
+ <ref name="separator.model"/>
+ </interleave>
+ </choice>
+ </element>
+ </define>
+</grammar>