diff options
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.rng | 386 |
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> |