# Content elements: relations

# 
# RELAX NG Schema on MathML 2.0
# 
# See COPYING for the status of this software.
# Yutaka Furubayashi (Poka-Poka Dream Factory) <info@yupotan.sppd.ne.jp>
# Modified by Henri Sivonen <hsivonen@iki.fi>
#

mml.cgenrel2ary = mml.neq.qname | mml.factorof.qname
mml.neq.qname = element neq { empty, mml.operators.common.attrib }
mml.factorof.qname =
    element factorof { empty, mml.operators.common.attrib }
mml.cgenrelnary =
    mml.eq.qname
    | mml.leq.qname
    | mml.lt.qname
    | mml.geq.qname
    | mml.gt.qname
    | mml.equivalent.qname
    | mml.approx.qname
mml.eq.qname = element eq { empty, mml.operators.common.attrib }
mml.equivalent.qname =
    element equivalent { empty, mml.operators.common.attrib }
mml.approx.qname = element approx { empty, mml.operators.common.attrib }
mml.gt.qname = element gt { empty, mml.operators.common.attrib }
mml.lt.qname = element lt { empty, mml.operators.common.attrib }
mml.geq.qname = element geq { empty, mml.operators.common.attrib }
mml.leq.qname = element leq { empty, mml.operators.common.attrib }
mml.csetrel2ary =
    mml.in.qname
    | mml.notin.qname
    | mml.notsubset.qname
    | mml.notprsubset.qname
mml.in.qname = element in { empty, mml.operators.common.attrib }
mml.notin.qname = element notin { empty, mml.operators.common.attrib }
mml.notsubset.qname =
    element notsubset { empty, mml.operators.common.attrib }
mml.notprsubset.qname =
    element notprsubset { empty, mml.operators.common.attrib }
mml.csetrelnary = mml.subset.qname | mml.prsubset.qname
mml.subset.qname = element subset { empty, mml.operators.common.attrib }
mml.prsubset.qname =
    element prsubset { empty, mml.operators.common.attrib }
mml.cseqrel2ary = mml.tendsto.qname
mml.tendsto.qname =
    element tendsto { empty, mml.operators.common.attrib, mml.att-type }
# Relation groups
mml.crel2ary = mml.cgenrel2ary | mml.csetrel2ary | mml.cseqrel2ary
mml.crelnary = mml.cgenrelnary | mml.csetrelnary
