From OWL
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ox="http://www.w3.org/ns/owl2-xml"
targetNamespace="http://www.w3.org/ns/owl2-xml"
elementFormDefault="qualified" attributeFormDefault="qualified">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<!-- The ontology -->
<xsd:element name="Import">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:anyURI">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Ontology">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ox:Import" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:Axiom" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="ontologyURI" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="versionURI" type="xsd:anyURI" use="optional"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Entities, anonymous individuals, and literals -->
<xsd:group name="Entity">
<xsd:choice>
<xsd:element ref="ox:Class"/>
<xsd:element ref="ox:Datatype"/>
<xsd:element ref="ox:ObjectProperty"/>
<xsd:element ref="ox:DataProperty"/>
<xsd:element ref="ox:AnnotationProperty"/>
<xsd:element ref="ox:NamedIndividual"/>
</xsd:choice>
</xsd:group>
<xsd:element name="Class">
<xsd:complexType>
<xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Datatype">
<xsd:complexType>
<xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectProperty">
<xsd:complexType>
<xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataProperty">
<xsd:complexType>
<xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="AnnotationProperty">
<xsd:complexType>
<xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:group name="Individual">
<xsd:choice>
<xsd:element ref="ox:NamedIndividual"/>
<xsd:element ref="ox:AnonymousIndividual"/>
</xsd:choice>
</xsd:group>
<xsd:element name="NamedIndividual">
<xsd:complexType>
<xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="AnonymousIndividual">
<xsd:complexType>
<xsd:attribute name="nodeID" type="xsd:NCName" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Literal">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="datatypeURI" type="xsd:anyURI"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<!-- Declarations -->
<xsd:element name="Declaration">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:Entity"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Object property expressions -->
<xsd:group name="ObjectPropertyExpression">
<xsd:choice>
<xsd:element ref="ox:ObjectProperty"/>
<xsd:element ref="ox:InverseObjectProperty"/>
</xsd:choice>
</xsd:group>
<xsd:element name="InverseObjectProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ox:ObjectProperty"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Data property expressions -->
<xsd:group name="DataPropertyExpression">
<xsd:sequence>
<xsd:element ref="ox:DataProperty"/>
</xsd:sequence>
</xsd:group>
<!-- Data ranges -->
<xsd:group name="DataRange">
<xsd:choice>
<xsd:element ref="ox:Datatype"/>
<xsd:element ref="ox:DataComplementOf"/>
<xsd:element ref="ox:DataOneOf"/>
<xsd:element ref="ox:DatatypeRestriction"/>
</xsd:choice>
</xsd:group>
<xsd:element name="DataComplementOf">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:DataRange"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataOneOf">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ox:Literal" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DatatypeRestriction">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ox:Datatype"/>
<xsd:element name="FacetRestriction" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ox:Literal"/>
</xsd:sequence>
<xsd:attribute name="facet" type="xsd:anyURI" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Class expressions -->
<xsd:group name="ClassExpression">
<xsd:choice>
<xsd:element ref="ox:Class"/>
<xsd:element ref="ox:ObjectIntersectionOf"/>
<xsd:element ref="ox:ObjectUnionOf"/>
<xsd:element ref="ox:ObjectComplementOf"/>
<xsd:element ref="ox:ObjectOneOf"/>
<xsd:element ref="ox:ObjectSomeValuesFrom"/>
<xsd:element ref="ox:ObjectAllValuesFrom"/>
<xsd:element ref="ox:ObjectHasValue"/>
<xsd:element ref="ox:ObjectExistsSelf"/>
<xsd:element ref="ox:ObjectMinCardinality"/>
<xsd:element ref="ox:ObjectMaxCardinality"/>
<xsd:element ref="ox:ObjectExactCardinality"/>
<xsd:element ref="ox:DataSomeValuesFrom"/>
<xsd:element ref="ox:DataAllValuesFrom"/>
<xsd:element ref="ox:DataHasValue"/>
<xsd:element ref="ox:DataMinCardinality"/>
<xsd:element ref="ox:DataMaxCardinality"/>
<xsd:element ref="ox:DataExactCardinality"/>
</xsd:choice>
</xsd:group>
<xsd:element name="ObjectIntersectionOf">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectUnionOf">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectComplementOf">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ClassExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectOneOf">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Individual" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectSomeValuesFrom">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:ClassExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectAllValuesFrom">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:ClassExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectHasValue">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:Individual"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectExistsSelf">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectMinCardinality">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:ClassExpression" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectMaxCardinality">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:ClassExpression" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectExactCardinality">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:ClassExpression" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataSomeValuesFrom">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataRange"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataAllValuesFrom">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataRange"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataHasValue">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:DataPropertyExpression"/>
<xsd:element ref="ox:Literal"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataMinCardinality">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:DataPropertyExpression"/>
<xsd:group ref="ox:DataRange" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataMaxCardinality">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:DataPropertyExpression"/>
<xsd:group ref="ox:DataRange" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataExactCardinality">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:DataPropertyExpression"/>
<xsd:group ref="ox:DataRange" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Axioms -->
<xsd:group name="Axiom">
<xsd:choice>
<xsd:element ref="ox:Declaration"/>
<xsd:group ref="ox:ClassAxiom"/>
<xsd:group ref="ox:ObjectPropertyAxiom"/>
<xsd:group ref="ox:DataPropertyAxiom"/>
<xsd:element ref="ox:HasKey"/>
<xsd:group ref="ox:Assertion"/>
<xsd:element ref="ox:EntityAnnotation"/>
<xsd:element ref="ox:AnonymousIndividualAnnotation"/>
</xsd:choice>
</xsd:group>
<!-- Class expression axioms -->
<xsd:group name="ClassAxiom">
<xsd:choice>
<xsd:element ref="ox:SubClassOf"/>
<xsd:element ref="ox:EquivalentClasses"/>
<xsd:element ref="ox:DisjointClasses"/>
<xsd:element ref="ox:DisjointUnion"/>
</xsd:choice>
</xsd:group>
<xsd:element name="SubClassOf">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ClassExpression"/> <!-- This is the subexpression -->
<xsd:group ref="ox:ClassExpression"/> <!-- This is the superexpression -->
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="EquivalentClasses">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisjointClasses">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisjointUnion">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="ox:Class"/>
<xsd:group ref="ox:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Object property axioms -->
<xsd:group name="ObjectPropertyAxiom">
<xsd:choice>
<xsd:element ref="ox:SubObjectPropertyOf"/>
<xsd:element ref="ox:EquivalentObjectProperties"/>
<xsd:element ref="ox:DisjointObjectProperties"/>
<xsd:element ref="ox:InverseObjectProperties"/>
<xsd:element ref="ox:ObjectPropertyDomain"/>
<xsd:element ref="ox:ObjectPropertyRange"/>
<xsd:element ref="ox:FunctionalObjectProperty"/>
<xsd:element ref="ox:InverseFunctionalObjectProperty"/>
<xsd:element ref="ox:ReflexiveObjectProperty"/>
<xsd:element ref="ox:IrreflexiveObjectProperty"/>
<xsd:element ref="ox:SymmetricObjectProperty"/>
<xsd:element ref="ox:AsymmetricObjectProperty"/>
<xsd:element ref="ox:TransitiveObjectProperty"/>
</xsd:choice>
</xsd:group>
<xsd:element name="SubObjectPropertyOf">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice> <!-- This is the subproperty expression or the property chain -->
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:element name="PropertyChain">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:group ref="ox:ObjectPropertyExpression"/> <!-- This is the superproperty expression -->
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="EquivalentObjectProperties">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisjointObjectProperties">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectPropertyDomain">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:ClassExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectPropertyRange">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:ClassExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="InverseObjectProperties">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression" minOccurs="2" maxOccurs="2"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="FunctionalObjectProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="InverseFunctionalObjectProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ReflexiveObjectProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="IrreflexiveObjectProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="SymmetricObjectProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="AsymmetricObjectProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="TransitiveObjectProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Data property axioms -->
<xsd:group name="DataPropertyAxiom">
<xsd:choice>
<xsd:element ref="ox:SubDataPropertyOf"/>
<xsd:element ref="ox:EquivalentDataProperties"/>
<xsd:element ref="ox:DisjointDataProperties"/>
<xsd:element ref="ox:DataPropertyDomain"/>
<xsd:element ref="ox:DataPropertyRange"/>
<xsd:element ref="ox:FunctionalDataProperty"/>
</xsd:choice>
</xsd:group>
<xsd:element name="SubDataPropertyOf">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataPropertyExpression"/> <!-- This is the subproperty expression -->
<xsd:group ref="ox:DataPropertyExpression"/> <!-- This is the superproperty expression -->
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="EquivalentDataProperties">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisjointDataProperties">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataPropertyDomain">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataPropertyExpression"/>
<xsd:group ref="ox:ClassExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataPropertyRange">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataPropertyExpression"/>
<xsd:group ref="ox:DataRange"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="FunctionalDataProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataPropertyExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Key axioms -->
<xsd:element name="HasKey">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ClassExpression"/>
<xsd:choice minOccurs="1" maxOccurs="unbounded">
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:DataPropertyExpression"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Assertions -->
<xsd:group name="Assertion">
<xsd:choice>
<xsd:element ref="ox:SameIndividual"/>
<xsd:element ref="ox:DifferentIndividuals"/>
<xsd:element ref="ox:ClassAssertion"/>
<xsd:element ref="ox:ObjectPropertyAssertion"/>
<xsd:element ref="ox:NegativeObjectPropertyAssertion"/>
<xsd:element ref="ox:DataPropertyAssertion"/>
<xsd:element ref="ox:NegativeDataPropertyAssertion"/>
</xsd:choice>
</xsd:group>
<xsd:element name="SameIndividual">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:Individual" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DifferentIndividuals">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:Individual" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ClassAssertion">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ClassExpression"/>
<xsd:group ref="ox:Individual"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectPropertyAssertion">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:Individual"/> <!-- This is the source invididual -->
<xsd:group ref="ox:Individual"/> <!-- This is the target individual -->
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="NegativeObjectPropertyAssertion">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:ObjectPropertyExpression"/>
<xsd:group ref="ox:Individual"/> <!-- This is the source invididual -->
<xsd:group ref="ox:Individual"/> <!-- This is the target individual -->
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataPropertyAssertion">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataPropertyExpression"/>
<xsd:group ref="ox:Individual"/> <!-- This is the source invididual -->
<xsd:element ref="ox:Literal"/> <!-- This is the target value -->
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="NegativeDataPropertyAssertion">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="ox:DataPropertyExpression"/>
<xsd:group ref="ox:Individual"/> <!-- This is the source invididual -->
<xsd:element ref="ox:Literal"/> <!-- This is the target value -->
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<!-- Annotations -->
<xsd:element name="Annotation">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="ox:AnnotationProperty"/>
<xsd:choice>
<xsd:group ref="ox:Entity"/>
<xsd:element ref="ox:AnonymousIndividual"/>
<xsd:element ref="ox:Literal"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Label">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="ox:Literal"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Comment">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="ox:Literal"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Deprecation">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:group name="Annotation">
<xsd:choice>
<xsd:element ref="ox:Annotation"/>
<xsd:element ref="ox:Label"/>
<xsd:element ref="ox:Comment"/>
<xsd:element ref="ox:Deprecation"/>
</xsd:choice>
</xsd:group>
<!-- Annotation axioms -->
<xsd:element name="EntityAnnotation">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/> <!-- This is the annotation for the axiom -->
<xsd:group ref="ox:Entity"/>
<xsd:group ref="ox:Annotation" minOccurs="1" maxOccurs="unbounded"/> <!-- This is the annotation for the entity -->
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="AnonymousIndividualAnnotation">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="ox:Annotation" minOccurs="0" maxOccurs="unbounded"/> <!-- This is the annotation for the axiom -->
<xsd:element ref="ox:AnonymousIndividual"/>
<xsd:group ref="ox:Annotation" minOccurs="1" maxOccurs="unbounded"/> <!-- This is the annotation for the anonymous individual -->
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>