<?xml version="1.0"?><!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) Aztec Software -->
<!--W3C Schema generated by XMLSPY v2004 rel. 4 U (http://www.xmlspy.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="BTRIEVE">		<!-- Btrieve file name (,mkd)  -->
        <xs:complexType>			
	    <xs:attribute name="FILENAME"  use="required">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:minLength value="1"/>
			</xs:restriction>				
		</xs:simpleType>
	    </xs:attribute>
            <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="FIELD">
        <!-- This represents the different attributes that comprises FIELD  -->
        <!-- This is used to populate x$Field -->
        <xs:complexType>
            <xs:attribute name="NAME" type="xs:string" use="required"/>
            <xs:attribute name="Offset" type="xs:nonNegativeInteger" use="required"/>
            <xs:attribute name="Precision" type="xs:nonNegativeInteger" use="required"/>
            <xs:attribute name="Scale" type="xs:nonNegativeInteger" use="optional"/>
            <xs:attribute name="BtrieveType" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="AUTOINC(2)"/>
                        <xs:enumeration value="AUTOINC(4)"/>
                        <xs:enumeration value="BFLOAT(4)"/>
                        <xs:enumeration value="BFLOAT(8)"/>
                        <xs:enumeration value="BLOB"/>
                        <xs:enumeration value="STRING"/>
                        <xs:enumeration value="CLOB"/>
                        <xs:enumeration value="CURRENCY"/>
                        <xs:enumeration value="DATE"/>
                        <xs:enumeration value="DECIMAL"/>
                        <xs:enumeration value="FLOAT(4)"/>
                        <xs:enumeration value="FLOAT(8)"/>
                        <xs:enumeration value="INTEGER(1)"/>
                        <xs:enumeration value="INTEGER(2)"/>
                        <xs:enumeration value="INTEGER(4)"/>
                        <xs:enumeration value="INTEGER(8)"/>
                        <xs:enumeration value="NUMERIC"/>
                        <xs:enumeration value="NUMERICSA"/>
                        <xs:enumeration value="NUMERICSTS"/>
                        <xs:enumeration value="TIME"/>
                        <xs:enumeration value="TIMESTAMP"/>
                        <xs:enumeration value="UNSIGNED(1) BINARY"/>
                        <xs:enumeration value="UNSIGNED(2) BINARY"/>
                        <xs:enumeration value="UNSIGNED(4) BINARY"/>
                        <xs:enumeration value="UNSIGNED(8) BINARY"/>
                        <xs:enumeration value="ZSTRING"/>
                        <xs:enumeration value="LOGICAL"/>
                        <xs:enumeration value="LVAR"/>
                        <xs:enumeration value="NOTE"/>
                        <xs:enumeration value="LSTRING"/>
                        <xs:enumeration value="GUID"/>
                        <xs:enumeration value="DATETIME"/>
                        <xs:enumeration value="NUMERICSLB"/>
                        <xs:enumeration value="NUMERICSLS"/>
                        <xs:enumeration value="NUMERICSTB"/>
                        </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="CASESENSITIVE" type="xs:boolean" use="optional"/>
            <xs:attribute name="NULLABLE" type="xs:boolean" use="optional"/>
            <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="FIELDS">
        <!-- This represents a set of FIELDS for a table  -->
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="FIELD" maxOccurs="unbounded"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="INDEX">
        <!-- This represents an INDEX for a table - could be a simple INDEX  -->
        <!-- or a complex INDEX -->
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="INDEXSEGMENT" maxOccurs="unbounded"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
                <xs:attribute name="NAME" type="xs:string" use="required"/>
                <xs:attribute name="BTRIEVE_KEY_NUM" type="xs:nonNegativeInteger" use="required"/>
                <xs:attribute name="ISUNIQUE" type="xs:boolean" use="optional"/>
                <xs:attribute name="ISMODIFIABLE" type="xs:boolean" use="optional"/>
                <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>
        </xs:complexType>
    </xs:element>	
    <xs:element name="INDICES">		
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="INDEX" maxOccurs="unbounded"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="INDEXSEGMENT">
        <xs:complexType>
            <xs:attribute name="NAME" type="xs:string" use="required"/>
            <xs:attribute name="CASESENSITIVE" type="xs:boolean" use="optional"/>
            <xs:attribute name="ASC" type="xs:string" use="optional"/>
            <xs:attribute name="ACS" type="xs:boolean" use="optional"/>
            <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="MAINTABLE">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TABLEDETAILS"/>
                <xs:element ref="OCCURSTABLES" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="REDEFINESTABLES" minOccurs="0" maxOccurs="unbounded"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="OCCURSTABLE">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="FIELDS"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
                <xs:attribute name="NAME" type="xs:string" use="required"/>
                <xs:attribute name="OccursCount" type="xs:nonNegativeInteger" use="required"/>
                <xs:attribute name="OccursLength" type="xs:nonNegativeInteger" use="required"/>
                <xs:attribute name="StartingOffset" type="xs:nonNegativeInteger" use="required"/>
                <xs:attribute name="MAPPINGINDEX" type="xs:string" use="optional"/>
                <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="OCCURSTABLES">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="OCCURSTABLE" maxOccurs="unbounded"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="REDEFINESTABLE">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="FIELDS"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
                <xs:attribute name="NAME" type="xs:string" use="required"/>			
                <xs:attribute name="StartingOffset" type="xs:nonNegativeInteger" use="required"/>
                <xs:attribute name="TABLEFILTER" type="xs:string" use="optional"/>
                <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>		
        </xs:complexType>	
    </xs:element>	
    <xs:element name="REDEFINESTABLES">		
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="REDEFINESTABLE" minOccurs="2" maxOccurs="unbounded"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="SCHEMAEXEC">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="BTRIEVE"/>
                <xs:choice>
                    <xs:element ref="MAINTABLE"/>
                    <xs:element ref="VARIANTRECORDTABLES"/>
                    </xs:choice>
                    <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="TABLEDETAILS">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TABLE"/>
                <xs:element ref="FIELDS" minOccurs="0"/>
                <xs:element ref="INDICES" minOccurs="0"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="TABLE">
        <xs:complexType>
            <xs:attribute name="NAME" type="xs:string" use="required"/>
            <xs:attribute name="TABLEFILTER" type="xs:string" use="optional"/>
            <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="VARIANTTABLE">
        <xs:complexType>
            <xs:attribute name="NAME" type="xs:string" use="required"/>
            <xs:attribute name="TABLEFILTER" type="xs:string" use="required"/>
            <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="VARIANTRECORDTABLEDETAILS">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="VARIANTTABLE"/>
                <xs:element ref="FIELDS" minOccurs="0"/>
                <xs:element ref="INDICES" minOccurs="0"/>
                <xs:element ref="OCCURSTABLES" minOccurs="0"/>
                <xs:element ref="REDEFINESTABLES" minOccurs="0"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="VARIANTRECORDTABLES">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="VARIANTRECORDTABLEDETAILS" minOccurs="2" maxOccurs="unbounded"/>
                <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
