summaryrefslogtreecommitdiff
path: root/schema/mathml2/content/constructs.xsd
diff options
context:
space:
mode:
Diffstat (limited to 'schema/mathml2/content/constructs.xsd')
-rw-r--r--schema/mathml2/content/constructs.xsd260
1 files changed, 260 insertions, 0 deletions
diff --git a/schema/mathml2/content/constructs.xsd b/schema/mathml2/content/constructs.xsd
new file mode 100644
index 000000000000..4cfc21af8a3d
--- /dev/null
+++ b/schema/mathml2/content/constructs.xsd
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the basic constructs of content MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- "apply" -->
+
+<xs:attributeGroup name="apply.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="apply.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="apply.type">
+ <xs:group ref="apply.content" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="apply.attlist"/>
+</xs:complexType>
+
+<xs:element name="apply" type="apply.type"/>
+
+<!-- "interval" -->
+
+<xs:attributeGroup name="interval.attlist">
+ <xs:attribute name="closure" default="closed">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="closed"/>
+ <xs:enumeration value="open"/>
+ <xs:enumeration value="open-closed"/>
+ <xs:enumeration value="closed-open"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<!--
+<xs:group name="interval.content">
+ <xs:choice>
+ <xs:group ref="Content-expr.class" minOccurs="2" maxOccurs="2"/>
+ <xs:element ref="condition"/>
+ </xs:choice>
+</xs:group>
+-->
+
+<xs:complexType name="interval.type">
+<!-- <xs:group ref="interval.content"/> -->
+ <xs:group ref="Content-expr.class" maxOccurs="2"/>
+ <xs:attributeGroup ref="interval.attlist"/>
+</xs:complexType>
+
+<xs:element name="interval" type="interval.type"/>
+
+<!-- "inverse" -->
+
+<xs:attributeGroup name="inverse.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="inverse.type">
+ <xs:attributeGroup ref="inverse.attlist"/>
+</xs:complexType>
+
+<xs:element name="inverse" type="inverse.type"/>
+
+<!-- "condition" -->
+
+<xs:attributeGroup name="condition.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="condition.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="condition.type">
+ <xs:group ref="condition.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="condition.attlist"/>
+</xs:complexType>
+
+<xs:element name="condition" type="condition.type"/>
+
+<!-- "declare" -->
+
+<xs:attributeGroup name="declare.attlist">
+ <xs:attribute name="type" type="xs:string"/>
+ <xs:attribute name="scope" type="xs:string"/>
+ <xs:attribute name="nargs" type="xs:nonNegativeInteger"/>
+ <xs:attribute name="occurrence">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="prefix"/>
+ <xs:enumeration value="infix"/>
+ <xs:enumeration value="function-model"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="Definition.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="declare.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="declare.type">
+ <xs:group ref="declare.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="declare.attlist"/>
+</xs:complexType>
+
+<xs:element name="declare" type="declare.type"/>
+
+<!-- "lambda" -->
+
+<xs:attributeGroup name="lambda.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="lambda.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="lambda.type">
+ <xs:group ref="lambda.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="lambda.attlist"/>
+</xs:complexType>
+
+<xs:element name="lambda" type="lambda.type"/>
+
+<!-- "piecewise" and its inner elements -->
+
+<xs:group name="otherwise.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="otherwise.type">
+ <xs:group ref="otherwise.content"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<xs:element name="otherwise" type="otherwise.type"/>
+
+<xs:group name="piece.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="piece.type">
+ <xs:group ref="piece.content" minOccurs="1" maxOccurs="unbounded"/>
+</xs:complexType>
+
+<xs:element name="piece" type="piece.type"/>
+
+<xs:attributeGroup name="piecewise.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="piecewise.content">
+ <xs:sequence>
+ <xs:element ref="piece" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:sequence minOccurs="0">
+ <xs:element ref="otherwise"/>
+ <xs:element ref="piece" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="piecewise.type">
+ <xs:group ref="piecewise.content"/>
+ <xs:attributeGroup ref="piecewise.attlist"/>
+</xs:complexType>
+
+<xs:element name="piecewise" type="piecewise.type"/>
+
+<!-- "bvar" -->
+
+<xs:attributeGroup name="bvar.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="bvar.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="bvar.type">
+ <xs:group ref="bvar.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="bvar.attlist"/>
+</xs:complexType>
+
+<xs:element name="bvar" type="bvar.type"/>
+
+<!-- "degree" -->
+
+<xs:attributeGroup name="degree.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="degree.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="degree.type">
+ <xs:group ref="degree.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="degree.attlist"/>
+</xs:complexType>
+
+<xs:element name="degree" type="degree.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-constructs.class">
+ <xs:choice>
+ <xs:element ref="apply"/>
+ <xs:element ref="interval"/>
+ <xs:element ref="inverse"/>
+ <xs:element ref="condition"/>
+ <xs:element ref="declare"/>
+ <xs:element ref="lambda"/>
+ <xs:element ref="piecewise"/>
+ <xs:element ref="bvar"/>
+ <xs:element ref="degree"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->