<grammar xmlns="http://relaxng.org/ns/structure/1.0"> <define name="cd.token.unary.class" combine="choice"> <choice> <ref name="determinant.token"/> <ref name="transpose.token"/> </choice> </define> <define name="cd.token.binary.class" combine="choice"> <choice> <ref name="selector.token"/> <ref name="vectorproduct.token"/> <ref name="outerproduct.token"/> </choice> </define> <define name="cd.token.nary.class" combine="choice"> <choice> <ref name="vector.token"/> <ref name="matrix.token"/> <ref name="matrixrow.token"/> <ref name="scalarproduct.token"/> </choice> </define> <define name="vector.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> <zeroOrMore> <ref name="ContExp"/> </zeroOrMore> </define> <define name="vector.token"> <element name="vector"> <ref name="vector.content"/> </element> </define> <define name="matrix.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> <zeroOrMore> <ref name="ContExp"/> </zeroOrMore> </define> <define name="matrix.token"> <element name="matrix"> <ref name="matrix.content"/> </element> </define> <define name="matrixrow.content"> <ref name="Token.type"/> <zeroOrMore> <ref name="ContExp"/> </zeroOrMore> </define> <define name="matrixrow.token"> <element name="matrixrow"> <ref name="matrixrow.content"/> </element> </define> <define name="determinant.content"> <ref name="Token.type"/> </define> <define name="determinant.token"> <element name="determinant"> <ref name="determinant.content"/> </element> </define> <define name="transpose.content"> <ref name="Token.type"/> </define> <define name="transpose.token"> <element name="transpose"> <ref name="transpose.content"/> </element> </define> <define name="selector.content"> <ref name="Token.type"/> </define> <define name="selector.token"> <element name="selector"> <ref name="selector.content"/> </element> </define> <define name="vectorproduct.content"> <ref name="Token.type"/> </define> <define name="vectorproduct.token"> <element name="vectorproduct"> <ref name="vectorproduct.content"/> </element> </define> <define name="scalarproduct.content"> <ref name="Token.type"/> </define> <define name="scalarproduct.token"> <element name="scalarproduct"> <ref name="scalarproduct.content"/> </element> </define> <define name="outerproduct.content"> <ref name="Token.type"/> </define> <define name="outerproduct.token"> <element name="outerproduct"> <ref name="outerproduct.content"/> </element> </define> </grammar>