<xsd:schema elementFormDefault="qualified" targetNamespace="commonj.sdo" xmlns:sdo="commonj.sdo" xmlns:sdoJava="commonj.sdo/java"
     xmlns:sdoXML="commonj.sdo/xml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="commonj.sdo/xml sdoXML.xsd                   commonj.sdo/java sdoJava.xsd">
    <xsd:include schemaLocation="datagraph.xsd"/>
    <xsd:element name="types" type="sdo:Types"/>
    <xsd:complexType name="Types">
        <xsd:sequence>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="type" type="sdo:Type"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="dataObject" type="xsd:anyType"/>
    <xsd:element name="type" type="sdo:Type"/>
    <xsd:complexType name="Type">
        <xsd:sequence>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="baseType" type="sdo:URI" sdoXML:propertyType="sdo:Type"/>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="property" type="sdo:Property"/>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="aliasName" type="sdo:String"/>
            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:ID" sdoXML:dataType="sdo:String"/>
        <xsd:attribute name="uri" type="sdo:URI"/>
        <xsd:attribute name="dataType" type="sdo:Boolean"/>
        <xsd:attribute name="open" type="sdo:Boolean"/>
        <xsd:attribute name="sequenced" type="sdo:Boolean"/>
        <xsd:attribute name="abstract" type="sdo:Boolean"/>
        <xsd:anyAttribute namespace="##any" processContents="lax"/>
    </xsd:complexType>
    <xsd:complexType name="Property">
        <xsd:sequence>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="aliasName" type="sdo:String"/>
            <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
        </xsd:sequence>
        <xsd:attribute name="name" type="sdo:String"/>
        <xsd:attribute name="many" type="sdo:Boolean"/>
        <xsd:attribute name="containment" type="sdo:Boolean"/>
        <xsd:attribute name="default" type="sdo:String"/>
        <xsd:attribute name="readOnly" type="sdo:Boolean"/>
        <xsd:attribute name="type" type="sdo:URI" sdoXML:propertyType="sdo:Type"/>
        <xsd:attribute name="opposite" type="sdo:URI" sdoXML:propertyType="sdo:Property"/>
        <xsd:attribute name="nullable" type="sdo:Boolean"/>
        <xsd:anyAttribute namespace="##any" processContents="lax"/>
    </xsd:complexType>
    <xsd:complexType abstract="true" name="DataObject"/>
    <xsd:complexType abstract="true" name="TextType">
        <xsd:sequence>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="text" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:simpleType name="Boolean" sdoJava:instanceClass="boolean">
        <xsd:restriction base="xsd:boolean"/>
    </xsd:simpleType>
    <xsd:simpleType name="Byte" sdoJava:instanceClass="byte">
        <xsd:restriction base="xsd:byte"/>
    </xsd:simpleType>
    <xsd:simpleType name="Bytes" sdoJava:instanceClass="byte[]">
        <xsd:restriction base="xsd:hexBinary"/>
    </xsd:simpleType>
    <xsd:simpleType name="Character" sdoJava:instanceClass="char">
        <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>
    <xsd:simpleType name="Date" sdoJava:instanceClass="java.util.Date">
        <xsd:restriction base="xsd:dateTime"/>
    </xsd:simpleType>
    <xsd:simpleType name="DateTime" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:dateTime"/>
    </xsd:simpleType>
    <xsd:simpleType name="Day" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:gDay"/>
    </xsd:simpleType>
    <xsd:simpleType name="Decimal" sdoJava:instanceClass="java.math.BigDecimal">
        <xsd:restriction base="xsd:decimal"/>
    </xsd:simpleType>
    <xsd:simpleType name="Double" sdoJava:instanceClass="double">
        <xsd:restriction base="xsd:double"/>
    </xsd:simpleType>
    <xsd:simpleType name="Duration" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:duration"/>
    </xsd:simpleType>
    <xsd:simpleType name="Float" sdoJava:instanceClass="float">
        <xsd:restriction base="xsd:float"/>
    </xsd:simpleType>
    <xsd:simpleType name="Int" sdoJava:instanceClass="int">
        <xsd:restriction base="xsd:int"/>
    </xsd:simpleType>
    <xsd:simpleType name="Integer" sdoJava:instanceClass="java.math.BigInteger">
        <xsd:restriction base="xsd:integer"/>
    </xsd:simpleType>
    <xsd:simpleType name="Long" sdoJava:instanceClass="long">
        <xsd:restriction base="xsd:long"/>
    </xsd:simpleType>
    <xsd:simpleType name="Month" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:gMonth"/>
    </xsd:simpleType>
    <xsd:simpleType name="MonthDay" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:gMonthDay"/>
    </xsd:simpleType>
    <xsd:simpleType name="Object" sdoJava:instanceClass="java.lang.Object">
        <xsd:union memberTypes="xsd:anyURI xsd:base64Binary xsd:boolean xsd:byte     xsd:date xsd:dateTime xsd:decimal xsd:double xsd:duration xsd:ENTITIES xsd:ENTITY xsd:float     xsd:gDay xsd:gMonth xsd:gMonthDay xsd:gYear xsd:gYearMonth xsd:hexBinary xsd:ID xsd:IDREF xsd:IDREFS     xsd:int xsd:integer xsd:language xsd:long xsd:Name xsd:NCName xsd:negativeInteger     xsd:NMTOKEN xsd:NMTOKENS xsd:nonNegativeInteger xsd:nonPositiveInteger     xsd:normalizedString xsd:NOTATION xsd:positiveInteger xsd:QName xsd:short xsd:string     xsd:time xsd:token xsd:unsignedByte xsd:unsignedInt xsd:unsignedLong xsd:unsignedShort"/>
    </xsd:simpleType>
    <xsd:simpleType name="Short" sdoJava:instanceClass="short">
        <xsd:restriction base="xsd:short"/>
    </xsd:simpleType>
    <xsd:simpleType name="String" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>
    <xsd:simpleType name="Strings" sdoJava:instanceClass="java.util.List">
        <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>
    <xsd:simpleType name="Time" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:time"/>
    </xsd:simpleType>
    <xsd:simpleType name="Year" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:gYear"/>
    </xsd:simpleType>
    <xsd:simpleType name="YearMonth" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:gYearMonth"/>
    </xsd:simpleType>
    <xsd:simpleType name="YearMonthDay" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:date"/>
    </xsd:simpleType>
    <xsd:simpleType name="URI" sdoJava:instanceClass="java.lang.String">
        <xsd:restriction base="xsd:anyURI"/>
    </xsd:simpleType>
</xsd:schema>
