From OWL
<!DOCTYPE xsd:schema [
<!ENTITY PN_CHARS_BASE "[A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-]">
<!ENTITY PN_CHARS_U "&PN_CHARS_BASE;|_">
<!ENTITY PN_CHARS "&PN_CHARS_U;|\-|[0-9]|·|[̀-ͯ]|[‿-⁀]">
<!ENTITY PN_PREFIX "(&PN_CHARS_BASE;)((&PN_CHARS;|\.)*(&PN_CHARS; ))?">
<!ENTITY PN_LOCAL "(&PN_CHARS_U;|[0-9])((&PN_CHARS;|\.)*(&PN_CHARS;))?">
<!ENTITY PNAME_NS "(&PN_PREFIX;)?:">
<!ENTITY PNAME_LN "(&PNAME_NS;)(&PN_LOCAL;)">
<!ENTITY PrefixedName "(&PNAME_LN;)|(&PNAME_NS;)">
]>
<!-- From: http://www.w3.org/TR/rdf-sparql-query/#grammar
The entities implement productions [95] (PN_CHARS_BASE), [96] (PN_CHARS_U), [98] (PN_CHARS), [99] (PN_PREFIX),
[100] (PN_LOCAL), [71] (PNAME_NS), [72] (PNAME_LN) and [68] (PrefixedName)
PN_PREFIX is roughly equivalent to NCName.-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:owl="http://www.w3.org/2002/07/owl#"
targetNamespace="http://www.w3.org/2002/07/owl#" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<!-- The ontology -->
<xsd:complexType name="Prefix">
<xsd:attribute name="name" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="&PN_PREFIX;|"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="IRI" type="xsd:anyURI" use="required"/>
</xsd:complexType>
<xsd:element name="Prefix" type="owl:Prefix"/>
<xsd:complexType name="Import">
<xsd:simpleContent>
<xsd:extension base="xsd:anyURI">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="Import" type="owl:Import"/>
<xsd:complexType name="Ontology">
<xsd:sequence>
<xsd:element ref="owl:Prefix" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="owl:Import" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="owl:ontologyAnnotations"/>
<xsd:group ref="owl:Axiom" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="ontologyIRI" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="versionIRI" type="xsd:anyURI" use="optional"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:element name="Ontology" type="owl:Ontology">
<xsd:unique name="prefix">
<xsd:selector xpath="owl:Prefix"/>
<xsd:field xpath="@name"/>
</xsd:unique>
</xsd:element>
<!-- Entities, anonymous individuals, and literals -->
<!-- Note that the "Entity" group does not have a corresponding abstract type.
This is due to the fact that XML Schema does not support multiple inheritence.
"owl:Class" is both an entity and a class expression. The authors of this schema
determined it was more useful to be able to retrieve "owl:Class" in such queries
as schema(*, owl:ClassExpression).
-->
<xsd:group name="Entity">
<xsd:choice>
<xsd:element ref="owl:Class"/>
<xsd:element ref="owl:Datatype"/>
<xsd:element ref="owl:ObjectProperty"/>
<xsd:element ref="owl:DataProperty"/>
<xsd:element ref="owl:AnnotationProperty"/>
<xsd:element ref="owl:NamedIndividual"/>
</xsd:choice>
</xsd:group>
<!-- This is the type for the attribute. The complex type for the element is capitalized. -->
<xsd:simpleType name="abbreviatedIRI">
<xsd:restriction base="xsd:string">
<xsd:pattern value="&PrefixedName;"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Class">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="Class" type="owl:Class"/>
<xsd:complexType name="Datatype">
<xsd:complexContent>
<xsd:extension base="owl:DataRange">
<xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="Datatype" type="owl:Datatype"/>
<xsd:complexType name="ObjectProperty">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyExpression">
<xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectProperty" type="owl:ObjectProperty"/>
<xsd:complexType name="DataProperty">
<xsd:complexContent>
<xsd:extension base="owl:DataPropertyExpression">
<xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataProperty" type="owl:DataProperty"/>
<xsd:complexType name="AnnotationProperty">
<xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:element name="AnnotationProperty" type="owl:AnnotationProperty"/>
<xsd:complexType name="Individual" abstract="true">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:group name="Individual">
<xsd:choice>
<xsd:element ref="owl:NamedIndividual"/>
<xsd:element ref="owl:AnonymousIndividual"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="NamedIndividual">
<xsd:complexContent>
<xsd:extension base="owl:Individual">
<xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="NamedIndividual" type="owl:NamedIndividual"/>
<xsd:complexType name="AnonymousIndividual">
<xsd:complexContent>
<xsd:extension base="owl:Individual">
<xsd:attribute name="nodeID" type="xsd:NCName" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="AnonymousIndividual" type="owl:AnonymousIndividual"/>
<xsd:complexType name="Literal">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="datatypeIRI" type="xsd:anyURI"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="Literal" type="owl:Literal"/>
<!-- Declarations -->
<xsd:complexType name="Declaration">
<xsd:complexContent>
<xsd:extension base="owl:Axiom">
<xsd:sequence>
<xsd:group ref="owl:Entity"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="Declaration" type="owl:Declaration"/>
<!-- Object property expressions -->
<xsd:complexType name="ObjectPropertyExpression" abstract="true">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:group name="ObjectPropertyExpression">
<xsd:choice>
<xsd:element ref="owl:ObjectProperty"/>
<xsd:element ref="owl:ObjectInverseOf"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="ObjectInverseOf">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyExpression">
<xsd:sequence>
<xsd:element ref="owl:ObjectProperty"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectInverseOf" type="owl:ObjectInverseOf"/>
<!-- Data property expressions -->
<xsd:complexType name="DataPropertyExpression" abstract="true">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:group name="DataPropertyExpression">
<xsd:sequence>
<xsd:element ref="owl:DataProperty"/>
</xsd:sequence>
</xsd:group>
<!-- Data ranges -->
<xsd:complexType name="DataRange" abstract="true">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:group name="DataRange">
<xsd:choice>
<xsd:element ref="owl:Datatype"/>
<xsd:element ref="owl:DataIntersectionOf"/>
<xsd:element ref="owl:DataUnionOf"/>
<xsd:element ref="owl:DataComplementOf"/>
<xsd:element ref="owl:DataOneOf"/>
<xsd:element ref="owl:DatatypeRestriction"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="DataIntersectionOf">
<xsd:complexContent>
<xsd:extension base="owl:DataRange">
<xsd:sequence>
<xsd:group ref="owl:DataRange" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataIntersectionOf" type="owl:DataIntersectionOf"/>
<xsd:complexType name="DataUnionOf">
<xsd:complexContent>
<xsd:extension base="owl:DataRange">
<xsd:sequence>
<xsd:group ref="owl:DataRange" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataUnionOf" type="owl:DataUnionOf"/>
<xsd:complexType name="DataComplementOf">
<xsd:complexContent>
<xsd:extension base="owl:DataRange">
<xsd:sequence>
<xsd:group ref="owl:DataRange"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataComplementOf" type="owl:DataComplementOf"/>
<xsd:complexType name="DataOneOf">
<xsd:complexContent>
<xsd:extension base="owl:DataRange">
<xsd:sequence>
<xsd:element ref="owl:Literal" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataOneOf" type="owl:DataOneOf"/>
<xsd:complexType name="DatatypeRestriction">
<xsd:complexContent>
<xsd:extension base="owl:DataRange">
<xsd:sequence>
<xsd:element ref="owl:Datatype"/>
<xsd:element name="FacetRestriction" type="owl:FacetRestriction" minOccurs="1"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DatatypeRestriction" type="owl:DatatypeRestriction"/>
<xsd:complexType name="FacetRestriction">
<xsd:sequence>
<xsd:element ref="owl:Literal"/>
</xsd:sequence>
<xsd:attribute name="facet" type="xsd:anyURI" use="required"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<!-- Class expressions -->
<xsd:complexType name="ClassExpression" abstract="true">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:group name="ClassExpression">
<xsd:choice>
<xsd:element ref="owl:Class"/>
<xsd:element ref="owl:ObjectIntersectionOf"/>
<xsd:element ref="owl:ObjectUnionOf"/>
<xsd:element ref="owl:ObjectComplementOf"/>
<xsd:element ref="owl:ObjectOneOf"/>
<xsd:element ref="owl:ObjectSomeValuesFrom"/>
<xsd:element ref="owl:ObjectAllValuesFrom"/>
<xsd:element ref="owl:ObjectHasValue"/>
<xsd:element ref="owl:ObjectHasSelf"/>
<xsd:element ref="owl:ObjectMinCardinality"/>
<xsd:element ref="owl:ObjectMaxCardinality"/>
<xsd:element ref="owl:ObjectExactCardinality"/>
<xsd:element ref="owl:DataSomeValuesFrom"/>
<xsd:element ref="owl:DataAllValuesFrom"/>
<xsd:element ref="owl:DataHasValue"/>
<xsd:element ref="owl:DataMinCardinality"/>
<xsd:element ref="owl:DataMaxCardinality"/>
<xsd:element ref="owl:DataExactCardinality"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="ObjectIntersectionOf">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectIntersectionOf" type="owl:ObjectIntersectionOf"/>
<xsd:complexType name="ObjectUnionOf">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectUnionOf" type="owl:ObjectUnionOf"/>
<xsd:complexType name="ObjectComplementOf">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ClassExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectComplementOf" type="owl:ObjectComplementOf"/>
<xsd:complexType name="ObjectOneOf">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:Individual" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectOneOf" type="owl:ObjectOneOf"/>
<xsd:complexType name="ObjectSomeValuesFrom">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:ClassExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectSomeValuesFrom" type="owl:ObjectSomeValuesFrom"/>
<xsd:complexType name="ObjectAllValuesFrom">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:ClassExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectAllValuesFrom" type="owl:ObjectAllValuesFrom"/>
<xsd:complexType name="ObjectHasValue">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:Individual"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectHasValue" type="owl:ObjectHasValue"/>
<xsd:complexType name="ObjectHasSelf">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectHasSelf" type="owl:ObjectHasSelf"/>
<xsd:complexType name="ObjectMinCardinality">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectMinCardinality" type="owl:ObjectMinCardinality"/>
<xsd:complexType name="ObjectMaxCardinality">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectMaxCardinality" type="owl:ObjectMaxCardinality"/>
<xsd:complexType name="ObjectExactCardinality">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectExactCardinality" type="owl:ObjectExactCardinality"/>
<xsd:complexType name="DataSomeValuesFrom">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/>
<xsd:group ref="owl:DataRange"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataSomeValuesFrom" type="owl:DataSomeValuesFrom"/>
<xsd:complexType name="DataAllValuesFrom">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/>
<xsd:group ref="owl:DataRange"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataAllValuesFrom" type="owl:DataAllValuesFrom"/>
<xsd:complexType name="DataHasValue">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
<xsd:element ref="owl:Literal"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataHasValue" type="owl:DataHasValue"/>
<xsd:complexType name="DataMinCardinality">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
<xsd:group ref="owl:DataRange" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataMinCardinality" type="owl:DataMinCardinality"/>
<xsd:complexType name="DataMaxCardinality">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
<xsd:group ref="owl:DataRange" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataMaxCardinality" type="owl:DataMaxCardinality"/>
<xsd:complexType name="DataExactCardinality">
<xsd:complexContent>
<xsd:extension base="owl:ClassExpression">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
<xsd:group ref="owl:DataRange" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataExactCardinality" type="owl:DataExactCardinality"/>
<!-- Axioms -->
<xsd:complexType name="Axiom" abstract="true">
<xsd:sequence>
<xsd:group ref="owl:axiomAnnotations"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:group name="Axiom">
<xsd:choice>
<xsd:element ref="owl:Declaration"/>
<xsd:group ref="owl:ClassAxiom"/>
<xsd:group ref="owl:ObjectPropertyAxiom"/>
<xsd:group ref="owl:DataPropertyAxiom"/>
<xsd:element ref="owl:DatatypeDefinition"/>
<xsd:element ref="owl:HasKey"/>
<xsd:group ref="owl:Assertion"/>
<xsd:group ref="owl:AnnotationAxiom"/>
</xsd:choice>
</xsd:group>
<!-- Class expression axioms -->
<xsd:complexType name="ClassAxiom" abstract="true">
<xsd:complexContent>
<xsd:extension base="owl:Axiom"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="ClassAxiom">
<xsd:choice>
<xsd:element ref="owl:SubClassOf"/>
<xsd:element ref="owl:EquivalentClasses"/>
<xsd:element ref="owl:DisjointClasses"/>
<xsd:element ref="owl:DisjointUnion"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="SubClassOf">
<xsd:complexContent>
<xsd:extension base="owl:ClassAxiom">
<xsd:sequence>
<xsd:group ref="owl:ClassExpression"/>
<!-- This is the subexpression -->
<xsd:group ref="owl:ClassExpression"/>
<!-- This is the superexpression -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="SubClassOf" type="owl:SubClassOf"/>
<xsd:complexType name="EquivalentClasses">
<xsd:complexContent>
<xsd:extension base="owl:ClassAxiom">
<xsd:sequence>
<xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="EquivalentClasses" type="owl:EquivalentClasses"/>
<xsd:complexType name="DisjointClasses">
<xsd:complexContent>
<xsd:extension base="owl:ClassAxiom">
<xsd:sequence>
<xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DisjointClasses" type="owl:DisjointClasses"/>
<xsd:complexType name="DisjointUnion">
<xsd:complexContent>
<xsd:extension base="owl:ClassAxiom">
<xsd:sequence>
<xsd:element ref="owl:Class"/>
<xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DisjointUnion" type="owl:DisjointUnion"/>
<!-- Object property axioms -->
<xsd:complexType name="ObjectPropertyAxiom" abstract="true">
<xsd:complexContent>
<xsd:extension base="owl:Axiom"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="ObjectPropertyAxiom">
<xsd:choice>
<xsd:element ref="owl:SubObjectPropertyOf"/>
<xsd:element ref="owl:EquivalentObjectProperties"/>
<xsd:element ref="owl:DisjointObjectProperties"/>
<xsd:element ref="owl:InverseObjectProperties"/>
<xsd:element ref="owl:ObjectPropertyDomain"/>
<xsd:element ref="owl:ObjectPropertyRange"/>
<xsd:element ref="owl:FunctionalObjectProperty"/>
<xsd:element ref="owl:InverseFunctionalObjectProperty"/>
<xsd:element ref="owl:ReflexiveObjectProperty"/>
<xsd:element ref="owl:IrreflexiveObjectProperty"/>
<xsd:element ref="owl:SymmetricObjectProperty"/>
<xsd:element ref="owl:AsymmetricObjectProperty"/>
<xsd:element ref="owl:TransitiveObjectProperty"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="SubObjectPropertyOf">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:choice>
<!-- This is the subproperty expression or the property chain -->
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:element name="ObjectPropertyChain" type="owl:ObjectPropertyChain"/>
</xsd:choice>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<!-- This is the superproperty expression -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="SubObjectPropertyOf" type="owl:SubObjectPropertyOf"/>
<xsd:complexType name="ObjectPropertyChain">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="EquivalentObjectProperties">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="EquivalentObjectProperties" type="owl:EquivalentObjectProperties"/>
<xsd:complexType name="DisjointObjectProperties">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DisjointObjectProperties" type="owl:DisjointObjectProperties"/>
<xsd:complexType name="ObjectPropertyDomain">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:ClassExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectPropertyDomain" type="owl:ObjectPropertyDomain"/>
<xsd:complexType name="ObjectPropertyRange">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:ClassExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectPropertyRange" type="owl:ObjectPropertyRange"/>
<xsd:complexType name="InverseObjectProperties">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="2"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="InverseObjectProperties" type="owl:InverseObjectProperties"/>
<xsd:complexType name="FunctionalObjectProperty">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="FunctionalObjectProperty" type="owl:FunctionalObjectProperty"/>
<xsd:complexType name="InverseFunctionalObjectProperty">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="InverseFunctionalObjectProperty" type="owl:InverseFunctionalObjectProperty"/>
<xsd:complexType name="ReflexiveObjectProperty">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ReflexiveObjectProperty" type="owl:ReflexiveObjectProperty"/>
<xsd:complexType name="IrreflexiveObjectProperty">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="IrreflexiveObjectProperty" type="owl:IrreflexiveObjectProperty"/>
<xsd:complexType name="SymmetricObjectProperty">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="SymmetricObjectProperty" type="owl:SymmetricObjectProperty"/>
<xsd:complexType name="AsymmetricObjectProperty">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="AsymmetricObjectProperty" type="owl:AsymmetricObjectProperty"/>
<xsd:complexType name="TransitiveObjectProperty">
<xsd:complexContent>
<xsd:extension base="owl:ObjectPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="TransitiveObjectProperty" type="owl:TransitiveObjectProperty"/>
<!-- Data property axioms -->
<xsd:complexType name="DataPropertyAxiom" abstract="true">
<xsd:complexContent>
<xsd:extension base="owl:Axiom"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="DataPropertyAxiom">
<xsd:choice>
<xsd:element ref="owl:SubDataPropertyOf"/>
<xsd:element ref="owl:EquivalentDataProperties"/>
<xsd:element ref="owl:DisjointDataProperties"/>
<xsd:element ref="owl:DataPropertyDomain"/>
<xsd:element ref="owl:DataPropertyRange"/>
<xsd:element ref="owl:FunctionalDataProperty"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="SubDataPropertyOf">
<xsd:complexContent>
<xsd:extension base="owl:DataPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
<!-- This is the subproperty expression -->
<xsd:group ref="owl:DataPropertyExpression"/>
<!-- This is the superproperty expression -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="SubDataPropertyOf" type="owl:SubDataPropertyOf"/>
<xsd:complexType name="EquivalentDataProperties">
<xsd:complexContent>
<xsd:extension base="owl:DataPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="EquivalentDataProperties" type="owl:EquivalentDataProperties"/>
<xsd:complexType name="DisjointDataProperties">
<xsd:complexContent>
<xsd:extension base="owl:DataPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DisjointDataProperties" type="owl:DisjointDataProperties"/>
<xsd:complexType name="DataPropertyDomain">
<xsd:complexContent>
<xsd:extension base="owl:DataPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
<xsd:group ref="owl:ClassExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataPropertyDomain" type="owl:DataPropertyDomain"/>
<xsd:complexType name="DataPropertyRange">
<xsd:complexContent>
<xsd:extension base="owl:DataPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
<xsd:group ref="owl:DataRange"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataPropertyRange" type="owl:DataPropertyRange"/>
<xsd:complexType name="FunctionalDataProperty">
<xsd:complexContent>
<xsd:extension base="owl:DataPropertyAxiom">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="FunctionalDataProperty" type="owl:FunctionalDataProperty"/>
<!-- Datatype definitions -->
<xsd:complexType name="DatatypeDefinition">
<xsd:complexContent>
<xsd:extension base="owl:Axiom">
<xsd:sequence>
<xsd:element ref="owl:Datatype"/>
<xsd:group ref="owl:DataRange"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DatatypeDefinition" type="owl:DatatypeDefinition"/>
<!-- Key axioms -->
<xsd:complexType name="HasKey">
<xsd:complexContent>
<xsd:extension base="owl:Axiom">
<xsd:sequence>
<xsd:group ref="owl:ClassExpression"/>
<xsd:group ref="owl:ObjectPropertyExpression" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="owl:DataPropertyExpression" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="HasKey" type="owl:HasKey"/>
<!-- Assertions -->
<xsd:complexType name="Assertion" abstract="true">
<xsd:complexContent>
<xsd:extension base="owl:Axiom"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="Assertion">
<xsd:choice>
<xsd:element ref="owl:SameIndividual"/>
<xsd:element ref="owl:DifferentIndividuals"/>
<xsd:element ref="owl:ClassAssertion"/>
<xsd:element ref="owl:ObjectPropertyAssertion"/>
<xsd:element ref="owl:NegativeObjectPropertyAssertion"/>
<xsd:element ref="owl:DataPropertyAssertion"/>
<xsd:element ref="owl:NegativeDataPropertyAssertion"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="SameIndividual">
<xsd:complexContent>
<xsd:extension base="owl:Assertion">
<xsd:sequence>
<xsd:group ref="owl:Individual" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="SameIndividual" type="owl:SameIndividual"/>
<xsd:complexType name="DifferentIndividuals">
<xsd:complexContent>
<xsd:extension base="owl:Assertion">
<xsd:sequence>
<xsd:group ref="owl:Individual" minOccurs="2" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DifferentIndividuals" type="owl:DifferentIndividuals"/>
<xsd:complexType name="ClassAssertion">
<xsd:complexContent>
<xsd:extension base="owl:Assertion">
<xsd:sequence>
<xsd:group ref="owl:ClassExpression"/>
<xsd:group ref="owl:Individual"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ClassAssertion" type="owl:ClassAssertion"/>
<xsd:complexType name="ObjectPropertyAssertion">
<xsd:complexContent>
<xsd:extension base="owl:Assertion">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:Individual"/>
<!-- This is the source invididual -->
<xsd:group ref="owl:Individual"/>
<!-- This is the target individual -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="ObjectPropertyAssertion" type="owl:ObjectPropertyAssertion"/>
<xsd:complexType name="NegativeObjectPropertyAssertion">
<xsd:complexContent>
<xsd:extension base="owl:Assertion">
<xsd:sequence>
<xsd:group ref="owl:ObjectPropertyExpression"/>
<xsd:group ref="owl:Individual"/>
<!-- This is the source invididual -->
<xsd:group ref="owl:Individual"/>
<!-- This is the target individual -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="NegativeObjectPropertyAssertion" type="owl:NegativeObjectPropertyAssertion"/>
<xsd:complexType name="DataPropertyAssertion">
<xsd:complexContent>
<xsd:extension base="owl:Assertion">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
<xsd:group ref="owl:Individual"/>
<!-- This is the source invididual -->
<xsd:element ref="owl:Literal"/>
<!-- This is the target individual -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DataPropertyAssertion" type="owl:DataPropertyAssertion"/>
<xsd:complexType name="NegativeDataPropertyAssertion">
<xsd:complexContent>
<xsd:extension base="owl:Assertion">
<xsd:sequence>
<xsd:group ref="owl:DataPropertyExpression"/>
<xsd:group ref="owl:Individual"/>
<!-- This is the source invididual -->
<xsd:element ref="owl:Literal"/>
<!-- This is the target individual -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="NegativeDataPropertyAssertion" type="owl:NegativeDataPropertyAssertion"/>
<!-- Annotations -->
<xsd:complexType name="IRI">
<xsd:simpleContent>
<xsd:extension base="xsd:anyURI">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="IRI" type="owl:IRI"/>
<xsd:complexType name="AbbreviatedIRI">
<xsd:simpleContent>
<xsd:extension base="owl:abbreviatedIRI">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="AbbreviatedIRI" type="owl:AbbreviatedIRI"/>
<xsd:group name="AnnotationSubject">
<xsd:choice>
<xsd:element ref="owl:IRI"/>
<xsd:element ref="owl:AbbreviatedIRI"/>
<xsd:element ref="owl:AnonymousIndividual"/>
</xsd:choice>
</xsd:group>
<xsd:group name="AnnotationValue">
<xsd:choice>
<xsd:element ref="owl:IRI"/>
<xsd:element ref="owl:AbbreviatedIRI"/>
<xsd:element ref="owl:AnonymousIndividual"/>
<xsd:element ref="owl:Literal"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="Annotation">
<xsd:sequence>
<xsd:group ref="owl:annotationAnnotations"/>
<xsd:element ref="owl:AnnotationProperty"/>
<xsd:group ref="owl:AnnotationValue"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:element name="Annotation" type="owl:Annotation"/>
<xsd:group name="axiomAnnotations">
<xsd:sequence>
<xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<xsd:group name="ontologyAnnotations">
<xsd:sequence>
<xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<xsd:group name="annotationAnnotations">
<xsd:sequence>
<xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- Annotation axioms -->
<xsd:complexType name="AnnotationAxiom" abstract="true">
<xsd:complexContent>
<xsd:extension base="owl:Axiom"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="AnnotationAxiom">
<xsd:choice>
<xsd:element ref="owl:AnnotationAssertion"/>
<xsd:element ref="owl:SubAnnotationPropertyOf"/>
<xsd:element ref="owl:AnnotationPropertyDomain"/>
<xsd:element ref="owl:AnnotationPropertyRange"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="AnnotationAssertion">
<xsd:complexContent>
<xsd:extension base="owl:AnnotationAxiom">
<xsd:sequence>
<xsd:element ref="owl:AnnotationProperty"/>
<xsd:group ref="owl:AnnotationSubject"/>
<xsd:group ref="owl:AnnotationValue"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="AnnotationAssertion" type="owl:AnnotationAssertion"/>
<xsd:complexType name="SubAnnotationPropertyOf">
<xsd:complexContent>
<xsd:extension base="owl:AnnotationAxiom">
<xsd:sequence>
<xsd:element ref="owl:AnnotationProperty"/>
<!-- This is the subproperty -->
<xsd:element ref="owl:AnnotationProperty"/>
<!-- This is the superproperty -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="SubAnnotationPropertyOf" type="owl:SubAnnotationPropertyOf"/>
<xsd:complexType name="AnnotationPropertyDomain">
<xsd:complexContent>
<xsd:extension base="owl:AnnotationAxiom">
<xsd:sequence>
<xsd:element ref="owl:AnnotationProperty"/>
<xsd:choice>
<xsd:element ref="owl:IRI"/>
<xsd:element ref="owl:AbbreviatedIRI"/>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="AnnotationPropertyDomain" type="owl:AnnotationPropertyDomain"/>
<xsd:complexType name="AnnotationPropertyRange">
<xsd:complexContent>
<xsd:extension base="owl:AnnotationAxiom">
<xsd:sequence>
<xsd:element ref="owl:AnnotationProperty"/>
<xsd:choice>
<xsd:element ref="owl:IRI"/>
<xsd:element ref="owl:AbbreviatedIRI"/>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="AnnotationPropertyRange" type="owl:AnnotationPropertyRange"/>
</xsd:schema>