Warning:
This wiki has been archived and is now read-only.

OWL XML Schema test

From OWL
Jump to: navigation, search

<!DOCTYPE xsd:schema [ <!ENTITY PN_CHARS_BASE "[A-Z]|[a-z]|[&#x00C0;-&#x00D6;]|[&#x00D8;-&#x00F6;]|[&#x00F8;-&#x02FF;]|[&#x0370;-&#x037D;]|[&#x037F;-&#x1FFF;]|[&#x200C;-&#x200D;]|[&#x2070;-&#x218F;]|[&#x2C00;-&#x2FEF;]|[&#x3001;-&#xD7FF;]|[&#xF900;-&#xFDCF;]|[&#xFDF0;-&#xFFFD;]|[&#x10000;-&#xEFFFF;]"> <!ENTITY PN_CHARS_U "&PN_CHARS_BASE;|_"> <!ENTITY PN_CHARS "&PN_CHARS_U;|\-|[0-9]|&#x00B7;|[&#x0300;-&#x036F;]|[&#x203F;-&#x2040;]"> <!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;)"> ]>

<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"/>


 <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>


 <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>
 <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"/>


 <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"/>


 <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:InverseObjectProperty"/>
   </xsd:choice>
 </xsd:group>
 <xsd:complexType name="InverseObjectProperty">
   <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="InverseObjectProperty" type="owl:InverseObjectProperty"/>


 <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>


 <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>


 <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"/>


 <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>


 <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"/>
         <xsd:group ref="owl:ClassExpression"/>
       </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"/>


 <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>
           <xsd:group ref="owl:ObjectPropertyExpression"/>
           <xsd:element name="PropertyChain" type="owl:PropertyChain"/>
         </xsd:choice>
         <xsd:group ref="owl:ObjectPropertyExpression"/>
       </xsd:sequence>
     </xsd:extension>
   </xsd:complexContent>
 </xsd:complexType>
 <xsd:element name="SubObjectPropertyOf" type="owl:SubObjectPropertyOf"/>
 <xsd:complexType name="PropertyChain">
   <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:sequence>
     <xsd:group ref="owl:ObjectPropertyExpression"/>
     <xsd:group ref="owl:ClassExpression"/>
   </xsd:sequence>
 </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"/>


 <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"/>
         <xsd:group ref="owl:DataPropertyExpression"/>
       </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"/>


 <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"/>


 <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"/>


 <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"/>
         <xsd:group ref="owl: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"/>
         <xsd:group ref="owl: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"/>
         <xsd:element ref="owl:Literal"/>
       </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"/>
         <xsd:element ref="owl:Literal"/>
       </xsd:sequence>
     </xsd:extension>
   </xsd:complexContent>
 </xsd:complexType>
 <xsd:element name="NegativeDataPropertyAssertion" type="owl:NegativeDataPropertyAssertion"/>


 <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 name="AbbreviatedIRI"/>
     <xsd:element ref="owl:AnonymousIndividual"/>
   </xsd:choice>
 </xsd:group>
 <xsd:group name="AnnotationValue">
   <xsd:choice>
     <xsd:element ref="owl:IRI"/>
     <xsd:element name="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>


 <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"/>
         <xsd:element ref="owl:AnnotationProperty"/>
       </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:element ref="owl:IRI"/>
         <xsd:element name="AbbreviatedIRI"/>
       </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:element ref="owl:IRI"/>
         <xsd:element name="AbbreviatedIRI"/>
       </xsd:sequence>
     </xsd:extension>
   </xsd:complexContent>
 </xsd:complexType>
 <xsd:element name="AnnotationPropertyRange" type="owl:AnnotationPropertyRange"/>

</xsd:schema>