Files
loongoffice/schema/mathml2/content/constructs.xsd
Michael Stahl a09ed7100e schema: add MathML2 XSD
These are needed to invoke the ODF validator with custom ODF schemas.

Change-Id: I231b5d8a8573e9ac6171a331362a31aceae08d80
Reviewed-on: https://gerrit.libreoffice.org/56399
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-06-26 12:20:31 +02:00

261 lines
6.7 KiB
XML

<?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/.
-->