mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 20:39:01 +00:00
138 lines
5.8 KiB
XML
138 lines
5.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<xs:schema elementFormDefault="qualified"
|
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
targetNamespace="http://schemas.microsoft.com/ado/2006/04/edm/providermanifest"
|
|
xmlns:pm="http://schemas.microsoft.com/ado/2006/04/edm/providermanifest">
|
|
|
|
<xs:element name="ProviderManifest">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Types" type="pm:TTypes" minOccurs="1" maxOccurs="1" />
|
|
<xs:element name="Functions" type="pm:TFunctions" minOccurs="0" maxOccurs="1"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="Namespace" type="xs:string" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:complexType name="TVersion">
|
|
<xs:attribute name="Major" type="xs:int" use="required" />
|
|
<xs:attribute name="Minor" type="xs:int" use="required" />
|
|
<xs:attribute name="Build" type="xs:int" use="required" />
|
|
<xs:attribute name="Revision" type="xs:int" use="required" />
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="TIntegerFacetDescription">
|
|
<xs:attribute name="Minimum" type="xs:int" use="optional" />
|
|
<xs:attribute name="Maximum" type="xs:int" use="optional" />
|
|
<xs:attribute name="DefaultValue" type="xs:int" use="optional" />
|
|
<xs:attribute name="Constant" type="xs:boolean" default="false" />
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="TBooleanFacetDescription">
|
|
<xs:attribute name="DefaultValue" type="xs:boolean" use="optional" />
|
|
<xs:attribute name="Constant" type="xs:boolean" default="true" />
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="TDateTimeFacetDescription">
|
|
<xs:attribute name="Constant" type="xs:boolean" default="false" />
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="TFacetDescriptions">
|
|
<xs:choice maxOccurs="unbounded">
|
|
<xs:element name="Precision" minOccurs="0" maxOccurs="1" type="pm:TIntegerFacetDescription"/>
|
|
<xs:element name="Scale" minOccurs="0" maxOccurs="1" type="pm:TIntegerFacetDescription"/>
|
|
<xs:element name="MaxLength" minOccurs="0" maxOccurs="1" type="pm:TIntegerFacetDescription"/>
|
|
<xs:element name="Unicode" minOccurs="0" maxOccurs="1" type="pm:TBooleanFacetDescription"/>
|
|
<xs:element name="FixedLength" minOccurs="0" maxOccurs="1" type="pm:TBooleanFacetDescription"/>
|
|
</xs:choice>
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="TType">
|
|
<xs:sequence>
|
|
<xs:element name="FacetDescriptions" type="pm:TFacetDescriptions" minOccurs="0" maxOccurs="1"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="Name" type="xs:string" use="required"/>
|
|
<xs:attribute name="PrimitiveTypeKind" type="pm:TPrimitiveTypeKind" use="required" />
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="TTypes">
|
|
<xs:sequence>
|
|
<xs:element name="Type" type="pm:TType" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
|
|
<xs:attributeGroup name="TFacetAttribute">
|
|
<xs:attribute name="Precision" type="xs:int" use="optional"/>
|
|
<xs:attribute name="Scale" type="xs:int" use="optional"/>
|
|
<xs:attribute name="MaxLength" type="xs:int" use="optional"/>
|
|
<xs:attribute name="Unicode" type="xs:boolean" use="optional"/>
|
|
<xs:attribute name="FixedLength" type="xs:boolean" use="optional"/>
|
|
</xs:attributeGroup>
|
|
|
|
<xs:complexType name="TFunctionParameter">
|
|
<xs:attribute name="Name" type="xs:string" use="required" />
|
|
<xs:attribute name="Type" type="xs:string" use="required" />
|
|
<xs:attributeGroup ref="pm:TFacetAttribute" />
|
|
<xs:attribute name="Mode" type="pm:TParameterDirection" use="required" />
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="TReturnType">
|
|
<xs:attribute name="Type" type="xs:string" use="required" />
|
|
<xs:attributeGroup ref="pm:TFacetAttribute" />
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="TFunction">
|
|
<xs:choice minOccurs="0" maxOccurs ="unbounded">
|
|
<xs:element name ="ReturnType" type="pm:TReturnType" minOccurs="0" maxOccurs="1" />
|
|
<xs:element name="Parameter" type="pm:TFunctionParameter" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:choice>
|
|
<xs:attribute name="Name" type="xs:string" use="required" />
|
|
<xs:attribute name="Aggregate" type="xs:boolean" use="optional" />
|
|
<xs:attribute name="BuiltIn" type="xs:boolean" use="optional" />
|
|
<xs:attribute name="StoreFunctionName" type="xs:string" use="optional" />
|
|
<xs:attribute name="NiladicFunction" type="xs:boolean" use="optional" />
|
|
<xs:attribute name="ParameterTypeSemantics" type="pm:TParameterTypeSemantics" use="optional" default="AllowImplicitConversion" />
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="TFunctions">
|
|
<xs:sequence>
|
|
<xs:element name="Function" type="pm:TFunction" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
|
|
<xs:simpleType name="TPrimitiveTypeKind">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="Binary"/>
|
|
<xs:enumeration value="Boolean"/>
|
|
<xs:enumeration value="Byte"/>
|
|
<xs:enumeration value="Decimal"/>
|
|
<xs:enumeration value="DateTime"/>
|
|
<xs:enumeration value="Time"/>
|
|
<xs:enumeration value="DateTimeOffset"/>
|
|
<xs:enumeration value="Double"/>
|
|
<xs:enumeration value="Guid"/>
|
|
<xs:enumeration value="Single"/>
|
|
<xs:enumeration value="SByte"/>
|
|
<xs:enumeration value="Int16"/>
|
|
<xs:enumeration value="Int32"/>
|
|
<xs:enumeration value="Int64"/>
|
|
<xs:enumeration value="String"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
|
|
<xs:simpleType name="TParameterDirection">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="In"/>
|
|
<xs:enumeration value="Out"/>
|
|
<xs:enumeration value="InOut"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="TParameterTypeSemantics">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="ExactMatchOnly" />
|
|
<xs:enumeration value="AllowImplicitPromotion" />
|
|
<xs:enumeration value="AllowImplicitConversion" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:schema>
|