<?xml version="1.0"?>
<xsd:schema targetNamespace="www.qpr.com" xmlns:qpr="www.qpr.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xsd:element name="Model">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="qpr:ModelInfo" minOccurs="0"/>
<xsd:element ref="qpr:ModelElementTypes"/>
<xsd:element ref="qpr:ModelElements"/>
</xsd:sequence>
<xsd:attribute name="Name" type="qpr:string255" use="optional"/>
<xsd:attribute name="Language" type="xsd:language" use="optional"/>
<xsd:attribute name="DateSeparator" type="qpr:char" use="optional"/>
<xsd:attribute name="TimeSeparator" type="qpr:char" use="optional"/>
<xsd:attribute name="TimeAMString" type="xsd:string" use="optional"/>
<xsd:attribute name="TimePMString" type="xsd:string" use="optional"/>
<xsd:attribute name="DecimalSeparator" type="qpr:char" use="optional"/>
<xsd:attribute name="ThousandSeparator" type="qpr:char" use="optional"/>
<xsd:attribute name="TwoDigitYearCenturyWindow" type="xsd:unsignedInt" use="optional" default="50"/>
<xsd:attribute name="ShortDateFormat" type="xsd:string" use="optional"/>
<xsd:attribute name="ShortTimeFormat" type="xsd:string" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ModelInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="qpr:Info" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Info">
<xsd:complexType>
<xsd:attribute name="Name" type="qpr:string128" use="required"/>
<xsd:attribute name="Value" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ModelElements">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="qpr:ModelElement" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ModelElementTypes">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="qpr:ModelElementType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ModelElement">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="qpr:Attribute" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="ElementName" type="qpr:string255" use="required"/>
<xsd:attribute name="ElementId" type="qpr:string32" use="optional"/>
<xsd:attribute name="TypeID" type="qpr:IdRefType" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Attribute">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="qpr:Value" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="qpr:Record" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="AttributeName" type="qpr:string128" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ModelElementType">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="qpr:ModelAttributeType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="TypeName" type="qpr:string255" use="required"/>
<xsd:attribute name="TypeID" type="qpr:IdType" use="required"/>
<xsd:attribute name="TypeType" type="xsd:string" use="optional"/>
<xsd:attribute name="Description" type="qpr:string2000" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ModelAttributeType">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="qpr:FieldType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="qpr:TypeProperty" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="Name" type="qpr:string255" use="required"/>
<xsd:attribute name="AttributeType" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Simple"/>
<xsd:enumeration value="List"/>
<xsd:enumeration value="Link"/>
<xsd:enumeration value="LinkToInstance"/>
<xsd:enumeration value="LinkValue"/>
<xsd:enumeration value="Instance"/>
<xsd:enumeration value="Record"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="TypeProperty">
<xsd:complexType>
<xsd:attribute name="Name" type="qpr:string255" use="required"/>
<xsd:attribute name="Value" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="FieldType">
<xsd:complexType>
<xsd:attribute name="Name" type="qpr:string255" use="required"/>
<xsd:attribute name="DataType" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="boolean"/>
<xsd:enumeration value="int"/>
<xsd:enumeration value="double"/>
<xsd:enumeration value="string"/>
<xsd:enumeration value="datetime"/>
<xsd:enumeration value="date"/>
<xsd:enumeration value="time"/>
<xsd:enumeration value="hexBinary"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="Value" type="xsd:string"/>
<xsd:element name="Record">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="qpr:Field" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Field">
<xsd:complexType>
<xsd:attribute name="Name" type="qpr:string255" use="required"/>
<xsd:attribute name="Value" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="char">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="IdType">
<xsd:restriction base="xsd:ID"/>
</xsd:simpleType>
<xsd:simpleType name="IdRefType">
<xsd:restriction base="xsd:IDREF"/>
</xsd:simpleType>
<xsd:simpleType name="string32">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="32"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string128">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="128"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string255">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string2000">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>