HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Windows/Microsoft.NET/Framework/v4.0.30319/zh-Hant/System.Data.Entity.resources.dll
MZ����@���	�!�L�!This program cannot be run in DOS mode.

$PEL�s�b�!��� @ @��@�H�Sh��'   H.text�� � `.rsrch�@@.reloc �@B��H���	P ��&��T<?xml version="1.0" encoding="utf-8"?>
<!-- 
####################################################################################################################

BE AWARE THAT THE ORDER IN WHICH TYPES ARE DESCRIBED IN THE PROVIDER MANIFEST IS RELEVANT AND HAVE IMPACT IN LOOKUP
PROCESS

#################################################################################################################### 
-->
<ProviderManifest Namespace="SqlServer" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/providermanifest">
  <Types>
    <Type Name="tinyint" PrimitiveTypeKind="Byte">
    </Type>
    <Type Name="smallint" PrimitiveTypeKind="Int16">
    </Type>
    <Type Name="int" PrimitiveTypeKind="Int32">
    </Type>
    <Type Name="bigint" PrimitiveTypeKind="Int64">
    </Type>
    <Type Name="float" PrimitiveTypeKind="Double">
    </Type>
    <Type Name="real" PrimitiveTypeKind="Single">
    </Type>
    <Type Name="decimal" PrimitiveTypeKind="Decimal">
      <FacetDescriptions>
        <Precision Minimum="1" Maximum="38" DefaultValue="18" Constant="false"/>
        <Scale Minimum="0" Maximum="38" DefaultValue="0" Constant="false"/>
      </FacetDescriptions>
    </Type>
    <Type Name="numeric" PrimitiveTypeKind="Decimal">
      <FacetDescriptions>
        <Precision Minimum="1" Maximum="38" DefaultValue="18" Constant="false"/>
        <Scale Minimum="0" Maximum="38" DefaultValue="0" Constant="false"/>
      </FacetDescriptions>
    </Type>
    <Type Name="smallmoney" PrimitiveTypeKind="Decimal">
      <FacetDescriptions>
        <Precision DefaultValue="10" Constant="true"/>
        <Scale DefaultValue="4" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="money" PrimitiveTypeKind="Decimal">
      <FacetDescriptions>
        <Precision DefaultValue="19" Constant="true"/>
        <Scale DefaultValue="4" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="binary" PrimitiveTypeKind="Binary">
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="8000" DefaultValue="8000" Constant="false"/>
        <FixedLength DefaultValue="true" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="varbinary" PrimitiveTypeKind="Binary">
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="8000" DefaultValue="8000" Constant="false"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="varbinary(max)" PrimitiveTypeKind="Binary">
      <FacetDescriptions>
        <MaxLength DefaultValue="2147483647" Constant="true"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="image" PrimitiveTypeKind="Binary">
      <FacetDescriptions>
        <MaxLength DefaultValue="2147483647" Constant="true"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="timestamp" PrimitiveTypeKind="Binary">
      <FacetDescriptions>
        <MaxLength DefaultValue="8" Constant="true"/>
        <FixedLength DefaultValue="true" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="rowversion" PrimitiveTypeKind="Binary">
      <FacetDescriptions>
        <MaxLength DefaultValue="8" Constant="true"/>
        <FixedLength DefaultValue="true" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="bit" PrimitiveTypeKind="Boolean">
    </Type>
    <Type Name="smalldatetime" PrimitiveTypeKind="DateTime">
      <FacetDescriptions>
        <Precision DefaultValue="0" Constant="true"/>          
      </FacetDescriptions>
    </Type>
    <Type Name="datetime" PrimitiveTypeKind="DateTime">
      <FacetDescriptions>
          <Precision DefaultValue="3" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="datetime2" PrimitiveTypeKind="DateTime">
      <FacetDescriptions>
        <Precision Minimum="0" Maximum="7" DefaultValue="7" Constant="false"/>              
      </FacetDescriptions>
    </Type>
    <Type Name="date" PrimitiveTypeKind="DateTime">
      <FacetDescriptions>
        <Precision DefaultValue="0" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="time" PrimitiveTypeKind="Time">
      <FacetDescriptions>
        <Precision Minimum="0" Maximum="7" DefaultValue="7" Constant="false"/>
      </FacetDescriptions>
    </Type>
    <Type Name="datetimeoffset" PrimitiveTypeKind="DateTimeOffset">
      <FacetDescriptions>
        <Precision Minimum="0" Maximum="7" DefaultValue="7" Constant="false"/>
      </FacetDescriptions>
    </Type>
    <Type Name="nvarchar" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="4000" DefaultValue="4000" Constant="false"/>
        <Unicode DefaultValue="true" Constant="true"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="varchar" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="8000" DefaultValue="8000" Constant="false"/>
        <Unicode DefaultValue="false" Constant="true"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="char" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="8000" DefaultValue="8000" Constant="false"/>
        <Unicode DefaultValue="false" Constant="true"/>
        <FixedLength DefaultValue="true" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="nchar" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="4000" DefaultValue="4000" Constant="false"/>
        <Unicode DefaultValue="true" Constant="true"/>
        <FixedLength DefaultValue="true" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="varchar(max)" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength DefaultValue="2147483647" Constant="true"/>
        <Unicode DefaultValue="false" Constant="true"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="nvarchar(max)" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength DefaultValue="1073741823" Constant="true"/>
        <Unicode DefaultValue="true" Constant="true"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="ntext" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength DefaultValue="1073741823" Constant="true"/>
        <Unicode DefaultValue="true" Constant="true"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="text" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength DefaultValue="2147483647" Constant="true"/>
        <Unicode DefaultValue="false" Constant="true"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="uniqueidentifier" PrimitiveTypeKind="Guid">
    </Type>
    <Type Name="xml" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength DefaultValue="1073741823" Constant="true"/>
        <Unicode DefaultValue="true" Constant="true"/>
        <FixedLength DefaultValue="false" Constant="true"/>
      </FacetDescriptions>
    </Type>
    <Type Name="geography" PrimitiveTypeKind="Geography">
      <FacetDescriptions>
        <SRID Minimum="0" Maximum="9999" DefaultValue="Variable" Constant="false"/>
        <IsStrict DefaultValue="true" Constant="false"/>
      </FacetDescriptions>
    </Type>
    <Type Name="geometry" PrimitiveTypeKind="Geometry">
      <FacetDescriptions>
        <SRID Minimum="0" Maximum="9999" DefaultValue="Variable" Constant="false"/>
        <IsStrict DefaultValue="true" Constant="false"/>
      </FacetDescriptions>
    </Type>
  </Types>
  <Functions>

    <!-- BEGIN AGGREGATES ############################################# -->
    <!-- AVG -->
    <Function Name="AVG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Int32)" Mode="In"/>
    </Function>
    <Function Name="AVG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Int64)" Mode="In"/>
    </Function>
    <Function Name="AVG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
    </Function>
    <Function Name="AVG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>

    <!-- CHECKSUM_AGG -->
    <Function Name="CHECKSUM_AGG" Aggregate="true" BuiltIn="true" ParameterTypeSemantics="ExactMatchOnly">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Int32)" Mode="In"/>
    </Function>

    <!-- COUNT -->
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Boolean)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(DateTime)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(DateTimeOffset)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Time)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Guid)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(String)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Binary)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Int64)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Int32)" Mode="In"/>
    </Function>
    <Function Name="COUNT" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Int16)" Mode="In"/>
    </Function>

    <!-- COUNT_BIG -->
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Boolean)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(DateTime)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(DateTimeOffset)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Time)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Guid)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(String)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Binary)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Int64)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Int32)" Mode="In"/>
    </Function>
    <Function Name="COUNT_BIG" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Int16)" Mode="In"/>
    </Function>

    <!-- GROUPING !NOT SUPPORTED! -->

    <!-- MAX -->
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Byte"/>
      <Parameter Name="arg" Type="Collection(Byte)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int16"/>
      <Parameter Name="arg" Type="Collection(Int16)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Int32)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Int64)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Single"/>
      <Parameter Name="arg" Type="Collection(Single)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="DateTime"/>
      <Parameter Name="arg" Type="Collection(DateTime)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Time"/>
      <Parameter Name="arg" Type="Collection(Time)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="DateTimeOffset"/>
      <Parameter Name="arg" Type="Collection(DateTimeOffset)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="arg" Type="Collection(String)" Mode="In"/>
    </Function>
    <Function Name="MAX" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Binary"/>
      <Parameter Name="arg" Type="Collection(Binary)" Mode="In"/>
    </Function>

    <!-- MIN -->
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Byte"/>
      <Parameter Name="arg" Type="Collection(Byte)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int16"/>
      <Parameter Name="arg" Type="Collection(Int16)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Int32)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Int64)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Single"/>
      <Parameter Name="arg" Type="Collection(Single)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="DateTime"/>
      <Parameter Name="arg" Type="Collection(DateTime)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Time"/>
      <Parameter Name="arg" Type="Collection(Time)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="DateTimeOffset"/>
      <Parameter Name="arg" Type="Collection(DateTimeOffset)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="arg" Type="Collection(String)" Mode="In"/>
    </Function>
    <Function Name="MIN" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Binary"/>
      <Parameter Name="arg" Type="Collection(Binary)" Mode="In"/>
    </Function>

    <!-- SUM -->
    <Function Name="SUM" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Collection(Int32)" Mode="In"/>
    </Function>
    <Function Name="SUM" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Collection(Int64)" Mode="In"/>
    </Function>
    <Function Name="SUM" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
    </Function>
    <Function Name="SUM" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>

    <!-- STDEV -->
    <Function Name="STDEV" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>

    <Function Name="STDEV" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
    </Function>


      <!-- STDEVP -->
    <Function Name="STDEVP" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>

      <Function Name="STDEVP" Aggregate="true" BuiltIn="true">
          <ReturnType Type="Double"/>
          <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
      </Function>      

    <!-- VAR -->
    <Function Name="VAR" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>

    <Function Name="VAR" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
    </Function>

      <!-- VARP -->
    <Function Name="VARP" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Double)" Mode="In"/>
    </Function>

    <Function Name="VARP" Aggregate="true" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Collection(Decimal)" Mode="In"/>
    </Function>


      <!-- END AGGREGATES ############################################# -->

    <!-- BEGIN STRING FUNCTIONS ##################################### -->
    <!-- ASCII( arg ) 
                arg1: char, varchar (nvarchar is allowed by SQL server)
                returns: int   
        -->
    <Function Name="ASCII" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="String" Mode="In"/>
    </Function>

    <!-- CHAR( arg )
                arg: tinyint, *smallint, *int, *bigint
                returns: char(1)
        -->
    <Function Name="CHAR" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="arg" Type="Int32" Mode="In"/>
    </Function>

    <!-- CHARINDEX( strSearch, strTarget [, startLocation ] )
                strSearch: character expression
                strTarget: character expression
                startLocation: tinyint, smallint, int, bigint
                returns: int, bigint   
        -->
    <Function Name="CHARINDEX" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="strSearch" Type="String" Mode="In"/>
      <Parameter Name="strTarget" Type="String" Mode="In"/>
    </Function>
    <Function Name="CHARINDEX" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="strSearch" Type="Binary" Mode="In"/>
      <Parameter Name="strTarget" Type="Binary" Mode="In"/>
    </Function>
    <Function Name="CHARINDEX" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="strSearch" Type="String" Mode="In"/>
      <Parameter Name="strTarget" Type="String" Mode="In"/>
      <Parameter Name="startLocation" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="CHARINDEX" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="strSearch" Type="Binary" Mode="In"/>
      <Parameter Name="strTarget" Type="Binary" Mode="In"/>
      <Parameter Name="startLocation" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="CHARINDEX" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="strSearch" Type="String" Mode="In"/>
      <Parameter Name="strTarget" Type="String" Mode="In"/>
      <Parameter Name="startLocation" Type="Int64" Mode="In"/>
    </Function>
    <Function Name="CHARINDEX" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="strSearch" Type="Binary" Mode="In"/>
      <Parameter Name="strTarget" Type="Binary" Mode="In"/>
      <Parameter Name="startLocation" Type="Int64" Mode="In"/>
    </Function>

    <!-- DIFFERENCE( str1, str2 ) 
            str1: varchar
            str2: varchar
            returns: int   
        -->
    <Function Name="DIFFERENCE" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="str1" Type="String" Mode="In"/>
      <Parameter Name="str2" Type="String" Mode="In"/>
    </Function>
    <!-- LEFT( str, count ) 
                str: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
                count: tinyint, smallint, int, bigint
                returns: varchar, nvarchar
        -->
    <Function Name="LEFT" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="str" Type="String" Mode="In"/>
      <Parameter Name="count" Type="Int64" Mode="In"/>
    </Function>

    <!-- LEN( string_expression )
                string_expression: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
                returns: int, bigint   
        -->
    <Function Name="LEN" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="string_expression" Type="String" Mode="In"/>
    </Function>
    <Function Name="LEN" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="string_expression" Type="Binary" Mode="In"/>
    </Function>

    <!-- LOWER( str ) 
            str: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
            returns: varchar, nvarchar   
        -->
    <Function Name="LOWER" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="str" Type="String" Mode="In"/>
    </Function>


    <!-- LTRIM( str ) 
            str: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
            returns: varchar, nvarchar
        -->
    <Function Name="LTRIM" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="str" Type="String" Mode="In"/>
    </Function>

    <!-- nchar( ncharCode ) 
                ncharCode: tinyint, smallint, int, bigint
                returns: nchar(1)
        -->
    <Function Name="NCHAR" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="arg" Type="Int32" Mode="In"/>
    </Function>

    <!-- PATINDEX( strPattern, strTarget )
            strPattern: char, nchar, varchar, nvarchar
            strTarget: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
            returns: int, bigint   
        -->
    <Function Name="PATINDEX" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="strPattern" Type="String" Mode="In"/>
      <Parameter Name="strTarget" Type="String" Mode="In"/>
    </Function>

    <!-- QUOTENAME( character_string [,quote_character] ) 
                character_string: nchar, nvarchar, nvarchar(max)
                quote_character: nchar, char, varchar, nvarchar
                returns: nvarchar   
        -->
    <Function Name="QUOTENAME" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="character_string" Type="String" Mode="In"/>
    </Function>
    <Function Name="QUOTENAME" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="character_string" Type="String" Mode="In"/>
      <Parameter Name="quote_character" Type="String" Mode="In"/>
    </Function>

    <!-- REPLACE( strTarget, strSearch, strReplacement )
            strTarget: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
            strSearch: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
            strReplacement: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
            returns: varchar, nvarchar   
        -->
    <Function Name="REPLACE" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="strTarget" Type="String" Mode="In"/>
      <Parameter Name="strSearch" Type="String" Mode="In"/>
      <Parameter Name="strReplacement" Type="String" Mode="In"/>
    </Function>

    <!-- REPLICATE( strSource, count )
            strSource: varchar, nvarchar
            count: tinyint, smallint, int
            returns: varchar, nvarchar   
        -->
    <Function Name="REPLICATE" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="strTarget" Type="String" Mode="In"/>
      <Parameter Name="count" Type="Int32" Mode="In"/>
    </Function>

    <!-- REVERSE( arg ) 
            arg: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
            returns: varchar, nvarchar
        -->
    <Function Name="REVERSE" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="arg" Type="String" Mode="In"/>
    </Function>

    <!-- RIGHT( atr, count ) 
                str: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
                count: tinyint, smallint, int, bigint
                returns: varchar, nvarchar
        -->
    <Function Name="RIGHT" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="str" Type="String" Mode="In"/>
      <Parameter Name="count" Type="Int64" Mode="In"/>
    </Function>

    <!-- RTRIM( arg1 ) 
            str: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
            returns: varchar, nvarchar
        -->
    <Function Name="RTRIM" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="str" Type="String" Mode="In"/>
    </Function>

    <!-- SOUNDEX( arg ) 
            arg: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
            returns: varchar   
        -->
    <Function Name="SOUNDEX" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="arg" Type="String" Mode="In"/>
    </Function>

    <!-- SPACE( arg ) 
            arg: tinyint, smallint, int
            returns: char   
        -->
    <Function Name="SPACE" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="arg1" Type="Int32" Mode="In"/>
    </Function>

    <!-- STR( number [,length [,decimal]] ) 
                number: float
                length: int
                decimal: int
                returns: char   
        -->
    <Function Name="STR" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="number" Type="Double" Mode="In"/>
    </Function>
    <Function Name="STR" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="number" Type="Decimal" Mode="In"/>
    </Function>
   <Function Name="STR" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="number" Type="Double" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="STR" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="number" Type="Decimal" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="STR" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="number" Type="Double" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
      <Parameter Name="decimal" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="STR" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="number" Type="Decimal" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
      <Parameter Name="decimal" Type="Int32" Mode="In"/>
   </Function>

      <!-- STUFF( strInput, start, length, strReplacement )
                strInput: varchar, nvarchar
                start: int
                legth: int
                strReplacement: varchar, nvarchar
                returns: int, bigint   
        -->
    <Function Name="STUFF" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="strInput" Type="String" Mode="In"/>
      <Parameter Name="start" Type="Int32" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
      <Parameter Name="strReplacement" Type="String" Mode="In"/>
    </Function>

    <!-- SUBSTRING( str, start, length )
                str: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
                start: tinyint, smallint, int, bigint
                length: tinyint, smallint, int, bigint
                returns: varchar, nvarchar
        -->
    <Function Name="SUBSTRING" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="str" Type="String" Mode="In"/>
      <Parameter Name="start" Type="Int64" Mode="In"/>
      <Parameter Name="length" Type="Int64" Mode="In"/>
    </Function>
    <Function Name="SUBSTRING" BuiltIn="true">
      <ReturnType Type="Binary"/>
      <Parameter Name="str" Type="Binary" Mode="In"/>
      <Parameter Name="start" Type="Int64" Mode="In"/>
      <Parameter Name="length" Type="Int64" Mode="In"/>
    </Function>

    <!-- UNICODE( arg ) 
            arg: nchar, nvarchar
            returns: int   
        -->
    <Function Name="UNICODE" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="String" Mode="In"/>
    </Function>

    <!-- UPPER( arg ) 
                str: char, nchar, varchar, nvarchar, varchar(max), nvarchar(max)
                returns: varchar, nvarchar   
        -->
    <Function Name="UPPER" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="str" Type="String" Mode="In"/>
    </Function>

    <!-- END STRING FUNCTIONS ####################################### -->

    <!-- BEGIN MATH FUNCTIONS ####################################### -->
    <!-- ABS( arg )
                arg: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
                returns: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
        -->
    <Function Name="ABS" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="ABS" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Int64" Mode="In"/>
    </Function>
    <Function Name="ABS" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="ABS" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>

      <!-- ACOS( arg )
                arg: float
                returns: float   
        -->
    <Function Name="ACOS" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg1" Type="Double" Mode="In"/>
    </Function>
    <Function Name="ACOS" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg1" Type="Decimal" Mode="In"/>
    </Function>

      <!-- ASIN( arg )
                arg: float
                returns: float   
        -->
    <Function Name="ASIN" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>
    <Function Name="ASIN" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>

      <!-- ATAN( arg )
                arg: float
                returns: float   
        -->
    <Function Name="ATAN" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>

    <Function Name="ATAN" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>

      <!-- ATN2( arg1, arg2 )
                arg1: float
                arg2: float
                returns: float   
        -->
    <Function Name="ATN2" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg1" Type="Double" Mode="In"/>
      <Parameter Name="arg2" Type="Double" Mode="In"/>
    </Function>

    <Function Name="ATN2" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg1" Type="Decimal" Mode="In"/>
      <Parameter Name="arg2" Type="Decimal" Mode="In"/>
    </Function>


      <!-- CEILING( arg )
                arg: smalldatetime, datetime
                returns: int   
        -->
    <Function Name="CEILING" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="CEILING" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Int64" Mode="In"/>
    </Function>
    <Function Name="CEILING" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="CEILING" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>

      <!-- COS( arg )
                arg: float
                returns: float   
        -->
    <Function Name="COS" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>

    <Function Name="COS" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>

      <!-- COT( arg )
                arg: float
                returns: float   
        -->
    <Function Name="COT" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>
    <Function Name="COT" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>

      <!-- DEGREES( arg )
                arg: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
                returns: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
        -->
    <Function Name="DEGREES" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="DEGREES" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg1" Type="Int64" Mode="In"/>
    </Function>
    <Function Name="DEGREES" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg1" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="DEGREES" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg1" Type="Double" Mode="In"/>
    </Function>
    <!-- EXP( arg )
                arg: float
                returns: float   
        -->
    <Function Name="EXP" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>

    <Function Name="EXP" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>

      <!-- FLOOR( arg )
                arg: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
                returns: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
        -->
    <Function Name="FLOOR" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="FLOOR" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Int64" Mode="In"/>
    </Function>
    <Function Name="FLOOR" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="FLOOR" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>
 
    <!-- LOG( arg )
            arg: float
            returns: float   
     -->
    <Function Name="LOG" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>
    <Function Name="LOG" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>

      <!-- LOG10( arg )
                arg: float
                returns: float   
        -->
    <Function Name="LOG10" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>
    <Function Name="LOG10" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>
    <!-- PI( )
                returns: float   
        -->
    <Function Name="PI" BuiltIn="true">
      <ReturnType Type="Double"/>
    </Function>

    <!-- POWER( x, y )
                x: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
                y: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
                returns: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
        -->
    <Function Name="POWER" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="x" Type="Int32" Mode="In"/>
      <Parameter Name="y" Type="Double" Mode="In"/>
    </Function>
    <Function Name="POWER" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="x" Type="Int64" Mode="In"/>
      <Parameter Name="y" Type="Double" Mode="In"/>
    </Function>
    <Function Name="POWER" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="x" Type="Decimal" Mode="In"/>
      <Parameter Name="y" Type="Double" Mode="In"/>
    </Function>
    <Function Name="POWER" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="x" Type="Double" Mode="In"/>
      <Parameter Name="y" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="POWER" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="x" Type="Decimal" Mode="In"/>
      <Parameter Name="y" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="POWER" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="x" Type="Double" Mode="In"/>
      <Parameter Name="y" Type="Double" Mode="In"/>
    </Function>
    <Function Name="POWER" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="x" Type="Int64" Mode="In"/>
      <Parameter Name="y" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="POWER" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="x" Type="Int32" Mode="In"/>
      <Parameter Name="y" Type="Decimal" Mode="In"/>
    </Function>
    <!-- RADIANS( arg )
                arg: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
                returns: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
        -->
    <Function Name="RADIANS" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="RADIANS" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Int64" Mode="In"/>
    </Function>
    <Function Name="RADIANS" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="RADIANS" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>

    <!-- RAND( [seed] )
                seed: tinyint, smallint, int
                returns: float
        -->
    <Function Name="RAND" BuiltIn="true">
      <ReturnType Type="Double"/>
    </Function>
    <Function Name="RAND" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="seed" Type="Int32" Mode="In"/>
    </Function>

    <!-- ROUND( numeric_expression, length [ ,function ] )
                numeric_expression: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
                length: tinyint, smallint, int
                function: tinyint, smallint, int
                returns: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
        -->
    <Function Name="ROUND" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="numeric_expression" Type="Int32" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="ROUND" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="numeric_expression" Type="Int64" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="ROUND" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="numeric_expression" Type="Decimal" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="ROUND" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="numeric_expression" Type="Double" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="ROUND" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="numeric_expression" Type="Int32" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
      <Parameter Name="function" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="ROUND" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="numeric_expression" Type="Int64" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
      <Parameter Name="function" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="ROUND" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="numeric_expression" Type="Decimal" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
      <Parameter Name="function" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="ROUND" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="numeric_expression" Type="Double" Mode="In"/>
      <Parameter Name="length" Type="Int32" Mode="In"/>
      <Parameter Name="function" Type="Int32" Mode="In"/>
    </Function>

    <!-- SIGN( arg )
            arg: tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money, real, float
            returns: bigint, numeric, decimal, money, float
        -->
    <Function Name="SIGN" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="SIGN" BuiltIn="true">
      <ReturnType Type="Int64"/>
      <Parameter Name="arg" Type="Int64" Mode="In"/>
    </Function>
    <Function Name="SIGN" BuiltIn="true">
      <ReturnType Type="Decimal"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="SIGN" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>

    <!-- SIN( arg )
                arg: float
                returns: float   
        -->
    <Function Name="SIN" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="SIN" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>

    <!-- SQRT( arg )
                arg: float
                returns: float   
        -->
    <Function Name="SQRT" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>
    <Function Name="SQRT" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>

    <!-- SQUARE( arg )
                arg: smalldatetime, datetime
                returns: int   
        -->
    <Function Name="SQUARE" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg1" Type="Double" Mode="In"/>
    </Function>
    <Function Name="SQUARE" BuiltIn="true">
          <ReturnType Type="Double"/>
          <Parameter Name="arg1" Type="Decimal" Mode="In"/>
    </Function>
    <!-- TAN( arg )
                arg: float
                returns: float   
        -->
    <Function Name="TAN" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>
    <Function Name="TAN" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>

      <!-- END MATH FUNCTIONS ######################################### -->


    <!-- BEGIN DATE FUNCTIONS ####################################### -->
    <!-- DATEADD 
                datepart: nvarchar
                number: tinyint, smallint, int, bigint, numeric, decimal, real, float
                date: smalldatetime, datetime, varchar, nvarchar, char, nchar
                returns: SMALLTIME, datetime   
        -->
    <Function Name="DATEADD" BuiltIn="true">
      <ReturnType Type="DateTime"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="number" Type="Double" Mode="In"/>
      <Parameter Name="date" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="DATEADD" BuiltIn="true">
      <ReturnType Type="Time"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="number" Type="Double" Mode="In"/>
      <Parameter Name="time" Type="Time" Mode="In"/>
    </Function>
    <Function Name="DATEADD" BuiltIn="true">
      <ReturnType Type="DateTimeOffset"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="number" Type="Double" Mode="In"/>
      <Parameter Name="datetimeoffset" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="DATEADD" BuiltIn="true">
      <ReturnType Type="DateTime"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="number" Type="Double" Mode="In"/>
      <Parameter Name="date" Type="String" Mode="In"/>
    </Function>

      <!-- DATEDIFF( datepart, startdate, enddate )
                datepart: nvarchar
                startdate: smalldatetime, datetime, char, nchar, varchar, nvarchar
                enddate: smalldatetime, datetime, char, nchar, varchar, nvarchar
                returns: int   
        -->
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="DateTime" Mode="In"/>
      <Parameter Name="enddate" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="DateTimeOffset" Mode="In"/>
      <Parameter Name="enddate" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="Time" Mode="In"/>
      <Parameter Name="enddate" Type="Time" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="String" Mode="In"/>
      <Parameter Name="enddate" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="String" Mode="In"/>
      <Parameter Name="enddate" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="String" Mode="In"/>
      <Parameter Name="enddate" Type="Time" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="Time" Mode="In"/>
      <Parameter Name="enddate" Type="String" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="DateTime" Mode="In"/>
      <Parameter Name="enddate" Type="String" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
       <Parameter Name="datepart" Type="String" Mode="In"/>
       <Parameter Name="startdate" Type="DateTimeOffset" Mode="In"/>
       <Parameter Name="enddate" Type="String" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="String" Mode="In"/>
      <Parameter Name="enddate" Type="String" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="Time" Mode="In"/>
      <Parameter Name="enddate" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="Time" Mode="In"/>
      <Parameter Name="enddate" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="DateTime" Mode="In"/>
      <Parameter Name="enddate" Type="Time" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="DateTimeOffset" Mode="In"/>
      <Parameter Name="enddate" Type="Time" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="DateTime" Mode="In"/>
      <Parameter Name="enddate" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="DATEDIFF" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="startdate" Type="DateTimeOffset" Mode="In"/>
      <Parameter Name="enddate" Type="DateTime" Mode="In"/>
    </Function>


      <!-- DATENAME( datepart, date )
            datepart: nvarchar
            date: smalldatetime, datetime, char, nchar, varchar, nvarchar
            returns: nvarchar   
        -->
    <Function Name="DATENAME" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="date" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="DATENAME" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="date" Type="String" Mode="In"/>
    </Function>
    <Function Name="DATENAME" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="date" Type="Time" Mode="In"/>
    </Function>
    <Function Name="DATENAME" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="date" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <!-- DATEPART( datepart, date )
                datepart: nvarchar
                date: smalldatetime, datetime, char, nchar, varchar, nvarchar
                returns: int   
        -->
    <Function Name="DATEPART" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="date" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="DATEPART" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="date" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="DATEPART" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="date" Type="String" Mode="In"/>
    </Function>
    <Function Name="DATEPART" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="datepart" Type="String" Mode="In"/>
      <Parameter Name="date" Type="Time" Mode="In"/>
    </Function>
    <!-- DAY( date )
            date: smalldatetime, datetime
            returns: int   
        -->
    <Function Name="DAY" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="date" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="DAY" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="date" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="DAY" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="date" Type="String" Mode="In"/>
    </Function>
    <!-- GETDATE()
            returns: datetime   
        -->
    <Function Name="GETDATE" BuiltIn="true">
      <ReturnType Type="DateTime"/>
    </Function>

    <!-- SYSDATETIME()
            returns: datetime   
      -->
    <Function Name="SYSDATETIME" BuiltIn="true">
      <ReturnType Type="DateTime"/>
    </Function>

    <!-- SYSUTCDATETIME()
          returns: datetime   
    -->
    <Function Name="SYSUTCDATETIME" BuiltIn="true">
      <ReturnType Type="DateTime"/>
    </Function>
      
    <!-- SYSDATETIMEOFFSET()
            returns: datetime   
    -->
    <Function Name="SYSDATETIMEOFFSET" BuiltIn="true">
      <ReturnType Type="DateTimeOffset"/>
    </Function>

    <!-- GETUTCDATE()
         returns: datetime   
    -->
    <Function Name="GETUTCDATE" BuiltIn="true">
      <ReturnType Type="DateTime"/>
    </Function>

    <!-- MONTH( date )
                date: smalldatetime, datetime
                returns: int   
        -->
    <Function Name="MONTH" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="date" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="MONTH" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="date" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="MONTH" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="date" Type="String" Mode="In"/>
    </Function>

    <!-- YEAR( date )
            date: smalldatetime, datetime
            returns: int   
        -->
    <Function Name="YEAR" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="date" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="YEAR" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="date" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="YEAR" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="date" Type="String" Mode="In"/>
    </Function>
    <!-- END DATE FUNCTIONS ######################################### -->

    <!-- BEGIN SYSTEM FUNCTIONS ##################################### -->
    <!-- DATALENGTH( arg ) 
                arg: any
                returns: int, bigint  
        -->
    <Function Name="DATALENGTH" BuiltIn="true" ParameterTypeSemantics="AllowImplicitPromotion">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Boolean" Mode="In"/>
    </Function>
    <Function Name="DATALENGTH" BuiltIn="true" ParameterTypeSemantics="AllowImplicitPromotion">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Double" Mode="In"/>
    </Function>
    <Function Name="DATALENGTH" BuiltIn="true" ParameterTypeSemantics="AllowImplicitPromotion">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="DATALENGTH" BuiltIn="true" ParameterTypeSemantics="AllowImplicitPromotion">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="DATALENGTH" BuiltIn="true" ParameterTypeSemantics="AllowImplicitPromotion">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Time" Mode="In"/>
    </Function>
    <Function Name="DATALENGTH" BuiltIn="true" ParameterTypeSemantics="AllowImplicitPromotion">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="DATALENGTH" BuiltIn="true" ParameterTypeSemantics="AllowImplicitPromotion">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="String" Mode="In"/>
    </Function>
    <Function Name="DATALENGTH" BuiltIn="true" ParameterTypeSemantics="AllowImplicitPromotion">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Binary" Mode="In"/>
    </Function>
    <Function Name="DATALENGTH" BuiltIn="true" ParameterTypeSemantics="AllowImplicitPromotion">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="Guid" Mode="In"/>
    </Function>

    <!-- CHECKSUM -->
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Boolean" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Double" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="String" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Time" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Binary" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Guid" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Boolean" Mode="In"/>
      <Parameter Name="arg2" Type="Boolean" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Double" Mode="In"/>
      <Parameter Name="arg2" Type="Double" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Decimal" Mode="In"/>
      <Parameter Name="arg2" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="String" Mode="In"/>
      <Parameter Name="arg2" Type="String" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="DateTime" Mode="In"/>
      <Parameter Name="arg2" Type="DateTime" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Time" Mode="In"/>
      <Parameter Name="arg2" Type="Time" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="DateTimeOffset" Mode="In"/>
      <Parameter Name="arg2" Type="DateTimeOffset" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Binary" Mode="In"/>
      <Parameter Name="arg2" Type="Binary" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Guid" Mode="In"/>
      <Parameter Name="arg2" Type="Guid" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Boolean" Mode="In"/>
      <Parameter Name="arg2" Type="Boolean" Mode="In"/>
      <Parameter Name="arg3" Type="Boolean" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Double" Mode="In"/>
      <Parameter Name="arg2" Type="Double" Mode="In"/>
      <Parameter Name="arg3" Type="Double" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Decimal" Mode="In"/>
      <Parameter Name="arg2" Type="Decimal" Mode="In"/>
      <Parameter Name="arg3" Type="Decimal" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="String" Mode="In"/>
      <Parameter Name="arg2" Type="String" Mode="In"/>
      <Parameter Name="arg3" Type="String" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="DateTime" Mode="In"/>
      <Parameter Name="arg2" Type="DateTime" Mode="In"/>
      <Parameter Name="arg3" Type="DateTime" Mode="In"/>
    </Function>
      <Function Name="CHECKSUM" BuiltIn="true">
          <ReturnType Type="Int32"/>
          <Parameter Name="arg1" Type="DateTimeOffset" Mode="In"/>
          <Parameter Name="arg2" Type="DateTimeOffset" Mode="In"/>
          <Parameter Name="arg3" Type="DateTimeOffset" Mode="In"/>
      </Function>
      <Function Name="CHECKSUM" BuiltIn="true">
          <ReturnType Type="Int32"/>
          <Parameter Name="arg1" Type="Time" Mode="In"/>
          <Parameter Name="arg2" Type="Time" Mode="In"/>
          <Parameter Name="arg3" Type="Time" Mode="In"/>
      </Function>
      <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Binary" Mode="In"/>
      <Parameter Name="arg2" Type="Binary" Mode="In"/>
      <Parameter Name="arg3" Type="Binary" Mode="In"/>
    </Function>
    <Function Name="CHECKSUM" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg1" Type="Guid" Mode="In"/>
      <Parameter Name="arg2" Type="Guid" Mode="In"/>
      <Parameter Name="arg3" Type="Guid" Mode="In"/>
    </Function>

    <!-- NEWID() -->
    <Function Name="NEWID" BuiltIn="true">
      <ReturnType Type="Guid"/>
    </Function>

    <!-- CURRENT_TIMESTAMP -->
    <Function Name="CURRENT_TIMESTAMP" BuiltIn="true" NiladicFunction="true">
      <ReturnType Type="DateTime"/>
    </Function>

    <!-- CURRENT_USER -->
    <Function Name="CURRENT_USER" BuiltIn="true" NiladicFunction="true">
      <ReturnType Type="String"/>
    </Function>

    <!-- HOST_NAME() -->
    <Function Name="HOST_NAME" BuiltIn="true">
      <ReturnType Type="String"/>
    </Function>

    <!-- USER_NAME() -->
    <Function Name="USER_NAME" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="arg" Type="Int32" Mode="In"/>
    </Function>
    <Function Name="USER_NAME" BuiltIn="true">
      <ReturnType Type="String"/>
    </Function>

    <!-- ISNUMERIC( arg ) //implicit conversion -->
    <Function Name="ISNUMERIC" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="String" Mode="In"/>
    </Function>

    <!-- ISDATE( arg ) //implicit conversion -->
    <Function Name="ISDATE" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="arg" Type="String" Mode="In"/>
    </Function>

    <!-- Spatial Functions -->
    <!-- Geography ‘Static’ Functions -->
    <Function Name="POINTGEOGRAPHY" BuiltIn="true">
      <ReturnType Type="Geography"/>
      <Parameter Name="latitude" Type="Double" Mode="In"/>
      <Parameter Name="longitude" Type="Double" Mode="In"/>
      <Parameter Name="spatialReferenceId" Type="Int32" Mode="In"/>
    </Function>
    
    <!-- Geography ‘Instance’ Functions -->
    <Function Name="ASTEXTZM" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="geographyValue" Type="Geography" Mode="In"/>
    </Function>
    <Function Name="BUFFERWITHTOLERANCE" BuiltIn="true">
      <ReturnType Type="Geography"/>
      <Parameter Name="geographyValue" Type="Geography" Mode="In"/>
      <Parameter Name="distance" Type="Double" Mode="In"/>
      <Parameter Name="tolerance" Type="Double" Mode="In"/>
      <Parameter Name="relative" Type="Boolean" Mode="In"/>
    </Function>
    <Function Name="ENVELOPEANGLE" BuiltIn="true">
      <ReturnType Type="Double"/>
      <Parameter Name="geographyValue" Type="Geography" Mode="In"/>
    </Function>
    <Function Name="ENVELOPECENTER" BuiltIn="true">
      <ReturnType Type="Geography"/>
      <Parameter Name="geographyValue" Type="Geography" Mode="In"/>
    </Function>
    <Function Name="FILTER" BuiltIn="true">
      <ReturnType Type="Boolean"/>
      <Parameter Name="geographyValue" Type="Geography" Mode="In"/>
      <Parameter Name="geographyOther" Type="Geography" Mode="In"/>
    </Function>
    <Function Name="INSTANCEOF" BuiltIn="true">
      <ReturnType Type="Boolean"/>
      <Parameter Name="geographyValue" Type="Geography" Mode="In"/>
      <Parameter Name="geometryTypeName" Type="String" Mode="In"/>
    </Function>
    <Function Name="NUMRINGS" BuiltIn="true">
      <ReturnType Type="Int32"/>
      <Parameter Name="geographyValue" Type="Geography" Mode="In"/>
    </Function>    
    <Function Name="REDUCE" BuiltIn="true">
      <ReturnType Type="Geography"/>
      <Parameter Name="geographyValue" Type="Geography" Mode="In"/>
      <Parameter Name="tolerance" Type="Double" Mode="In"/>
    </Function>
    <Function Name="RINGN" BuiltIn="true">
      <ReturnType Type="Geography"/>
      <Parameter Name="geographyValue" Type="Geography" Mode="In"/>
      <Parameter Name="index" Type="Int32" Mode="In"/>
    </Function>
    
    <!-- Geometry ‘Static’ Functions -->
    <Function Name="POINTGEOMETRY" BuiltIn="true">
      <ReturnType Type="Geometry"/>
      <Parameter Name="xCoordinate" Type="Double" Mode="In"/>
      <Parameter Name="yCoordinate" Type="Double" Mode="In"/>
      <Parameter Name="spatialReferenceId" Type="Int32" Mode="In"/>
    </Function>

    <!-- Geometry ‘Instance’ Functions -->
    <Function Name="ASTEXTZM" BuiltIn="true">
      <ReturnType Type="String"/>
      <Parameter Name="geometryValue" Type="Geometry" Mode="In"/>
    </Function>
    <Function Name="BUFFERWITHTOLERANCE" BuiltIn="true">
      <ReturnType Type="Geometry"/>
      <Parameter Name="geometryValue" Type="Geometry" Mode="In"/>
      <Parameter Name="distance" Type="Double" Mode="In"/>
      <Parameter Name="tolerance" Type="Double" Mode="In"/>
      <Parameter Name="relative" Type="Boolean" Mode="In"/>
    </Function>
    <Function Name="INSTANCEOF" BuiltIn="true">
      <ReturnType Type="Boolean"/>
      <Parameter Name="geometryValue" Type="Geometry" Mode="In"/>
      <Parameter Name="geometryTypeName" Type="String" Mode="In"/>
    </Function>
    <Function Name="FILTER" BuiltIn="true">
      <ReturnType Type="Boolean"/>
      <Parameter Name="geometryValue" Type="Geometry" Mode="In"/>
      <Parameter Name="geometryOther" Type="Geometry" Mode="In"/>
    </Function>
    <Function Name="MAKEVALID" BuiltIn="true">
      <ReturnType Type="Geometry"/>
      <Parameter Name="geometryValue" Type="Geometry" Mode="In"/>
    </Function>
    <Function Name="REDUCE" BuiltIn="true">
      <ReturnType Type="Geometry"/>
      <Parameter Name="geometryValue" Type="Geometry" Mode="In"/>
      <Parameter Name="tolerance" Type="Double" Mode="In"/>
    </Function>
    
    <!-- END SYSTEM FUNCTIONS ####################################### -->
  </Functions>
</ProviderManifest>
5[<?xml version="1.0" encoding="utf-8"?>
<Mapping Space="C-S" xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
  <EntityContainerMapping StorageEntityContainer="Schema" CdmEntityContainer="SchemaInformation">

    <EntitySetMapping Name="Tables" StoreEntitySet="STables" TypeName="Store.Table">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="CatalogName" ColumnName="CatalogName" />
      <ScalarProperty Name="SchemaName" ColumnName="SchemaName" />
      <ScalarProperty Name="Name" ColumnName="Name" />
    </EntitySetMapping>

    <EntitySetMapping Name="TableColumns" StoreEntitySet="STableColumns" TypeName="Store.Column">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="Name" ColumnName="Name" />
      <ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
      <ScalarProperty Name="IsNullable" ColumnName="IsNullable" />
      <ComplexProperty Name="ColumnType">
        <ScalarProperty Name="TypeName" ColumnName="TypeName" />
        <ScalarProperty Name="MaxLength" ColumnName="MaxLength" />
        <ScalarProperty Name="DateTimePrecision" ColumnName="DateTimePrecision" />
        <ScalarProperty Name="Precision" ColumnName="Precision" />
        <ScalarProperty Name="Scale" ColumnName="Scale" />
        <ComplexProperty Name="Collation">
          <ScalarProperty Name="CatalogName" ColumnName="CollationCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CollationSchema" />
          <ScalarProperty Name="Name" ColumnName="CollationName" />
        </ComplexProperty>
        <ComplexProperty Name="CharacterSet">
          <ScalarProperty Name="CatalogName" ColumnName="CharacterSetCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CharacterSetSchema" />
          <ScalarProperty Name="Name" ColumnName="CharacterSetName" />
        </ComplexProperty>
        <ScalarProperty Name="IsMultiSet" ColumnName="IsMultiSet" />
      </ComplexProperty>
      <ScalarProperty Name="IsIdentity" ColumnName="IsIdentity" />
      <ScalarProperty Name="IsStoreGenerated" ColumnName="IsStoreGenerated" />
      <ScalarProperty Name="Default" ColumnName="Default" />
    </EntitySetMapping>

    <EntitySetMapping Name="Views" StoreEntitySet="SViews" TypeName="Store.View">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="CatalogName" ColumnName="CatalogName" />
      <ScalarProperty Name="SchemaName" ColumnName="SchemaName" />
      <ScalarProperty Name="Name" ColumnName="Name" />
      <ScalarProperty Name="ViewDefinition" ColumnName="ViewDefinition" />
      <ScalarProperty Name="IsUpdatable" ColumnName="IsUpdatable" />
    </EntitySetMapping>

    <EntitySetMapping Name="ViewColumns" StoreEntitySet="SViewColumns" TypeName="Store.Column">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="Name" ColumnName="Name" />
      <ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
      <ScalarProperty Name="IsNullable" ColumnName="IsNullable" />
      <ComplexProperty Name="ColumnType">
        <ScalarProperty Name="TypeName" ColumnName="TypeName" />
        <ScalarProperty Name="MaxLength" ColumnName="MaxLength" />
        <ScalarProperty Name="Precision" ColumnName="Precision" />
        <ScalarProperty Name="DateTimePrecision" ColumnName="DateTimePrecision" />
        <ScalarProperty Name="Scale" ColumnName="Scale" />
        <ComplexProperty Name="Collation">
          <ScalarProperty Name="CatalogName" ColumnName="CollationCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CollationSchema" />
          <ScalarProperty Name="Name" ColumnName="CollationName" />
        </ComplexProperty>
        <ComplexProperty Name="CharacterSet">
          <ScalarProperty Name="CatalogName" ColumnName="CharacterSetCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CharacterSetSchema" />
          <ScalarProperty Name="Name" ColumnName="CharacterSetName" />
        </ComplexProperty>
        <ScalarProperty Name="IsMultiSet" ColumnName="IsMultiSet" />
      </ComplexProperty>
      <ScalarProperty Name="IsIdentity" ColumnName="IsIdentity" />
      <ScalarProperty Name="IsStoreGenerated" ColumnName="IsStoreGenerated" />
      <ScalarProperty Name="Default" ColumnName="Default" />
    </EntitySetMapping>

    <EntitySetMapping Name="Functions" >
      <EntityTypeMapping TypeName="IsTypeOf(Store.Function)">
        <MappingFragment StoreEntitySet="SFunctions">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <ScalarProperty Name="CatalogName" ColumnName="CatalogName" />
          <ScalarProperty Name="SchemaName" ColumnName="SchemaName" />
          <ScalarProperty Name="Name" ColumnName="Name" />
          <ScalarProperty Name="IsBuiltIn" ColumnName="IsBuiltIn" />
          <ScalarProperty Name="IsNiladic" ColumnName="IsNiladic" />
        </MappingFragment>
      </EntityTypeMapping>
      <EntityTypeMapping TypeName="Store.ScalarFunction">
        <MappingFragment StoreEntitySet="SFunctions">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <ScalarProperty Name="IsAggregate" ColumnName="IsAggregate" />
          <ComplexProperty Name="ReturnType">
            <ScalarProperty Name="TypeName" ColumnName="ReturnTypeName" />
            <ScalarProperty Name="MaxLength" ColumnName="ReturnMaxLength" />
            <ScalarProperty Name="Precision" ColumnName="ReturnPrecision" />
            <ScalarProperty Name="DateTimePrecision" ColumnName="ReturnDateTimePrecision" />
            <ScalarProperty Name="Scale" ColumnName="ReturnScale" />
            <ComplexProperty Name="Collation">
              <ScalarProperty Name="CatalogName" ColumnName="ReturnCollationCatalog" />
              <ScalarProperty Name="SchemaName" ColumnName="ReturnCollationSchema" />
              <ScalarProperty Name="Name" ColumnName="ReturnCollationName" />
            </ComplexProperty>
            <ComplexProperty Name="CharacterSet">
              <ScalarProperty Name="CatalogName" ColumnName="ReturnCharacterSetCatalog" />
              <ScalarProperty Name="SchemaName" ColumnName="ReturnCharacterSetSchema" />
              <ScalarProperty Name="Name" ColumnName="ReturnCharacterSetName" />
            </ComplexProperty>
            <ScalarProperty Name="IsMultiSet" ColumnName="ReturnIsMultiSet" />
          </ComplexProperty>
          <Condition ColumnName="IsTvf" Value="false"/>
        </MappingFragment>
      </EntityTypeMapping>
      <EntityTypeMapping TypeName="Store.TableValuedFunction">
        <MappingFragment StoreEntitySet="SFunctions">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <Condition ColumnName="IsTvf" Value="true"/>
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>

    <EntitySetMapping Name="FunctionParameters" TypeName="Store.Parameter" StoreEntitySet="SFunctionParameters">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="Name" ColumnName="Name" />
      <ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
      <ComplexProperty Name="ParameterType">
        <ScalarProperty Name="TypeName" ColumnName="TypeName" />
        <ScalarProperty Name="MaxLength" ColumnName="MaxLength" />
        <ScalarProperty Name="DateTimePrecision" ColumnName="DateTimePrecision" />
        <ScalarProperty Name="Precision" ColumnName="Precision" />
        <ScalarProperty Name="Scale" ColumnName="Scale" />
        <ComplexProperty Name="Collation">
          <ScalarProperty Name="CatalogName" ColumnName="CollationCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CollationSchema" />
          <ScalarProperty Name="Name" ColumnName="CollationName" />
        </ComplexProperty>
        <ComplexProperty Name="CharacterSet">
          <ScalarProperty Name="CatalogName" ColumnName="CharacterSetCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CharacterSetSchema" />
          <ScalarProperty Name="Name" ColumnName="CharacterSetName" />
        </ComplexProperty>
        <ScalarProperty Name="IsMultiSet" ColumnName="IsMultiSet" />
      </ComplexProperty>
      <ScalarProperty Name="Mode" ColumnName="Mode" />
      <ScalarProperty Name="Default" ColumnName="Default" />
    </EntitySetMapping>

    <EntitySetMapping Name="FunctionReturnTableColumns" StoreEntitySet="SFunctionReturnTableColumns" TypeName="Store.FunctionReturnTableColumn">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="Name" ColumnName="Name" />
      <ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
      <ScalarProperty Name="IsNullable" ColumnName="IsNullable" />
      <ComplexProperty Name="ColumnType">
        <ScalarProperty Name="TypeName" ColumnName="TypeName" />
        <ScalarProperty Name="MaxLength" ColumnName="MaxLength" />
        <ScalarProperty Name="DateTimePrecision" ColumnName="DateTimePrecision" />
        <ScalarProperty Name="Precision" ColumnName="Precision" />
        <ScalarProperty Name="Scale" ColumnName="Scale" />
        <ComplexProperty Name="Collation">
          <ScalarProperty Name="CatalogName" ColumnName="CollationCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CollationSchema" />
          <ScalarProperty Name="Name" ColumnName="CollationName" />
        </ComplexProperty>
        <ComplexProperty Name="CharacterSet">
          <ScalarProperty Name="CatalogName" ColumnName="CharacterSetCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CharacterSetSchema" />
          <ScalarProperty Name="Name" ColumnName="CharacterSetName" />
        </ComplexProperty>
        <ScalarProperty Name="IsMultiSet" ColumnName="IsMultiSet" />
      </ComplexProperty>
      <ScalarProperty Name="IsIdentity" ColumnName="IsIdentity" />
      <ScalarProperty Name="IsStoreGenerated" ColumnName="IsStoreGenerated" />
      <ScalarProperty Name="Default" ColumnName="Default" />
    </EntitySetMapping>

    <EntitySetMapping Name="Procedures" TypeName="Store.Procedure" StoreEntitySet="SProcedures">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="CatalogName" ColumnName="CatalogName" />
      <ScalarProperty Name="SchemaName" ColumnName="SchemaName" />
      <ScalarProperty Name="Name" ColumnName="Name" />
    </EntitySetMapping>

    <EntitySetMapping Name="ProcedureParameters" TypeName="Store.Parameter" StoreEntitySet="SProcedureParameters">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="Name" ColumnName="Name" />
      <ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
      <ComplexProperty Name="ParameterType">
        <ScalarProperty Name="TypeName" ColumnName="TypeName" />
        <ScalarProperty Name="MaxLength" ColumnName="MaxLength" />
        <ScalarProperty Name="DateTimePrecision" ColumnName="DateTimePrecision" />
        <ScalarProperty Name="Precision" ColumnName="Precision" />
        <ScalarProperty Name="Scale" ColumnName="Scale" />
        <ComplexProperty Name="Collation">
          <ScalarProperty Name="CatalogName" ColumnName="CollationCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CollationSchema" />
          <ScalarProperty Name="Name" ColumnName="CollationName" />
        </ComplexProperty>
        <ComplexProperty Name="CharacterSet">
          <ScalarProperty Name="CatalogName" ColumnName="CharacterSetCatalog" />
          <ScalarProperty Name="SchemaName" ColumnName="CharacterSetSchema" />
          <ScalarProperty Name="Name" ColumnName="CharacterSetName" />
        </ComplexProperty>
        <ScalarProperty Name="IsMultiSet" ColumnName="IsMultiSet" />
      </ComplexProperty>
      <ScalarProperty Name="Mode" ColumnName="Mode" />
      <ScalarProperty Name="Default" ColumnName="Default" />
    </EntitySetMapping>

    <EntitySetMapping Name="TableConstraints" >
      <EntityTypeMapping TypeName="IsTypeOf(Store.Constraint)">
        <MappingFragment StoreEntitySet="SConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <ScalarProperty Name="Name" ColumnName="Name" />
          <ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
        </MappingFragment>
      </EntityTypeMapping>
      <EntityTypeMapping TypeName="Store.UniqueConstraint">
          <MappingFragment StoreEntitySet="SConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <Condition ColumnName="ConstraintType" Value="UNIQUE"/>
        </MappingFragment>
      </EntityTypeMapping>
      <EntityTypeMapping TypeName="Store.CheckConstraint">
        <MappingFragment StoreEntitySet="SConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <Condition ColumnName="ConstraintType" Value="CHECK"/>
        </MappingFragment>
        <MappingFragment StoreEntitySet="SCheckConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <ScalarProperty Name="Expression" ColumnName="Expression" />
        </MappingFragment>
      </EntityTypeMapping>
      <EntityTypeMapping TypeName="Store.PrimaryKeyConstraint">
        <MappingFragment StoreEntitySet="SConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <Condition ColumnName="ConstraintType" Value="PRIMARY KEY"/>
        </MappingFragment>
      </EntityTypeMapping>
      <EntityTypeMapping TypeName="Store.ForeignKeyConstraint">
        <MappingFragment StoreEntitySet="SConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <Condition ColumnName="ConstraintType" Value="FOREIGN KEY"/>
        </MappingFragment>
        <MappingFragment StoreEntitySet="SForeignKeyConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <ScalarProperty Name="UpdateRule" ColumnName="UpdateRule" />
          <ScalarProperty Name="DeleteRule" ColumnName="DeleteRule" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>

    <EntitySetMapping Name="ViewConstraints" >
      <EntityTypeMapping TypeName="Store.UniqueConstraint" >
        <MappingFragment StoreEntitySet="SViewConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <ScalarProperty Name="Name" ColumnName="Name" />
          <ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
          <Condition ColumnName="ConstraintType" Value="UNIQUE"/>
        </MappingFragment>
      </EntityTypeMapping>
      <EntityTypeMapping TypeName="Store.CheckConstraint" >
        <MappingFragment StoreEntitySet="SViewConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <ScalarProperty Name="Name" ColumnName="Name" />
          <ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
          <ScalarProperty Name="Expression" ColumnName="Expression" />
          <Condition ColumnName="ConstraintType" Value="CHECK"/>
        </MappingFragment>
      </EntityTypeMapping>
      <EntityTypeMapping TypeName="Store.PrimaryKeyConstraint" >
        <MappingFragment StoreEntitySet="SViewConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <ScalarProperty Name="Name" ColumnName="Name" />
          <ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
          <Condition ColumnName="ConstraintType" Value="PRIMARY KEY"/>
        </MappingFragment>
      </EntityTypeMapping>
      <EntityTypeMapping TypeName="Store.ForeignKeyConstraint" >
        <MappingFragment StoreEntitySet="SViewConstraints">
          <ScalarProperty Name="Id" ColumnName="Id" />
          <ScalarProperty Name="Name" ColumnName="Name" />
          <ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
          <ScalarProperty Name="UpdateRule" ColumnName="UpdateRule" />
          <ScalarProperty Name="DeleteRule" ColumnName="DeleteRule" />
          <Condition ColumnName="ConstraintType" Value="FOREIGN KEY"/>
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>

    <EntitySetMapping Name="TableForeignKeys" StoreEntitySet="SForeignKeys" TypeName="Store.ForeignKey">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
    </EntitySetMapping>

    <EntitySetMapping Name="ViewForeignKeys" StoreEntitySet="SViewForeignKeys" TypeName="Store.ForeignKey">
      <ScalarProperty Name="Id" ColumnName="Id" />
      <ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
    </EntitySetMapping>
    
    <AssociationSetMapping Name="TableTableColumns" StoreEntitySet="STableColumns" TypeName="Store.TableOrViewColumn">
      <EndProperty Name="Parent">
        <ScalarProperty Name="Id" ColumnName="ParentId" />
      </EndProperty>
      <EndProperty Name="Column">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
      <!--Condition ColumnName="ParentId" IsNull="false"/-->
    </AssociationSetMapping>

    <AssociationSetMapping Name="ViewViewColumns" StoreEntitySet="SViewColumns" TypeName="Store.TableOrViewColumn">
      <EndProperty Name="Parent">
        <ScalarProperty Name="Id" ColumnName="ParentId" />
      </EndProperty>
      <EndProperty Name="Column">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="TableTableConstraints" StoreEntitySet="SConstraints" TypeName="Store.TableOrViewConstraint">
      <EndProperty Name="Parent">
        <ScalarProperty Name="Id" ColumnName="ParentId" />
      </EndProperty>
      <EndProperty Name="Constraint">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="TableConstraintColumns" StoreEntitySet="SConstraintColumns" TypeName="Store.TableOrViewConstraintColumn">
      <EndProperty Name="Constraint">
        <ScalarProperty Name="Id" ColumnName="ConstraintId" />
      </EndProperty>
      <EndProperty Name="Column">
        <ScalarProperty Name="Id" ColumnName="ColumnId" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="TableConstraintForeignKeys" StoreEntitySet="SForeignKeys" TypeName="Store.ConstraintForeignKey">
      <EndProperty Name="Constraint">
        <ScalarProperty Name="Id" ColumnName="ConstraintId" />
      </EndProperty>
      <EndProperty Name="ForeignKey">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="ToTableForeignKeyColumns" StoreEntitySet="SForeignKeys" TypeName="Store.ToForeignKeyColumn">
      <EndProperty Name="ForeignKey">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
      <EndProperty Name="Column">
        <ScalarProperty Name="Id" ColumnName="ToColumnId" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="FromTableForeignKeyColumns" StoreEntitySet="SForeignKeys" TypeName="Store.FromForeignKeyColumn">
      <EndProperty Name="ForeignKey">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
      <EndProperty Name="Column">
        <ScalarProperty Name="Id" ColumnName="FromColumnId" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="ViewViewConstraints" StoreEntitySet="SViewConstraints" TypeName="Store.TableOrViewConstraint">
      <EndProperty Name="Parent">
        <ScalarProperty Name="Id" ColumnName="ParentId" />
      </EndProperty>
      <EndProperty Name="Constraint">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="ViewConstraintColumns" StoreEntitySet="SViewConstraintColumns" TypeName="Store.TableOrViewConstraintColumn">
      <EndProperty Name="Constraint">
        <ScalarProperty Name="Id" ColumnName="ConstraintId" />
      </EndProperty>
      <EndProperty Name="Column">
        <ScalarProperty Name="Id" ColumnName="ColumnId" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="ViewConstraintForeignKeys" StoreEntitySet="SViewForeignKeys" TypeName="Store.ConstraintForeignKey">
      <EndProperty Name="Constraint">
        <ScalarProperty Name="Id" ColumnName="ConstraintId" />
      </EndProperty>
      <EndProperty Name="ForeignKey">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="ToViewForeignKeyColumns" StoreEntitySet="SViewForeignKeys" TypeName="Store.ToForeignKeyColumn">
      <EndProperty Name="ForeignKey">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
      <EndProperty Name="Column">
        <ScalarProperty Name="Id" ColumnName="ToColumnId" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="FromViewForeignKeyColumns" StoreEntitySet="SViewForeignKeys" TypeName="Store.FromForeignKeyColumn">
      <EndProperty Name="ForeignKey">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
      <EndProperty Name="Column">
        <ScalarProperty Name="Id" ColumnName="FromColumnId" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="FunctionFunctionParameters" StoreEntitySet="SFunctionParameters" TypeName="Store.RoutineParameter">
      <EndProperty Name="Routine">
        <ScalarProperty Name="Id" ColumnName="ParentId" />
      </EndProperty>
      <EndProperty Name="Parameter">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="FunctionFunctionReturnTableColumns" StoreEntitySet="SFunctionReturnTableColumns" TypeName="Store.FunctionFunctionReturnTableColumn">
      <EndProperty Name="Function">
        <ScalarProperty Name="Id" ColumnName="ParentId" />
      </EndProperty>
      <EndProperty Name="Column">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
    </AssociationSetMapping>

    <AssociationSetMapping Name="ProcedureProcedureParameters" StoreEntitySet="SProcedureParameters" TypeName="Store.RoutineParameter">
      <EndProperty Name="Routine">
        <ScalarProperty Name="Id" ColumnName="ParentId" />
      </EndProperty>
      <EndProperty Name="Parameter">
        <ScalarProperty Name="Id" ColumnName="Id" />
      </EndProperty>
    </AssociationSetMapping>

  </EntityContainerMapping>

</Mapping>�S<?xml version="1.0" encoding="utf-8"?>
<Mapping xmlns:cs="urn:schemas-microsoft-com:windows:storage:mapping:CS" Space="C-S" xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
  <cs:EntityContainerMapping StorageEntityContainer="Schema" CdmEntityContainer="SchemaInformation">

    <cs:EntitySetMapping Name="Tables" StoreEntitySet="STables" TypeName="Store.Table">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="CatalogName" ColumnName="CatalogName" />
      <cs:ScalarProperty Name="SchemaName" ColumnName="SchemaName" />
      <cs:ScalarProperty Name="Name" ColumnName="Name" />
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="TableColumns" StoreEntitySet="STableColumns" TypeName="Store.Column">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="Name" ColumnName="Name" />
      <cs:ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
      <cs:ScalarProperty Name="IsNullable" ColumnName="IsNullable" />
      <cs:ComplexProperty Name="ColumnType">
        <cs:ScalarProperty Name="TypeName" ColumnName="TypeName" />
        <cs:ScalarProperty Name="MaxLength" ColumnName="MaxLength" />
        <cs:ScalarProperty Name="DateTimePrecision" ColumnName="DateTimePrecision" />
        <cs:ScalarProperty Name="Precision" ColumnName="Precision" />
        <cs:ScalarProperty Name="Scale" ColumnName="Scale" />
        <cs:ComplexProperty Name="Collation">
          <cs:ScalarProperty Name="CatalogName" ColumnName="CollationCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="CollationSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="CollationName" />
        </cs:ComplexProperty>
        <cs:ComplexProperty Name="CharacterSet">
          <cs:ScalarProperty Name="CatalogName" ColumnName="CharacterSetCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="CharacterSetSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="CharacterSetName" />
        </cs:ComplexProperty>
        <cs:ScalarProperty Name="IsMultiSet" ColumnName="IsMultiSet" />
      </cs:ComplexProperty>
      <cs:ScalarProperty Name="IsIdentity" ColumnName="IsIdentity" />
      <cs:ScalarProperty Name="IsStoreGenerated" ColumnName="IsStoreGenerated" />
      <cs:ScalarProperty Name="Default" ColumnName="Default" />
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="Views" StoreEntitySet="SViews" TypeName="Store.View">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="CatalogName" ColumnName="CatalogName" />
      <cs:ScalarProperty Name="SchemaName" ColumnName="SchemaName" />
      <cs:ScalarProperty Name="Name" ColumnName="Name" />
      <cs:ScalarProperty Name="ViewDefinition" ColumnName="ViewDefinition" />
      <cs:ScalarProperty Name="IsUpdatable" ColumnName="IsUpdatable" />
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="ViewColumns" StoreEntitySet="SViewColumns" TypeName="Store.Column">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="Name" ColumnName="Name" />
      <cs:ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
      <cs:ScalarProperty Name="IsNullable" ColumnName="IsNullable" />
      <cs:ComplexProperty Name="ColumnType">
        <cs:ScalarProperty Name="TypeName" ColumnName="TypeName" />
        <cs:ScalarProperty Name="MaxLength" ColumnName="MaxLength" />
        <cs:ScalarProperty Name="Precision" ColumnName="Precision" />
        <cs:ScalarProperty Name="DateTimePrecision" ColumnName="DateTimePrecision" />
        <cs:ScalarProperty Name="Scale" ColumnName="Scale" />
        <cs:ComplexProperty Name="Collation">
          <cs:ScalarProperty Name="CatalogName" ColumnName="CollationCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="CollationSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="CollationName" />
        </cs:ComplexProperty>
        <cs:ComplexProperty Name="CharacterSet">
          <cs:ScalarProperty Name="CatalogName" ColumnName="CharacterSetCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="CharacterSetSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="CharacterSetName" />
        </cs:ComplexProperty>
        <cs:ScalarProperty Name="IsMultiSet" ColumnName="IsMultiSet" />
      </cs:ComplexProperty>
      <cs:ScalarProperty Name="IsIdentity" ColumnName="IsIdentity" />
      <cs:ScalarProperty Name="IsStoreGenerated" ColumnName="IsStoreGenerated" />
      <cs:ScalarProperty Name="Default" ColumnName="Default" />
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="Functions" TypeName="Store.ScalarFunction" StoreEntitySet="SFunctions">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="CatalogName" ColumnName="CatalogName" />
      <cs:ScalarProperty Name="SchemaName" ColumnName="SchemaName" />
      <cs:ScalarProperty Name="Name" ColumnName="Name" />
      <cs:ComplexProperty Name="ReturnType">
        <cs:ScalarProperty Name="TypeName" ColumnName="ReturnTypeName" />
        <cs:ScalarProperty Name="MaxLength" ColumnName="ReturnMaxLength" />
        <cs:ScalarProperty Name="Precision" ColumnName="ReturnPrecision" />
        <cs:ScalarProperty Name="DateTimePrecision" ColumnName="ReturnDateTimePrecision" />
        <cs:ScalarProperty Name="Scale" ColumnName="ReturnScale" />
        <cs:ComplexProperty Name="Collation">
          <cs:ScalarProperty Name="CatalogName" ColumnName="ReturnCollationCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="ReturnCollationSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="ReturnCollationName" />
        </cs:ComplexProperty>
        <cs:ComplexProperty Name="CharacterSet">
          <cs:ScalarProperty Name="CatalogName" ColumnName="ReturnCharacterSetCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="ReturnCharacterSetSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="ReturnCharacterSetName" />
        </cs:ComplexProperty>
        <cs:ScalarProperty Name="IsMultiSet" ColumnName="ReturnIsMultiSet" />
      </cs:ComplexProperty>
      <cs:ScalarProperty Name="IsAggregate" ColumnName="IsAggregate" />
      <cs:ScalarProperty Name="IsBuiltIn" ColumnName="IsBuiltIn" />
      <cs:ScalarProperty Name="IsNiladic" ColumnName="IsNiladic" />
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="FunctionParameters" TypeName="Store.Parameter" StoreEntitySet="SFunctionParameters">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="Name" ColumnName="Name" />
      <cs:ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
      <cs:ComplexProperty Name="ParameterType">
        <cs:ScalarProperty Name="TypeName" ColumnName="TypeName" />
        <cs:ScalarProperty Name="MaxLength" ColumnName="MaxLength" />
        <cs:ScalarProperty Name="DateTimePrecision" ColumnName="DateTimePrecision" />
        <cs:ScalarProperty Name="Precision" ColumnName="Precision" />
        <cs:ScalarProperty Name="Scale" ColumnName="Scale" />
        <cs:ComplexProperty Name="Collation">
          <cs:ScalarProperty Name="CatalogName" ColumnName="CollationCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="CollationSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="CollationName" />
        </cs:ComplexProperty>
        <cs:ComplexProperty Name="CharacterSet">
          <cs:ScalarProperty Name="CatalogName" ColumnName="CharacterSetCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="CharacterSetSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="CharacterSetName" />
        </cs:ComplexProperty>
        <cs:ScalarProperty Name="IsMultiSet" ColumnName="IsMultiSet" />
      </cs:ComplexProperty>
      <cs:ScalarProperty Name="Mode" ColumnName="Mode" />
      <cs:ScalarProperty Name="Default" ColumnName="Default" />
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="Procedures" TypeName="Store.Procedure" StoreEntitySet="SProcedures">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="CatalogName" ColumnName="CatalogName" />
      <cs:ScalarProperty Name="SchemaName" ColumnName="SchemaName" />
      <cs:ScalarProperty Name="Name" ColumnName="Name" />
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="ProcedureParameters" TypeName="Store.Parameter" StoreEntitySet="SProcedureParameters">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="Name" ColumnName="Name" />
      <cs:ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
      <cs:ComplexProperty Name="ParameterType">
        <cs:ScalarProperty Name="TypeName" ColumnName="TypeName" />
        <cs:ScalarProperty Name="MaxLength" ColumnName="MaxLength" />
        <cs:ScalarProperty Name="DateTimePrecision" ColumnName="DateTimePrecision" />
        <cs:ScalarProperty Name="Precision" ColumnName="Precision" />
        <cs:ScalarProperty Name="Scale" ColumnName="Scale" />
        <cs:ComplexProperty Name="Collation">
          <cs:ScalarProperty Name="CatalogName" ColumnName="CollationCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="CollationSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="CollationName" />
        </cs:ComplexProperty>
        <cs:ComplexProperty Name="CharacterSet">
          <cs:ScalarProperty Name="CatalogName" ColumnName="CharacterSetCatalog" />
          <cs:ScalarProperty Name="SchemaName" ColumnName="CharacterSetSchema" />
          <cs:ScalarProperty Name="Name" ColumnName="CharacterSetName" />
        </cs:ComplexProperty>
        <cs:ScalarProperty Name="IsMultiSet" ColumnName="IsMultiSet" />
      </cs:ComplexProperty>
      <cs:ScalarProperty Name="Mode" ColumnName="Mode" />
      <cs:ScalarProperty Name="Default" ColumnName="Default" />
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="TableConstraints" >
      <cs:EntityTypeMapping TypeName="IsTypeOf(Store.Constraint)">
        <cs:MappingFragment StoreEntitySet="SConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:ScalarProperty Name="Name" ColumnName="Name" />
          <cs:ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <cs:ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
        </cs:MappingFragment>
      </cs:EntityTypeMapping>
      <cs:EntityTypeMapping TypeName="Store.UniqueConstraint">
          <cs:MappingFragment StoreEntitySet="SConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:Condition ColumnName="ConstraintType" Value="UNIQUE"/>
        </cs:MappingFragment>
      </cs:EntityTypeMapping>
      <cs:EntityTypeMapping TypeName="Store.CheckConstraint">
        <cs:MappingFragment StoreEntitySet="SConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:Condition ColumnName="ConstraintType" Value="CHECK"/>
        </cs:MappingFragment>
        <cs:MappingFragment StoreEntitySet="SCheckConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:ScalarProperty Name="Expression" ColumnName="Expression" />
        </cs:MappingFragment>
      </cs:EntityTypeMapping>
      <cs:EntityTypeMapping TypeName="Store.PrimaryKeyConstraint">
        <cs:MappingFragment StoreEntitySet="SConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:Condition ColumnName="ConstraintType" Value="PRIMARY KEY"/>
        </cs:MappingFragment>
      </cs:EntityTypeMapping>
      <cs:EntityTypeMapping TypeName="Store.ForeignKeyConstraint">
        <cs:MappingFragment StoreEntitySet="SConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:Condition ColumnName="ConstraintType" Value="FOREIGN KEY"/>
        </cs:MappingFragment>
        <cs:MappingFragment StoreEntitySet="SForeignKeyConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:ScalarProperty Name="UpdateRule" ColumnName="UpdateRule" />
          <cs:ScalarProperty Name="DeleteRule" ColumnName="DeleteRule" />
        </cs:MappingFragment>
      </cs:EntityTypeMapping>
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="ViewConstraints" >
      <cs:EntityTypeMapping TypeName="Store.UniqueConstraint" >
        <cs:MappingFragment StoreEntitySet="SViewConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:ScalarProperty Name="Name" ColumnName="Name" />
          <cs:ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <cs:ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
          <cs:Condition ColumnName="ConstraintType" Value="UNIQUE"/>
        </cs:MappingFragment>
      </cs:EntityTypeMapping>
      <cs:EntityTypeMapping TypeName="Store.CheckConstraint" >
        <cs:MappingFragment StoreEntitySet="SViewConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:ScalarProperty Name="Name" ColumnName="Name" />
          <cs:ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <cs:ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
          <cs:ScalarProperty Name="Expression" ColumnName="Expression" />
          <cs:Condition ColumnName="ConstraintType" Value="CHECK"/>
        </cs:MappingFragment>
      </cs:EntityTypeMapping>
      <cs:EntityTypeMapping TypeName="Store.PrimaryKeyConstraint" >
        <cs:MappingFragment StoreEntitySet="SViewConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:ScalarProperty Name="Name" ColumnName="Name" />
          <cs:ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <cs:ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
          <cs:Condition ColumnName="ConstraintType" Value="PRIMARY KEY"/>
        </cs:MappingFragment>
      </cs:EntityTypeMapping>
      <cs:EntityTypeMapping TypeName="Store.ForeignKeyConstraint" >
        <cs:MappingFragment StoreEntitySet="SViewConstraints">
          <cs:ScalarProperty Name="Id" ColumnName="Id" />
          <cs:ScalarProperty Name="Name" ColumnName="Name" />
          <cs:ScalarProperty Name="IsDeferrable" ColumnName="IsDeferrable" />
          <cs:ScalarProperty Name="IsInitiallyDeferred" ColumnName="IsInitiallyDeferred" />
          <cs:ScalarProperty Name="UpdateRule" ColumnName="UpdateRule" />
          <cs:ScalarProperty Name="DeleteRule" ColumnName="DeleteRule" />
          <cs:Condition ColumnName="ConstraintType" Value="FOREIGN KEY"/>
        </cs:MappingFragment>
      </cs:EntityTypeMapping>
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="TableForeignKeys" StoreEntitySet="SForeignKeys" TypeName="Store.ForeignKey">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
    </cs:EntitySetMapping>

    <cs:EntitySetMapping Name="ViewForeignKeys" StoreEntitySet="SViewForeignKeys" TypeName="Store.ForeignKey">
      <cs:ScalarProperty Name="Id" ColumnName="Id" />
      <cs:ScalarProperty Name="Ordinal" ColumnName="Ordinal" />
    </cs:EntitySetMapping>
    
    <cs:AssociationSetMapping Name="TableTableColumns" StoreEntitySet="STableColumns" TypeName="Store.TableOrViewColumn">
      <cs:EndProperty Name="Parent">
        <cs:ScalarProperty Name="Id" ColumnName="ParentId" />
      </cs:EndProperty>
      <cs:EndProperty Name="Column">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="ViewViewColumns" StoreEntitySet="SViewColumns" TypeName="Store.TableOrViewColumn">
      <cs:EndProperty Name="Parent">
        <cs:ScalarProperty Name="Id" ColumnName="ParentId" />
      </cs:EndProperty>
      <cs:EndProperty Name="Column">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="TableTableConstraints" StoreEntitySet="SConstraints" TypeName="Store.TableOrViewConstraint">
      <cs:EndProperty Name="Parent">
        <cs:ScalarProperty Name="Id" ColumnName="ParentId" />
      </cs:EndProperty>
      <cs:EndProperty Name="Constraint">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="TableConstraintColumns" StoreEntitySet="SConstraintColumns" TypeName="Store.TableOrViewConstraintColumn">
      <cs:EndProperty Name="Constraint">
        <cs:ScalarProperty Name="Id" ColumnName="ConstraintId" />
      </cs:EndProperty>
      <cs:EndProperty Name="Column">
        <cs:ScalarProperty Name="Id" ColumnName="ColumnId" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="TableConstraintForeignKeys" StoreEntitySet="SForeignKeys" TypeName="Store.ConstraintForeignKey">
      <cs:EndProperty Name="Constraint">
        <cs:ScalarProperty Name="Id" ColumnName="ConstraintId" />
      </cs:EndProperty>
      <cs:EndProperty Name="ForeignKey">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="ToTableForeignKeyColumns" StoreEntitySet="SForeignKeys" TypeName="Store.ToForeignKeyColumn">
      <cs:EndProperty Name="ForeignKey">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
      <cs:EndProperty Name="Column">
        <cs:ScalarProperty Name="Id" ColumnName="ToColumnId" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="FromTableForeignKeyColumns" StoreEntitySet="SForeignKeys" TypeName="Store.FromForeignKeyColumn">
      <cs:EndProperty Name="ForeignKey">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
      <cs:EndProperty Name="Column">
        <cs:ScalarProperty Name="Id" ColumnName="FromColumnId" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="ViewViewConstraints" StoreEntitySet="SViewConstraints" TypeName="Store.TableOrViewConstraint">
      <cs:EndProperty Name="Parent">
        <cs:ScalarProperty Name="Id" ColumnName="ParentId" />
      </cs:EndProperty>
      <cs:EndProperty Name="Constraint">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="ViewConstraintColumns" StoreEntitySet="SViewConstraintColumns" TypeName="Store.TableOrViewConstraintColumn">
      <cs:EndProperty Name="Constraint">
        <cs:ScalarProperty Name="Id" ColumnName="ConstraintId" />
      </cs:EndProperty>
      <cs:EndProperty Name="Column">
        <cs:ScalarProperty Name="Id" ColumnName="ColumnId" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="ViewConstraintForeignKeys" StoreEntitySet="SViewForeignKeys" TypeName="Store.ConstraintForeignKey">
      <cs:EndProperty Name="Constraint">
        <cs:ScalarProperty Name="Id" ColumnName="ConstraintId" />
      </cs:EndProperty>
      <cs:EndProperty Name="ForeignKey">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="ToViewForeignKeyColumns" StoreEntitySet="SViewForeignKeys" TypeName="Store.ToForeignKeyColumn">
      <cs:EndProperty Name="ForeignKey">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
      <cs:EndProperty Name="Column">
        <cs:ScalarProperty Name="Id" ColumnName="ToColumnId" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="FromViewForeignKeyColumns" StoreEntitySet="SViewForeignKeys" TypeName="Store.FromForeignKeyColumn">
      <cs:EndProperty Name="ForeignKey">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
      <cs:EndProperty Name="Column">
        <cs:ScalarProperty Name="Id" ColumnName="FromColumnId" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="FunctionFunctionParameters" StoreEntitySet="SFunctionParameters" TypeName="Store.RoutineParameter">
      <cs:EndProperty Name="Routine">
        <cs:ScalarProperty Name="Id" ColumnName="ParentId" />
      </cs:EndProperty>
      <cs:EndProperty Name="Parameter">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

    <cs:AssociationSetMapping Name="ProcedureProcedureParameters" StoreEntitySet="SProcedureParameters" TypeName="Store.RoutineParameter">
      <cs:EndProperty Name="Routine">
        <cs:ScalarProperty Name="Id" ColumnName="ParentId" />
      </cs:EndProperty>
      <cs:EndProperty Name="Parameter">
        <cs:ScalarProperty Name="Id" ColumnName="Id" />
      </cs:EndProperty>
    </cs:AssociationSetMapping>

  </cs:EntityContainerMapping>

</Mapping>ę<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="SqlClient" Provider="System.Data.SqlClient" ProviderManifestToken="2000" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
  <EntityContainer Name="Schema">
    <EntitySet Name="STables" EntityType="Self.Table">
      <DefiningQuery>
        SELECT
        quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) [Id]
        ,   TABLE_CATALOG [CatalogName]
        ,   TABLE_SCHEMA [SchemaName]
        ,   TABLE_NAME    [Name]
        FROM
        INFORMATION_SCHEMA.TABLES
        WHERE
        TABLE_TYPE = 'BASE TABLE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="STableColumns" EntityType="Self.TableColumn">
      <DefiningQuery>
        SELECT
        quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
        ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) [ParentId]
        ,   c.COLUMN_NAME   [Name]
        ,   CAST(c.ORDINAL_POSITION as integer) as [Ordinal]
        ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
        ,   CASE
        WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and c.CHARACTER_MAXIMUM_LENGTH = -1 THEN c.DATA_TYPE + '(max)'
        ELSE c.DATA_TYPE
        END as [TypeName]
        ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        ,   CAST(c.NUMERIC_PRECISION as integer)  [Precision]
        ,   CAST(c.DATETIME_PRECISION as integer) [DateTimePrecision]
        ,   CAST(c.NUMERIC_SCALE as integer)      [Scale]
        ,   c.COLLATION_CATALOG [CollationCatalog]
        ,   c.COLLATION_SCHEMA [CollationSchema]
        ,   c.COLLATION_NAME [CollationName]
        ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        ,   c.CHARACTER_SET_NAME [CharacterSetName]
        ,   CAST(0 as bit) as [IsMultiSet]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
        , c.COLUMN_DEFAULT as [Default]
        FROM
        INFORMATION_SCHEMA.COLUMNS c
        INNER JOIN
        INFORMATION_SCHEMA.TABLES t ON
        c.TABLE_CATALOG = t.TABLE_CATALOG AND
        c.TABLE_SCHEMA = t.TABLE_SCHEMA   AND
        c.TABLE_NAME = t.TABLE_NAME       AND
        t.TABLE_TYPE = 'BASE TABLE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViews" EntityType="Self.View">
      <DefiningQuery>
        SELECT
        quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) [Id]
        ,   TABLE_CATALOG             [CatalogName]
        ,   TABLE_SCHEMA              [SchemaName]
        ,   TABLE_NAME                [Name]
        ,   VIEW_DEFINITION           [ViewDefinition]
        ,   CAST( CASE IS_UPDATABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsUpdatable]
        FROM
        INFORMATION_SCHEMA.VIEWS
        WHERE
        NOT (TABLE_SCHEMA = 'dbo'
        AND TABLE_NAME in('syssegments', 'sysconstraints')
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewColumns" EntityType="Self.ViewColumn">
      <DefiningQuery>
        SELECT
        quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
        ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME)                             [ParentId]
        ,   c.COLUMN_NAME   [Name]
        ,   CAST(c.ORDINAL_POSITION as integer) as [Ordinal]
        ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
        ,   CASE
        WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        c.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        c.DATA_TYPE + '(max)'
        ELSE
        c.DATA_TYPE
        END
        as [TypeName]
        ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        ,   CAST(c.NUMERIC_PRECISION as integer)  [Precision]
        ,   CAST(c.DATETIME_PRECISION as integer) [DateTimePrecision]
        ,   CAST(c.NUMERIC_SCALE as integer)      [Scale]
        ,   c.COLLATION_CATALOG [CollationCatalog]
        ,   c.COLLATION_SCHEMA [CollationSchema]
        ,   c.COLLATION_NAME [CollationName]
        ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        ,   c.CHARACTER_SET_NAME [CharacterSetName]
        ,   CAST(0 as bit) as [IsMultiSet]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
        ,   c.COLUMN_DEFAULT [Default]
        FROM
        INFORMATION_SCHEMA.COLUMNS c
        INNER JOIN
        INFORMATION_SCHEMA.VIEWS v ON
        c.TABLE_CATALOG = v.TABLE_CATALOG AND
        c.TABLE_SCHEMA = v.TABLE_SCHEMA AND
        c.TABLE_NAME = v.TABLE_NAME
        WHERE
        NOT (v.TABLE_SCHEMA = 'dbo'
        AND v.TABLE_NAME in('syssegments', 'sysconstraints')
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctions" EntityType="Self.Function">
      <DefiningQuery>
        SELECT
        quotename(SPECIFIC_SCHEMA) + quotename(SPECIFIC_NAME) [Id]
        , SPECIFIC_CATALOG         [CatalogName]
        , SPECIFIC_SCHEMA          [SchemaName]
        , SPECIFIC_NAME            [Name]
        ,   CASE
        WHEN DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        CHARACTER_MAXIMUM_LENGTH = -1 THEN
        DATA_TYPE + '(max)'
        ELSE
        DATA_TYPE
        END [ReturnTypeName]
        , CHARACTER_MAXIMUM_LENGTH [ReturnMaxLength]
        , CAST(NUMERIC_PRECISION as integer)  [ReturnPrecision]
        , CAST(DATETIME_PRECISION as integer) [ReturnDateTimePrecision]
        , CAST(NUMERIC_SCALE as integer)      [ReturnScale]
        , COLLATION_CATALOG        [ReturnCollationCatalog]
        , COLLATION_SCHEMA         [ReturnCollationSchema]
        , COLLATION_NAME           [ReturnCollationName]
        , CHARACTER_SET_CATALOG    [ReturnCharacterSetCatalog]
        , CHARACTER_SET_SCHEMA     [ReturnCharacterSetSchema]
        , CHARACTER_SET_NAME       [ReturnCharacterSetName]
        , CAST(0 as bit) as        [ReturnIsMultiSet]
        , CAST(0 as bit) as [IsAggregate]
        , CAST(0 as bit) as [IsBuiltIn]
        , CAST(0 as bit) as [IsNiladic]
        , CAST( (CASE WHEN DATA_TYPE = 'TABLE' THEN 1 ELSE 0 END) as bit ) as [IsTvf]
        FROM
        INFORMATION_SCHEMA.ROUTINES
        WHERE
        ROUTINE_TYPE = 'FUNCTION'
        AND NOT (
                  ROUTINE_SCHEMA = 'dbo'
                  AND ROUTINE_NAME LIKE 'dt[_]%'
                  AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8
                )

      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctionParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        quotename(f.SPECIFIC_SCHEMA) + quotename(f.SPECIFIC_NAME) + quotename(f.PARAMETER_NAME) [Id]
        , quotename(f.SPECIFIC_SCHEMA) + quotename(f.SPECIFIC_NAME) [ParentId]
        , CASE -- trim off the @ symbol
        WHEN f.PARAMETER_NAME is null THEN NULL
        ELSE SUBSTRING(f.PARAMETER_NAME, 2, LEN(f.PARAMETER_NAME) )
        END   [Name]
        , CAST(f.ORDINAL_POSITION as integer) as [Ordinal]
        , CASE
        WHEN f.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        f.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        f.DATA_TYPE + '(max)'
        ELSE
        f.DATA_TYPE
        END [TypeName]
        , f.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        , CAST(f.NUMERIC_PRECISION as integer)  [Precision]
        , CAST(f.DATETIME_PRECISION as integer) [DateTimePrecision]
        , CAST(f.NUMERIC_SCALE as integer)      [Scale]
        , f.COLLATION_CATALOG [CollationCatalog]
        , f.COLLATION_SCHEMA [CollationSchema]
        , f.COLLATION_NAME [CollationName]
        , f.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        , f.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        , f.CHARACTER_SET_NAME [CharacterSetName]
        , CAST(0 as bit) as [IsMultiSet]
        , f.PARAMETER_MODE   [Mode]
        , CAST(NULL as ntext) [Default]
        FROM
        INFORMATION_SCHEMA.PARAMETERS f
        INNER JOIN INFORMATION_SCHEMA.ROUTINES r ON
        f.SPECIFIC_SCHEMA = r.SPECIFIC_SCHEMA AND
        f.SPECIFIC_NAME = r.SPECIFIC_NAME AND
        r.ROUTINE_TYPE = 'FUNCTION'
        WHERE
        f.IS_RESULT = 'NO'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctionReturnTableColumns" EntityType="Self.FunctionReturnTableColumn">
      <DefiningQuery>
        SELECT
        quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
        ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) [ParentId]
        ,   c.COLUMN_NAME  [Name]
        ,   CAST(c.ORDINAL_POSITION as integer) [Ordinal]
        ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
        ,   CASE
        WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and c.CHARACTER_MAXIMUM_LENGTH = -1 THEN c.DATA_TYPE + '(max)'
        ELSE c.DATA_TYPE
        END as [TypeName]
        ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        ,   CAST(c.NUMERIC_PRECISION as integer) [Precision]
        ,   CAST(c.DATETIME_PRECISION as integer)[DateTimePrecision]
        ,   CAST(c.NUMERIC_SCALE as integer) [Scale]
        ,   c.COLLATION_CATALOG [CollationCatalog]
        ,   c.COLLATION_SCHEMA [CollationSchema]
        ,   c.COLLATION_NAME [CollationName]
        ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        ,   c.CHARACTER_SET_NAME [CharacterSetName]
        ,   CAST(0 as bit) as [IsMultiSet]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
        , c.COLUMN_DEFAULT as [Default]
        FROM
        INFORMATION_SCHEMA.ROUTINE_COLUMNS c
        INNER JOIN
        INFORMATION_SCHEMA.ROUTINES f ON
        c.TABLE_CATALOG = f.SPECIFIC_CATALOG AND
        c.TABLE_SCHEMA = f.SPECIFIC_SCHEMA   AND
        c.TABLE_NAME = f.SPECIFIC_NAME
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedures" EntityType="Self.Procedure">
      <DefiningQuery>
        SELECT
        quotename(SPECIFIC_SCHEMA) + quotename(SPECIFIC_NAME) [Id]
        , SPECIFIC_CATALOG         [CatalogName]
        , SPECIFIC_SCHEMA          [SchemaName]
        , SPECIFIC_NAME            [Name]
        FROM
        INFORMATION_SCHEMA.ROUTINES
        WHERE
        NOT (ROUTINE_SCHEMA = 'dbo'
        AND ROUTINE_NAME LIKE 'dt[_]%'
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
        AND (DATA_TYPE != 'TABLE' OR DATA_TYPE is null)
        AND ROUTINE_TYPE = 'PROCEDURE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedureParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        quotename(p.SPECIFIC_SCHEMA) + quotename(p.SPECIFIC_NAME) + quotename(p.PARAMETER_NAME) [Id]
        , quotename(p.SPECIFIC_SCHEMA) + quotename(p.SPECIFIC_NAME)                              [ParentId]
        , CASE -- trim off the @ symbol
        WHEN p.PARAMETER_NAME is null THEN NULL
        ELSE SUBSTRING(p.PARAMETER_NAME, 2, LEN(p.PARAMETER_NAME) )
        END   [Name]
        , CAST(p.ORDINAL_POSITION as integer) as [Ordinal]
        , CASE
        WHEN p.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        p.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        p.DATA_TYPE + '(max)'
        ELSE
        p.DATA_TYPE
        END [TypeName]
        , p.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        , CAST(p.NUMERIC_PRECISION as integer)  [Precision]
        , CAST(p.DATETIME_PRECISION as integer) [DateTimePrecision]
        , CAST(p.NUMERIC_SCALE as integer)      [Scale]
        , p.COLLATION_CATALOG [CollationCatalog]
        , p.COLLATION_SCHEMA [CollationSchema]
        , p.COLLATION_NAME [CollationName]
        , p.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        , p.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        , p.CHARACTER_SET_NAME [CharacterSetName]
        , CAST(0 as bit) as [IsMultiSet]
        , p.PARAMETER_MODE   [Mode]
        , CAST(NULL as ntext) [Default]
        FROM
        INFORMATION_SCHEMA.PARAMETERS p
        INNER JOIN INFORMATION_SCHEMA.ROUTINES r ON
        p.SPECIFIC_SCHEMA = r.SPECIFIC_SCHEMA AND
        p.SPECIFIC_NAME = r.SPECIFIC_NAME AND
        r.ROUTINE_TYPE = 'PROCEDURE'
        WHERE
        p.IS_RESULT = 'NO'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraints" EntityType="Self.Constraint">
      <DefiningQuery>
        SELECT
        quotename(tc.CONSTRAINT_SCHEMA) + quotename(tc.CONSTRAINT_NAME) [Id]
        , quotename(tc.TABLE_SCHEMA) + quotename(tc.TABLE_NAME) [ParentId]
        ,   tc.CONSTRAINT_NAME [Name]
        ,   tc.CONSTRAINT_TYPE [ConstraintType]
        ,   CAST(CASE tc.IS_DEFERRABLE WHEN 'NO' THEN 0 ELSE 1 END as bit) [IsDeferrable]
        ,   CAST(CASE tc.INITIALLY_DEFERRED WHEN 'NO' THEN 0 ELSE 1 END as bit) [IsInitiallyDeferred]
        FROM
        INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
        WHERE tc.TABLE_NAME IS NOT NULL
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SCheckConstraints" EntityType="Self.CheckConstraint">
      <DefiningQuery>
        SELECT
        quotename(cc.CONSTRAINT_SCHEMA) + quotename(cc.CONSTRAINT_NAME) [Id]
        , cc.CHECK_CLAUSE [Expression]
        FROM
        INFORMATION_SCHEMA.CHECK_CONSTRAINTS cc
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraintColumns" EntityType="Self.ConstraintColumn">
      <DefiningQuery>
        SELECT
        quotename(CONSTRAINT_SCHEMA) + quotename(CONSTRAINT_NAME) [ConstraintId]
        ,   quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) + quotename(COLUMN_NAME) [ColumnId]
        FROM
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SForeignKeyConstraints" EntityType="Self.ForeignKeyConstraint">
      <DefiningQuery>
		  SELECT
		  quotename(rc.CONSTRAINT_SCHEMA) + quotename(rc.CONSTRAINT_NAME) [Id]
		  , CAST(rc.UPDATE_RULE as nvarchar(11)) [UpdateRule]
		  , CAST(rc.DELETE_RULE as nvarchar(11)) [DeleteRule]
		  FROM
		  INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
	  </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        quotename(FC.CONSTRAINT_SCHEMA) + quotename(FC.CONSTRAINT_NAME) + quotename(cast(FC.ORDINAL_POSITION as nvarchar(30))) [Id]
        ,   quotename(PC.TABLE_SCHEMA) + quotename(PC.TABLE_NAME) + quotename(PC.COLUMN_NAME) [ToColumnId]
        ,   quotename(FC.TABLE_SCHEMA) + quotename(FC.TABLE_NAME) + quotename(FC.COLUMN_NAME) [FromColumnId]
        ,   quotename(FC.CONSTRAINT_SCHEMA) + quotename(FC.CONSTRAINT_NAME) [ConstraintId]
        ,   CAST(FC.ORDINAL_POSITION as integer) as [Ordinal]
        FROM
        INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC
        INNER JOIN
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS PC /* PRIMARY KEY COLS*/
        ON       RC.UNIQUE_CONSTRAINT_SCHEMA = PC.CONSTRAINT_SCHEMA
        AND      RC.UNIQUE_CONSTRAINT_NAME    = PC.CONSTRAINT_NAME
        INNER JOIN
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS FC /* FOREIGN KEY COLS*/
        ON       RC.CONSTRAINT_SCHEMA = FC.CONSTRAINT_SCHEMA
        AND      RC.CONSTRAINT_NAME    = FC.CONSTRAINT_NAME
        AND      PC.ORDINAL_POSITION = FC.ORDINAL_POSITION
      </DefiningQuery>
    </EntitySet>


    <EntitySet Name="SViewConstraints" EntityType="Self.ViewConstraint">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))   [Id]
        , CAST(NULL as nvarchar(256)) [ParentId]
        , CAST(NULL as nvarchar(256)) [Name]
        , CAST(NULL as nvarchar(256)) [ConstraintType]
        , CAST(0 as bit) [IsDeferrable]
        , CAST(0 as bit) [IsInitiallyDeferred]
        , CAST(NULL as nvarchar(1)) [Expression]
        , CAST(NULL as nvarchar(11))  [UpdateRule]
        , CAST(NULL as nvarchar(11))  [DeleteRule]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewConstraintColumns" EntityType="Self.ConstraintColumn">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))     [ConstraintId]
        , CAST(NULL as nvarchar(1)) [ColumnId]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))    [Id]
        ,  CAST(NULL as nvarchar(1)) [ToColumnId]
        ,  CAST(NULL as nvarchar(1)) [FromColumnId]
        ,  CAST(NULL as nvarchar(1))   [ConstraintId]
        ,  0 [Ordinal]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <AssociationSet Name="STableTableColumns" Association="Self.TableTableColumn" >
      <End Role="Parent" EntitySet="STables"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>
    <AssociationSet Name="STableConstraints" Association="Self.TableTableConstraint" >
      <End Role="Parent" EntitySet="STables"/>
      <End Role="Constraint" EntitySet="SConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SConstraintConstraintColumns" Association="Self.ConstraintConstraintColumn" >
      <End Role="ConstraintColumn" EntitySet="SConstraintColumns"/>
      <End Role="Constraint" EntitySet="SConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SConstraintForeignKeys" Association="Self.ConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Constraint" EntitySet="SForeignKeyConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SFromForeignKeyColumns" Association="Self.FromForeignKeyColumn" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>
    <AssociationSet Name="SToForeignKeyColumns" Association="Self.ToForeignKeyColumn" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>

    <AssociationSet Name="SViewViewColumns" Association="Self.ViewViewColumn" >
      <End Role="Parent" EntitySet="SViews"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="SViewViewConstraints" Association="Self.ViewViewConstraint" >
      <End Role="Parent" EntitySet="SViews"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SViewConstraintConstraintColumns" Association="Self.ViewConstraintConstraintColumn" >
      <End Role="ConstraintColumn" EntitySet="SViewConstraintColumns"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SViewConstraintForeignKeys" Association="Self.ViewConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SFromForeignKeyViewColumns" Association="Self.FromForeignKeyViewColumn" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="SToForeignKeyViewColumns" Association="Self.ToForeignKeyViewColumn" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>

    <AssociationSet Name="FunctionFunctionParameters" Association="Self.FunctionFunctionParameter">
      <End Role="Function" EntitySet="SFunctions"/>
      <End Role="Parameter" EntitySet="SFunctionParameters"/>
    </AssociationSet>
    <AssociationSet Name="FunctionFunctionReturnTableColumns" Association="Self.FunctionFunctionReturnTableColumn" >
      <End Role="Function" EntitySet="SFunctions"/>
      <End Role="Column" EntitySet="SFunctionReturnTableColumns"/>
    </AssociationSet>
    <AssociationSet Name="ProcedureProcedureParameters" Association="Self.ProcedureProcedureParameter" >
      <End Role="Procedure" EntitySet="SProcedures"/>
      <End Role="Parameter" EntitySet="SProcedureParameters"/>
    </AssociationSet>

  </EntityContainer>

  <EntityType Name="Table">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256" />
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256" />
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256" />
  </EntityType>

  <EntityType Name="TableColumn" >
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="ParentId" Nullable="false" Type="ntext"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="ntext"/>
  </EntityType>

  <EntityType Name="View">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256" />
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256" />
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="ViewDefinition" Nullable="true" Type="ntext" />
    <Property Name="IsUpdatable" Nullable="false" Type="bit" />
  </EntityType>

  <EntityType Name="ViewColumn">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="ParentId" Nullable="false" Type="ntext"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="ntext"/>
  </EntityType>

  <EntityType Name="Function">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256"/>
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="ReturnTypeName" Type="nvarchar" MaxLength="256" />
    <Property Name="ReturnMaxLength" Type="int" />
    <Property Name="ReturnPrecision" Type="int" />
    <Property Name="ReturnDateTimePrecision" Type="int" />
    <Property Name="ReturnScale" Type="int" />
    <Property Name="ReturnCollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnIsMultiSet" Type="bit" />
    <Property Name="IsAggregate" Type="bit" />
    <Property Name="IsBuiltIn" Type="bit" />
    <Property Name="IsNiladic" Type="bit" />
    <Property Name="IsTvf" Nullable="false" Type="bit" />
  </EntityType>

  <EntityType Name="Procedure">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256"/>
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
  </EntityType>

  <EntityType Name="Parameter">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="ParentId" Nullable="false" Type="ntext"/>
    <Property Name="Name" Nullable="false" Type="ntext" />
    <Property Name="Ordinal" Nullable="false" Type="int"/>
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Nullable="true" Type="int" />
    <Property Name="Precision" Nullable="true" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Nullable="true" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="Mode" Type="nvarchar" MaxLength="16" />
    <Property Name="Default" Type="ntext" />
  </EntityType>

  <EntityType Name="FunctionReturnTableColumn" >
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="ParentId" Nullable="false" Type="ntext"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="ntext"/>
  </EntityType>

  <EntityType Name="Constraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="ParentId" Nullable="false" Type="ntext" />
    <Property Name="Name" Nullable="false" MaxLength="256" Type="nvarchar" />
    <Property Name="IsDeferrable" Nullable="false" Type="bit" />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="bit" />
    <Property Name="ConstraintType" Nullable="false" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <EntityType Name="CheckConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="Expression" Nullable="true" MaxLength="4000" Type="nvarchar" />
  </EntityType>

  <EntityType Name="ConstraintColumn">
    <Key>
      <PropertyRef Name="ConstraintId" />
      <PropertyRef Name="ColumnId" />
    </Key>
    <Property Name="ConstraintId" Nullable="false" Type="ntext" />
    <Property Name="ColumnId" Nullable="false" Type="ntext" />
  </EntityType>

  <EntityType Name="ForeignKeyConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="UpdateRule" Nullable="false" MaxLength="11" Type="nvarchar" />
    <Property Name="DeleteRule" Nullable="false" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <EntityType Name="ForeignKey">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="ConstraintId" Nullable="false" Type="ntext" />
    <Property Name="FromColumnId" Nullable="false" Type="ntext" />
    <Property Name="ToColumnId" Nullable="false" Type="ntext" />
  </EntityType>

  <EntityType Name="ViewConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="ParentId" Nullable="false" Type="ntext" />
    <Property Name="Name" Nullable="false" MaxLength="256" Type="nvarchar" />
    <Property Name="IsDeferrable" Nullable="false" Type="bit" />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="bit" />
    <Property Name="ConstraintType" Nullable="false" MaxLength="11" Type="nvarchar" />
    <Property Name="Expression" Nullable="true" MaxLength="4000" Type="nvarchar" />
    <Property Name="UpdateRule" Nullable="true" MaxLength="11" Type="nvarchar" />
    <Property Name="DeleteRule" Nullable="true" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <Association Name="TableTableConstraint">
    <End Type="Self.Table" Role="Parent" Multiplicity="1" />
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Constraint">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ConstraintConstraintColumn">
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ConstraintColumn" Role="ConstraintColumn" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ConstraintColumn">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ConstraintForeignKey">
    <End Type="Self.ForeignKeyConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FromForeignKeyColumn">
    <End Type="Self.TableColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="FromColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ToForeignKeyColumn">
    <End Type="Self.TableColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ToColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="TableTableColumn">
    <End Type="Self.Table" Role="Parent" Multiplicity="1" />
    <End Type="Self.TableColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewViewColumn">
    <End Type="Self.View" Role="Parent" Multiplicity="1" />
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FunctionFunctionParameter">
    <End Type="Self.Function" Role="Function" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Function">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Parameter">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FunctionFunctionReturnTableColumn">
    <End Type="Self.Function" Role="Function" Multiplicity="1" />
    <End Type="Self.FunctionReturnTableColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Function">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ProcedureProcedureParameter">
    <End Type="Self.Procedure" Role="Procedure" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Procedure">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Parameter">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewViewConstraint">
    <End Type="Self.View" Role="Parent" Multiplicity="1" />
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Constraint">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewConstraintConstraintColumn">
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ConstraintColumn" Role="ConstraintColumn" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ConstraintColumn">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewConstraintForeignKey">
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FromForeignKeyViewColumn">
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="FromColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ToForeignKeyViewColumn">
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ToColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

</Schema>G�<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="SqlClient" Provider="System.Data.SqlClient" ProviderManifestToken="2000" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
  <EntityContainer Name="Schema">
    <EntitySet Name="STables" EntityType="Self.Table">
      <DefiningQuery>
        SELECT
        quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) [Id]
        ,   TABLE_CATALOG [CatalogName]
        ,   TABLE_SCHEMA [SchemaName]
        ,   TABLE_NAME    [Name]
        FROM
        INFORMATION_SCHEMA.TABLES
        WHERE
        TABLE_TYPE = 'BASE TABLE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="STableColumns" EntityType="Self.TableColumn">
      <DefiningQuery>
        SELECT
        quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
        ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME)                             [ParentId]
        ,   c.COLUMN_NAME   [Name]
        ,   CAST(c.ORDINAL_POSITION as integer) as [Ordinal]
        ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
        ,   CASE
        WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        c.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        c.DATA_TYPE + '(max)'
        ELSE
        c.DATA_TYPE
        END
        as [TypeName]
        ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        ,   CAST(c.NUMERIC_PRECISION as integer)  [Precision]
        ,   CAST(c.DATETIME_PRECISION as integer) [DateTimePrecision]
        ,   CAST(c.NUMERIC_SCALE as integer)      [Scale]
        ,   c.COLLATION_CATALOG [CollationCatalog]
        ,   c.COLLATION_SCHEMA [CollationSchema]
        ,   c.COLLATION_NAME [CollationName]
        ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        ,   c.CHARACTER_SET_NAME [CharacterSetName]
        ,   CAST(0 as bit) as [IsMultiSet]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
        , c.COLUMN_DEFAULT as [Default]
        FROM
        INFORMATION_SCHEMA.COLUMNS c
        INNER JOIN
        INFORMATION_SCHEMA.TABLES t ON
        c.TABLE_CATALOG = t.TABLE_CATALOG AND
        c.TABLE_SCHEMA = t.TABLE_SCHEMA   AND
        c.TABLE_NAME = t.TABLE_NAME       AND
        t.TABLE_TYPE = 'BASE TABLE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViews" EntityType="Self.View">
      <DefiningQuery>
        SELECT
        quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) [Id]
        ,   TABLE_CATALOG             [CatalogName]
        ,   TABLE_SCHEMA              [SchemaName]
        ,   TABLE_NAME                [Name]
        ,   VIEW_DEFINITION           [ViewDefinition]
        ,   CAST( CASE IS_UPDATABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsUpdatable]
        FROM
        INFORMATION_SCHEMA.VIEWS
        WHERE
        NOT (TABLE_SCHEMA = 'dbo'
        AND TABLE_NAME in('syssegments', 'sysconstraints')
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewColumns" EntityType="Self.ViewColumn">
      <DefiningQuery>
        SELECT
        quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
        ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME)                             [ParentId]
        ,   c.COLUMN_NAME   [Name]
        ,   CAST(c.ORDINAL_POSITION as integer) as [Ordinal]
        ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
        ,   CASE
        WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        c.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        c.DATA_TYPE + '(max)'
        ELSE
        c.DATA_TYPE
        END
        as [TypeName]
        ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        ,   CAST(c.NUMERIC_PRECISION as integer)  [Precision]
        ,   CAST(c.DATETIME_PRECISION as integer) [DateTimePrecision]
        ,   CAST(c.NUMERIC_SCALE as integer)      [Scale]
        ,   c.COLLATION_CATALOG [CollationCatalog]
        ,   c.COLLATION_SCHEMA [CollationSchema]
        ,   c.COLLATION_NAME [CollationName]
        ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        ,   c.CHARACTER_SET_NAME [CharacterSetName]
        ,   CAST(0 as bit) as [IsMultiSet]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
        ,   c.COLUMN_DEFAULT [Default]
        FROM
        INFORMATION_SCHEMA.COLUMNS c
        INNER JOIN
        INFORMATION_SCHEMA.VIEWS v ON
        c.TABLE_CATALOG = v.TABLE_CATALOG AND
        c.TABLE_SCHEMA = v.TABLE_SCHEMA AND
        c.TABLE_NAME = v.TABLE_NAME
        WHERE
        NOT (v.TABLE_SCHEMA = 'dbo'
        AND v.TABLE_NAME in('syssegments', 'sysconstraints')
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctions" EntityType="Self.Function">
      <DefiningQuery>
        SELECT
        quotename(SPECIFIC_SCHEMA) + quotename(SPECIFIC_NAME) [Id]
        , SPECIFIC_CATALOG         [CatalogName]
        , SPECIFIC_SCHEMA          [SchemaName]
        , SPECIFIC_NAME            [Name]
        ,   CASE
        WHEN DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        CHARACTER_MAXIMUM_LENGTH = -1 THEN
        DATA_TYPE + '(max)'
        ELSE
        DATA_TYPE
        END [ReturnTypeName]
        , CHARACTER_MAXIMUM_LENGTH [ReturnMaxLength]
        , CAST(NUMERIC_PRECISION as integer)  [ReturnPrecision]
        , CAST(DATETIME_PRECISION as integer) [ReturnDateTimePrecision]
        , CAST(NUMERIC_SCALE as integer)      [ReturnScale]
        , COLLATION_CATALOG        [ReturnCollationCatalog]
        , COLLATION_SCHEMA         [ReturnCollationSchema]
        , COLLATION_NAME           [ReturnCollationName]
        , CHARACTER_SET_CATALOG    [ReturnCharacterSetCatalog]
        , CHARACTER_SET_SCHEMA     [ReturnCharacterSetSchema]
        , CHARACTER_SET_NAME       [ReturnCharacterSetName]
        , CAST(0 as bit) as        [ReturnIsMultiSet]
        , CAST(0 as bit) as [IsAggregate]
        , CAST(0 as bit) as [IsBuiltIn]
        , CAST(0 as bit) as [IsNiladic]
        FROM
        INFORMATION_SCHEMA.ROUTINES
        WHERE
        NOT (ROUTINE_SCHEMA = 'dbo'
        AND ROUTINE_NAME LIKE 'dt[_]%'
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
        AND (DATA_TYPE != 'TABLE' OR DATA_TYPE is null)
        AND ROUTINE_TYPE = 'FUNCTION'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctionParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        quotename(f.SPECIFIC_SCHEMA) + quotename(f.SPECIFIC_NAME) + quotename(f.PARAMETER_NAME) [Id]
        , quotename(f.SPECIFIC_SCHEMA) + quotename(f.SPECIFIC_NAME)                              [ParentId]
        , CASE -- trim off the @ symbol
        WHEN f.PARAMETER_NAME is null THEN NULL
        ELSE SUBSTRING(f.PARAMETER_NAME, 2, LEN(f.PARAMETER_NAME) )
        END   [Name]
        , CAST(f.ORDINAL_POSITION as integer) as [Ordinal]
        , CASE
        WHEN f.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        f.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        f.DATA_TYPE + '(max)'
        ELSE
        f.DATA_TYPE
        END [TypeName]
        , f.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        , CAST(f.NUMERIC_PRECISION as integer)  [Precision]
        , CAST(f.DATETIME_PRECISION as integer) [DateTimePrecision]
        , CAST(f.NUMERIC_SCALE as integer)      [Scale]
        , f.COLLATION_CATALOG [CollationCatalog]
        , f.COLLATION_SCHEMA [CollationSchema]
        , f.COLLATION_NAME [CollationName]
        , f.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        , f.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        , f.CHARACTER_SET_NAME [CharacterSetName]
        , CAST(0 as bit) as [IsMultiSet]
        , f.PARAMETER_MODE   [Mode]
        , CAST(NULL as ntext) [Default]
        FROM
        INFORMATION_SCHEMA.PARAMETERS f
        INNER JOIN INFORMATION_SCHEMA.ROUTINES r ON
        f.SPECIFIC_SCHEMA = r.SPECIFIC_SCHEMA AND
        f.SPECIFIC_NAME = r.SPECIFIC_NAME AND
        r.ROUTINE_TYPE = 'FUNCTION'
        WHERE
        f.IS_RESULT = 'NO'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedures" EntityType="Self.Procedure">
      <DefiningQuery>
        SELECT
        quotename(SPECIFIC_SCHEMA) + quotename(SPECIFIC_NAME) [Id]
        , SPECIFIC_CATALOG         [CatalogName]
        , SPECIFIC_SCHEMA          [SchemaName]
        , SPECIFIC_NAME            [Name]
        FROM
        INFORMATION_SCHEMA.ROUTINES
        WHERE
        NOT (ROUTINE_SCHEMA = 'dbo'
        AND ROUTINE_NAME LIKE 'dt[_]%'
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
        AND (DATA_TYPE != 'TABLE' OR DATA_TYPE is null)
        AND ROUTINE_TYPE = 'PROCEDURE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedureParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        quotename(p.SPECIFIC_SCHEMA) + quotename(p.SPECIFIC_NAME) + quotename(p.PARAMETER_NAME) [Id]
        , quotename(p.SPECIFIC_SCHEMA) + quotename(p.SPECIFIC_NAME)                              [ParentId]
        , CASE -- trim off the @ symbol
        WHEN p.PARAMETER_NAME is null THEN NULL
        ELSE SUBSTRING(p.PARAMETER_NAME, 2, LEN(p.PARAMETER_NAME) )
        END   [Name]
        , CAST(p.ORDINAL_POSITION as integer) as [Ordinal]
        , CASE
        WHEN p.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        p.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        p.DATA_TYPE + '(max)'
        ELSE
        p.DATA_TYPE
        END [TypeName]
        , p.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        , CAST(p.NUMERIC_PRECISION as integer)  [Precision]
        , CAST(p.DATETIME_PRECISION as integer) [DateTimePrecision]
        , CAST(p.NUMERIC_SCALE as integer)      [Scale]
        , p.COLLATION_CATALOG [CollationCatalog]
        , p.COLLATION_SCHEMA [CollationSchema]
        , p.COLLATION_NAME [CollationName]
        , p.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        , p.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        , p.CHARACTER_SET_NAME [CharacterSetName]
        , CAST(0 as bit) as [IsMultiSet]
        , p.PARAMETER_MODE   [Mode]
        , CAST(NULL as ntext) [Default]
        FROM
        INFORMATION_SCHEMA.PARAMETERS p
        INNER JOIN INFORMATION_SCHEMA.ROUTINES r ON
        p.SPECIFIC_SCHEMA = r.SPECIFIC_SCHEMA AND
        p.SPECIFIC_NAME = r.SPECIFIC_NAME AND
        r.ROUTINE_TYPE = 'PROCEDURE'
        WHERE
        p.IS_RESULT = 'NO'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraints" EntityType="Self.Constraint">
      <DefiningQuery>
        SELECT
        quotename(tc.CONSTRAINT_SCHEMA) + quotename(tc.CONSTRAINT_NAME) [Id]
        , quotename(tc.TABLE_SCHEMA) + quotename(tc.TABLE_NAME) [ParentId]
        ,   tc.CONSTRAINT_NAME [Name]
        ,   tc.CONSTRAINT_TYPE [ConstraintType]
        ,   CAST(CASE tc.IS_DEFERRABLE WHEN 'NO' THEN 0 ELSE 1 END as bit) [IsDeferrable]
        ,   CAST(CASE tc.INITIALLY_DEFERRED WHEN 'NO' THEN 0 ELSE 1 END as bit) [IsInitiallyDeferred]
        FROM
        INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
        WHERE tc.TABLE_NAME IS NOT NULL
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SCheckConstraints" EntityType="Self.CheckConstraint">
      <DefiningQuery>
        SELECT
        quotename(cc.CONSTRAINT_SCHEMA) + quotename(cc.CONSTRAINT_NAME) [Id]
        , cc.CHECK_CLAUSE [Expression]
        FROM
        INFORMATION_SCHEMA.CHECK_CONSTRAINTS cc
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraintColumns" EntityType="Self.ConstraintColumn">
      <DefiningQuery>
        SELECT
        quotename(CONSTRAINT_SCHEMA) + quotename(CONSTRAINT_NAME) [ConstraintId]
        ,   quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) + quotename(COLUMN_NAME) [ColumnId]
        FROM
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SForeignKeyConstraints" EntityType="Self.ForeignKeyConstraint">
      <DefiningQuery>
		  SELECT
		  quotename(rc.CONSTRAINT_SCHEMA) + quotename(rc.CONSTRAINT_NAME) [Id]
		  , CAST(rc.UPDATE_RULE as nvarchar(11)) [UpdateRule]
		  , CAST(rc.DELETE_RULE as nvarchar(11)) [DeleteRule]
		  FROM
		  INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
	  </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        quotename(FC.CONSTRAINT_SCHEMA) + quotename(FC.CONSTRAINT_NAME) + quotename(cast(FC.ORDINAL_POSITION as nvarchar(30))) [Id]
        ,   quotename(PC.TABLE_SCHEMA) + quotename(PC.TABLE_NAME) + quotename(PC.COLUMN_NAME) [ToColumnId]
        ,   quotename(FC.TABLE_SCHEMA) + quotename(FC.TABLE_NAME) + quotename(FC.COLUMN_NAME) [FromColumnId]
        ,   quotename(FC.CONSTRAINT_SCHEMA) + quotename(FC.CONSTRAINT_NAME) [ConstraintId]
        ,   CAST(FC.ORDINAL_POSITION as integer) as [Ordinal]
        FROM
        INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC
        INNER JOIN
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS PC /* PRIMARY KEY COLS*/
        ON       RC.UNIQUE_CONSTRAINT_SCHEMA = PC.CONSTRAINT_SCHEMA
        AND      RC.UNIQUE_CONSTRAINT_NAME    = PC.CONSTRAINT_NAME
        INNER JOIN
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS FC /* FOREIGN KEY COLS*/
        ON       RC.CONSTRAINT_SCHEMA = FC.CONSTRAINT_SCHEMA
        AND      RC.CONSTRAINT_NAME    = FC.CONSTRAINT_NAME
        AND      PC.ORDINAL_POSITION = FC.ORDINAL_POSITION
      </DefiningQuery>
    </EntitySet>


    <EntitySet Name="SViewConstraints" EntityType="Self.ViewConstraint">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))   [Id]
        , CAST(NULL as nvarchar(256)) [ParentId]
        , CAST(NULL as nvarchar(256)) [Name]
        , CAST(NULL as nvarchar(256)) [ConstraintType]
        , CAST(0 as bit) [IsDeferrable]
        , CAST(0 as bit) [IsInitiallyDeferred]
        , CAST(NULL as nvarchar(1)) [Expression]
        , CAST(NULL as nvarchar(11))  [UpdateRule]
        , CAST(NULL as nvarchar(11))  [DeleteRule]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewConstraintColumns" EntityType="Self.ConstraintColumn">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))     [ConstraintId]
        , CAST(NULL as nvarchar(1)) [ColumnId]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))    [Id]
        ,  CAST(NULL as nvarchar(1)) [ToColumnId]
        ,  CAST(NULL as nvarchar(1)) [FromColumnId]
        ,  CAST(NULL as nvarchar(1))   [ConstraintId]
        ,  0 [Ordinal]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <AssociationSet Name="STableTableColumns" Association="Self.TableTableColumn" >
      <End Role="Parent" EntitySet="STables"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>
    <AssociationSet Name="STableConstraints" Association="Self.TableTableConstraint" >
      <End Role="Parent" EntitySet="STables"/>
      <End Role="Constraint" EntitySet="SConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SConstraintConstraintColumns" Association="Self.ConstraintConstraintColumn" >
      <End Role="ConstraintColumn" EntitySet="SConstraintColumns"/>
      <End Role="Constraint" EntitySet="SConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SConstraintForeignKeys" Association="Self.ConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Constraint" EntitySet="SForeignKeyConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SFromForeignKeyColumns" Association="Self.FromForeignKeyColumn" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>
    <AssociationSet Name="SToForeignKeyColumns" Association="Self.ToForeignKeyColumn" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>

    <AssociationSet Name="SViewViewColumns" Association="Self.ViewViewColumn" >
      <End Role="Parent" EntitySet="SViews"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="SViewViewConstraints" Association="Self.ViewViewConstraint" >
      <End Role="Parent" EntitySet="SViews"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SViewConstraintConstraintColumns" Association="Self.ViewConstraintConstraintColumn" >
      <End Role="ConstraintColumn" EntitySet="SViewConstraintColumns"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SViewConstraintForeignKeys" Association="Self.ViewConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SFromForeignKeyViewColumns" Association="Self.FromForeignKeyViewColumn" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="SToForeignKeyViewColumns" Association="Self.ToForeignKeyViewColumn" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>

    <AssociationSet Name="FunctionFunctionParameters" Association="Self.FunctionFunctionParameter">
      <End Role="Function" EntitySet="SFunctions"/>
      <End Role="Parameter" EntitySet="SFunctionParameters"/>
    </AssociationSet>
    <AssociationSet Name="ProcedureProcedureParameters" Association="Self.ProcedureProcedureParameter" >
      <End Role="Procedure" EntitySet="SProcedures"/>
      <End Role="Parameter" EntitySet="SProcedureParameters"/>
    </AssociationSet>

  </EntityContainer>

  <EntityType Name="Table">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256" />
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256" />
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256" />
  </EntityType>

  <EntityType Name="TableColumn" >
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="ParentId" Nullable="false" Type="ntext"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="ntext"/>
  </EntityType>

  <EntityType Name="View">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256" />
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256" />
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="ViewDefinition" Nullable="true" Type="ntext" />
    <Property Name="IsUpdatable" Nullable="false" Type="bit" />
  </EntityType>

  <EntityType Name="ViewColumn">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="ParentId" Nullable="false" Type="ntext"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="ntext"/>
  </EntityType>

  <EntityType Name="Function">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256"/>
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="ReturnTypeName" Type="nvarchar" MaxLength="256" />
    <Property Name="ReturnMaxLength" Type="int" />
    <Property Name="ReturnPrecision" Type="int" />
    <Property Name="ReturnDateTimePrecision" Type="int" />
    <Property Name="ReturnScale" Type="int" />
    <Property Name="ReturnCollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnIsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsAggregate" Type="bit" />
    <Property Name="IsBuiltIn" Type="bit" />
    <Property Name="IsNiladic" Type="bit" />
  </EntityType>

  <EntityType Name="Procedure">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256"/>
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
  </EntityType>

  <EntityType Name="Parameter">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext"/>
    <Property Name="ParentId" Nullable="false" Type="ntext"/>
    <Property Name="Name" Nullable="false" Type="ntext" />
    <Property Name="Ordinal" Nullable="false" Type="int"/>
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Nullable="true" Type="int" />
    <Property Name="Precision" Nullable="true" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Nullable="true" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="Mode" Type="nvarchar" MaxLength="16" />
    <Property Name="Default" Type="ntext" />
  </EntityType>

  <EntityType Name="Constraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="ParentId" Nullable="false" Type="ntext" />
    <Property Name="Name" Nullable="false" MaxLength="256" Type="nvarchar" />
    <Property Name="IsDeferrable" Nullable="false" Type="bit" />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="bit" />
    <Property Name="ConstraintType" Nullable="false" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <EntityType Name="CheckConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="Expression" Nullable="true" MaxLength="4000" Type="nvarchar" />
  </EntityType>

  <EntityType Name="ConstraintColumn">
    <Key>
      <PropertyRef Name="ConstraintId" />
      <PropertyRef Name="ColumnId" />
    </Key>
    <Property Name="ConstraintId" Nullable="false" Type="ntext" />
    <Property Name="ColumnId" Nullable="false" Type="ntext" />
  </EntityType>

  <EntityType Name="ForeignKeyConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="UpdateRule" Nullable="false" MaxLength="11" Type="nvarchar" />
    <Property Name="DeleteRule" Nullable="false" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <EntityType Name="ForeignKey">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="ConstraintId" Nullable="false" Type="ntext" />
    <Property Name="FromColumnId" Nullable="false" Type="ntext" />
    <Property Name="ToColumnId" Nullable="false" Type="ntext" />
  </EntityType>

  <EntityType Name="ViewConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="ntext" />
    <Property Name="ParentId" Nullable="false" Type="ntext" />
    <Property Name="Name" Nullable="false" MaxLength="256" Type="nvarchar" />
    <Property Name="IsDeferrable" Nullable="false" Type="bit" />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="bit" />
    <Property Name="ConstraintType" Nullable="false" MaxLength="11" Type="nvarchar" />
    <Property Name="Expression" Nullable="true" MaxLength="4000" Type="nvarchar" />
    <Property Name="UpdateRule" Nullable="true" MaxLength="11" Type="nvarchar" />
    <Property Name="DeleteRule" Nullable="true" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <Association Name="TableTableConstraint">
    <End Type="Self.Table" Role="Parent" Multiplicity="1" />
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Constraint">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ConstraintConstraintColumn">
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ConstraintColumn" Role="ConstraintColumn" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ConstraintColumn">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ConstraintForeignKey">
    <End Type="Self.ForeignKeyConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FromForeignKeyColumn">
    <End Type="Self.TableColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="FromColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ToForeignKeyColumn">
    <End Type="Self.TableColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ToColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="TableTableColumn">
    <End Type="Self.Table" Role="Parent" Multiplicity="1" />
    <End Type="Self.TableColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewViewColumn">
    <End Type="Self.View" Role="Parent" Multiplicity="1" />
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FunctionFunctionParameter">
    <End Type="Self.Function" Role="Function" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Function">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Parameter">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ProcedureProcedureParameter">
    <End Type="Self.Procedure" Role="Procedure" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Procedure">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Parameter">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewViewConstraint">
    <End Type="Self.View" Role="Parent" Multiplicity="1" />
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Constraint">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewConstraintConstraintColumn">
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ConstraintColumn" Role="ConstraintColumn" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ConstraintColumn">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewConstraintForeignKey">
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FromForeignKeyViewColumn">
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="FromColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ToForeignKeyViewColumn">
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ToColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

</Schema>��<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="SqlClient" Provider="System.Data.SqlClient" ProviderManifestToken="2005" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
  <EntityContainer Name="Schema">
    <EntitySet Name="STables" EntityType="Self.Table">
      <DefiningQuery>
        SELECT
        quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) [Id]
        ,   TABLE_CATALOG [CatalogName]
        ,   TABLE_SCHEMA [SchemaName]
        ,   TABLE_NAME    [Name]
        FROM
        INFORMATION_SCHEMA.TABLES
        WHERE
        TABLE_TYPE = 'BASE TABLE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="STableColumns" EntityType="Self.TableColumn">
      <DefiningQuery>
		  SELECT
		  quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
		  ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME)                             [ParentId]
		  ,   c.COLUMN_NAME   [Name]
		  ,   c.ORDINAL_POSITION [Ordinal]
		  ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
		  ,   CASE
		  WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
		  c.CHARACTER_MAXIMUM_LENGTH = -1 THEN
		  c.DATA_TYPE + '(max)'
		  ELSE
		  c.DATA_TYPE
		  END
		  as [TypeName]
		  ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
		  ,   CAST(c.NUMERIC_PRECISION as integer) [Precision]
		  ,   CAST(c.DATETIME_PRECISION as integer)[DateTimePrecision]
		  ,   CAST(c.NUMERIC_SCALE as integer) [Scale]
		  ,   c.COLLATION_CATALOG [CollationCatalog]
		  ,   c.COLLATION_SCHEMA [CollationSchema]
		  ,   c.COLLATION_NAME [CollationName]
		  ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
		  ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
		  ,   c.CHARACTER_SET_NAME [CharacterSetName]
		  ,   CAST(0 as bit) as [IsMultiSet]
		  ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
		  ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
		  , c.COLUMN_DEFAULT as [Default]
		  FROM
		  INFORMATION_SCHEMA.COLUMNS c
		  INNER JOIN
		  INFORMATION_SCHEMA.TABLES t ON
		  c.TABLE_CATALOG = t.TABLE_CATALOG AND
		  c.TABLE_SCHEMA = t.TABLE_SCHEMA   AND
		  c.TABLE_NAME = t.TABLE_NAME       AND
		  t.TABLE_TYPE = 'BASE TABLE'
  	  </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViews" EntityType="Self.View">
      <DefiningQuery>
        SELECT
        quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) [Id]
        ,   TABLE_CATALOG             [CatalogName]
        ,   TABLE_SCHEMA              [SchemaName]
        ,   TABLE_NAME                [Name]
        ,   VIEW_DEFINITION           [ViewDefinition]
        ,   CAST( CASE IS_UPDATABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsUpdatable]
        FROM
        INFORMATION_SCHEMA.VIEWS
        WHERE
        NOT (TABLE_SCHEMA = 'dbo'
        AND TABLE_NAME in('syssegments', 'sysconstraints')
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewColumns" EntityType="Self.ViewColumn">
      <DefiningQuery>
		  SELECT
		  quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
		  ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME)                             [ParentId]
		  ,   c.COLUMN_NAME   [Name]
		  ,   c.ORDINAL_POSITION [Ordinal]
		  ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
		  ,   CASE
		  WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
		  c.CHARACTER_MAXIMUM_LENGTH = -1 THEN
		  c.DATA_TYPE + '(max)'
		  ELSE
		  c.DATA_TYPE
		  END
		  as [TypeName]
		  ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
		  ,   CAST(c.NUMERIC_PRECISION as integer) [Precision]
		  ,   CAST(c.DATETIME_PRECISION as integer) as [DateTimePrecision]
		  ,   CAST(c.NUMERIC_SCALE as integer) [Scale]
		  ,   c.COLLATION_CATALOG [CollationCatalog]
		  ,   c.COLLATION_SCHEMA [CollationSchema]
		  ,   c.COLLATION_NAME [CollationName]
		  ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
		  ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
		  ,   c.CHARACTER_SET_NAME [CharacterSetName]
		  ,   CAST(0 as bit) as [IsMultiSet]
		  ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
		  ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
		  ,   c.COLUMN_DEFAULT [Default]
		  FROM
		  INFORMATION_SCHEMA.COLUMNS c
		  INNER JOIN
		  INFORMATION_SCHEMA.VIEWS v ON
		  c.TABLE_CATALOG = v.TABLE_CATALOG AND
		  c.TABLE_SCHEMA = v.TABLE_SCHEMA AND
		  c.TABLE_NAME = v.TABLE_NAME
		  WHERE
		  NOT (v.TABLE_SCHEMA = 'dbo'
		  AND v.TABLE_NAME in('syssegments', 'sysconstraints')
		  AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
	  </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctions" EntityType="Self.Function">
      <DefiningQuery>
        SELECT
        quotename(SPECIFIC_SCHEMA) + quotename(SPECIFIC_NAME) [Id]
        , SPECIFIC_CATALOG         [CatalogName]
        , SPECIFIC_SCHEMA          [SchemaName]
        , SPECIFIC_NAME            [Name]
        ,   CASE
        WHEN DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        CHARACTER_MAXIMUM_LENGTH = -1 THEN
        DATA_TYPE + '(max)'
        ELSE
        DATA_TYPE
        END [ReturnTypeName]
        , CHARACTER_MAXIMUM_LENGTH            [ReturnMaxLength]
        , CAST(NUMERIC_PRECISION as integer)  [ReturnPrecision]
        , CAST(DATETIME_PRECISION as integer) [ReturnDateTimePrecision]
        , CAST(NUMERIC_SCALE as integer)      [ReturnScale]
        , COLLATION_CATALOG        [ReturnCollationCatalog]
        , COLLATION_SCHEMA         [ReturnCollationSchema]
        , COLLATION_NAME           [ReturnCollationName]
        , CHARACTER_SET_CATALOG    [ReturnCharacterSetCatalog]
        , CHARACTER_SET_SCHEMA     [ReturnCharacterSetSchema]
        , CHARACTER_SET_NAME       [ReturnCharacterSetName]
        , CAST(0 as bit) as        [ReturnIsMultiSet]
        , CAST(0 as bit) as [IsAggregate]
        , CAST(0 as bit) as [IsBuiltIn]
        , CAST(0 as bit) as [IsNiladic]
        , CAST( (CASE WHEN DATA_TYPE = 'TABLE' THEN 1 ELSE 0 END) as bit ) as [IsTvf]
        FROM
        INFORMATION_SCHEMA.ROUTINES
        WHERE
        ROUTINE_TYPE = 'FUNCTION'
        AND NOT (
                   ROUTINE_SCHEMA = 'dbo'
                   AND ROUTINE_NAME LIKE 'dt[_]%'
                   AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8
                )
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctionParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        quotename(f.SPECIFIC_SCHEMA) + quotename(f.SPECIFIC_NAME) + quotename(f.PARAMETER_NAME) [Id]
        , quotename(f.SPECIFIC_SCHEMA) + quotename(f.SPECIFIC_NAME)                              [ParentId]
        , CASE -- trim off the @ symbol
        WHEN f.PARAMETER_NAME is null THEN NULL
        ELSE SUBSTRING(f.PARAMETER_NAME, 2, LEN(f.PARAMETER_NAME) )
        END   [Name]
        , f.ORDINAL_POSITION [Ordinal]
        , CASE
        WHEN f.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        f.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        f.DATA_TYPE + '(max)'
        ELSE
        f.DATA_TYPE
        END [TypeName]
        , f.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        , CAST(f.NUMERIC_PRECISION as integer) [Precision]
        , CAST(f.DATETIME_PRECISION as integer) as [DateTimePrecision]
        , CAST(f.NUMERIC_SCALE as integer) [Scale]
        , f.COLLATION_CATALOG [CollationCatalog]
        , f.COLLATION_SCHEMA [CollationSchema]
        , f.COLLATION_NAME [CollationName]
        , f.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        , f.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        , f.CHARACTER_SET_NAME [CharacterSetName]
        , CAST(0 as bit) as [IsMultiSet]
        , f.PARAMETER_MODE   [Mode]
        , CAST(NULL as nvarchar(max))  [Default]
        FROM
        INFORMATION_SCHEMA.PARAMETERS f
        INNER JOIN INFORMATION_SCHEMA.ROUTINES r ON
        f.SPECIFIC_SCHEMA = r.SPECIFIC_SCHEMA AND
        f.SPECIFIC_NAME = r.SPECIFIC_NAME AND
        r.ROUTINE_TYPE = 'FUNCTION'
        WHERE
        f.IS_RESULT = 'NO'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctionReturnTableColumns" EntityType="Self.FunctionReturnTableColumn">
      <DefiningQuery>
        SELECT
            quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
        ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) [ParentId]
        ,   c.COLUMN_NAME  [Name]
        ,   c.ORDINAL_POSITION [Ordinal]
        ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
        ,   CASE
                 WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and c.CHARACTER_MAXIMUM_LENGTH = -1 THEN c.DATA_TYPE + '(max)'
                 ELSE c.DATA_TYPE
            END as [TypeName]
        ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        ,   CAST(c.NUMERIC_PRECISION as integer) [Precision]
        ,   CAST(c.DATETIME_PRECISION as integer)[DateTimePrecision]
        ,   CAST(c.NUMERIC_SCALE as integer) [Scale]
        ,   c.COLLATION_CATALOG [CollationCatalog]
        ,   c.COLLATION_SCHEMA [CollationSchema]
        ,   c.COLLATION_NAME [CollationName]
        ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        ,   c.CHARACTER_SET_NAME [CharacterSetName]
        ,   CAST(0 as bit) as [IsMultiSet]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
        ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
        , c.COLUMN_DEFAULT as [Default]
        FROM
        INFORMATION_SCHEMA.ROUTINE_COLUMNS c
        INNER JOIN
        INFORMATION_SCHEMA.ROUTINES f ON
        c.TABLE_CATALOG = f.SPECIFIC_CATALOG AND
        c.TABLE_SCHEMA = f.SPECIFIC_SCHEMA   AND
        c.TABLE_NAME = f.SPECIFIC_NAME
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedures" EntityType="Self.Procedure">
      <DefiningQuery>
        SELECT
        quotename(SPECIFIC_SCHEMA) + quotename(SPECIFIC_NAME) [Id]
        , SPECIFIC_CATALOG         [CatalogName]
        , SPECIFIC_SCHEMA          [SchemaName]
        , SPECIFIC_NAME            [Name]
        FROM
        INFORMATION_SCHEMA.ROUTINES
        WHERE
        NOT (ROUTINE_SCHEMA = 'dbo'
        AND ROUTINE_NAME LIKE 'dt[_]%'
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
        AND (DATA_TYPE != 'TABLE' OR DATA_TYPE is null)
        AND ROUTINE_TYPE = 'PROCEDURE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedureParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        quotename(p.SPECIFIC_SCHEMA) + quotename(p.SPECIFIC_NAME) + quotename(p.PARAMETER_NAME) [Id]
        , quotename(p.SPECIFIC_SCHEMA) + quotename(p.SPECIFIC_NAME)                              [ParentId]
        , CASE -- trim off the @ symbol
        WHEN p.PARAMETER_NAME is null THEN NULL
        ELSE SUBSTRING(p.PARAMETER_NAME, 2, LEN(p.PARAMETER_NAME) )
        END   [Name]
        , p.ORDINAL_POSITION [Ordinal]
        , CASE
        WHEN p.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        p.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        p.DATA_TYPE + '(max)'
        ELSE
        p.DATA_TYPE
        END [TypeName]
        , p.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        , CAST(p.NUMERIC_PRECISION as integer) [Precision]
        , CAST(p.DATETIME_PRECISION as integer) as [DateTimePrecision]
        , CAST(p.NUMERIC_SCALE as integer) [Scale]
        , p.COLLATION_CATALOG [CollationCatalog]
        , p.COLLATION_SCHEMA [CollationSchema]
        , p.COLLATION_NAME [CollationName]
        , p.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        , p.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        , p.CHARACTER_SET_NAME [CharacterSetName]
        , CAST(0 as bit) as [IsMultiSet]
        , p.PARAMETER_MODE   [Mode]
        , CAST(NULL as nvarchar(max)) [Default]
        FROM
        INFORMATION_SCHEMA.PARAMETERS p
        INNER JOIN INFORMATION_SCHEMA.ROUTINES r ON
        p.SPECIFIC_SCHEMA = r.SPECIFIC_SCHEMA AND
        p.SPECIFIC_NAME = r.SPECIFIC_NAME AND
        r.ROUTINE_TYPE = 'PROCEDURE'
        WHERE
        p.IS_RESULT = 'NO'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraints" EntityType="Self.Constraint">
      <DefiningQuery>
        SELECT
        quotename(tc.CONSTRAINT_SCHEMA) + quotename(tc.CONSTRAINT_NAME) [Id]
        , quotename(tc.TABLE_SCHEMA) + quotename(tc.TABLE_NAME) [ParentId]
        ,   tc.CONSTRAINT_NAME [Name]
        ,   tc.CONSTRAINT_TYPE [ConstraintType]
        ,   CAST(CASE tc.IS_DEFERRABLE WHEN 'NO' THEN 0 ELSE 1 END as bit) [IsDeferrable]
        ,   CAST(CASE tc.INITIALLY_DEFERRED WHEN 'NO' THEN 0 ELSE 1 END as bit) [IsInitiallyDeferred]
        FROM
        INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
        WHERE tc.TABLE_NAME IS NOT NULL
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SCheckConstraints" EntityType="Self.CheckConstraint">
      <DefiningQuery>
        SELECT
        quotename(cc.CONSTRAINT_SCHEMA) + quotename(cc.CONSTRAINT_NAME) [Id]
        , cc.CHECK_CLAUSE [Expression]
        FROM
        INFORMATION_SCHEMA.CHECK_CONSTRAINTS cc
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraintColumns" EntityType="Self.ConstraintColumn">
      <DefiningQuery>
        SELECT
        quotename(CONSTRAINT_SCHEMA) + quotename(CONSTRAINT_NAME) [ConstraintId]
        ,   quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) + quotename(COLUMN_NAME) [ColumnId]
        FROM
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SForeignKeyConstraints" EntityType="Self.ForeignKeyConstraint">
      <DefiningQuery>
        SELECT
        quotename(rc.CONSTRAINT_SCHEMA) + quotename(rc.CONSTRAINT_NAME) [Id]
        , CAST(rc.UPDATE_RULE as nvarchar(11)) [UpdateRule]
        , CAST(rc.DELETE_RULE as nvarchar(11)) [DeleteRule]
        FROM
        INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
      </DefiningQuery>
    </EntitySet>
  
    <EntitySet Name="SForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        quotename(FC.CONSTRAINT_SCHEMA) + quotename(FC.CONSTRAINT_NAME) + quotename(cast(FC.ORDINAL_POSITION as nvarchar(30))) [Id]
        ,   quotename(PC.TABLE_SCHEMA) + quotename(PC.TABLE_NAME) + quotename(PC.COLUMN_NAME) [ToColumnId]
        ,   quotename(FC.TABLE_SCHEMA) + quotename(FC.TABLE_NAME) + quotename(FC.COLUMN_NAME) [FromColumnId]
        ,   quotename(FC.CONSTRAINT_SCHEMA) + quotename(FC.CONSTRAINT_NAME) [ConstraintId]
        ,   FC.ORDINAL_POSITION [Ordinal]
        FROM
        INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC
        INNER JOIN
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS PC /* PRIMARY KEY COLS*/
        ON       RC.UNIQUE_CONSTRAINT_SCHEMA = PC.CONSTRAINT_SCHEMA
        AND      RC.UNIQUE_CONSTRAINT_NAME    = PC.CONSTRAINT_NAME
        INNER JOIN
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS FC /* FOREIGN KEY COLS*/
        ON       RC.CONSTRAINT_SCHEMA = FC.CONSTRAINT_SCHEMA
        AND      RC.CONSTRAINT_NAME    = FC.CONSTRAINT_NAME
        AND      PC.ORDINAL_POSITION = FC.ORDINAL_POSITION
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewConstraints" EntityType="Self.ViewConstraint">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))   [Id]
        , CAST(NULL as nvarchar(256)) [ParentId]
        , CAST(NULL as nvarchar(256)) [Name]
        , CAST(NULL as nvarchar(256)) [ConstraintType]
        , CAST(0 as bit) [IsDeferrable]
        , CAST(0 as bit) [IsInitiallyDeferred]
        , CAST(NULL as nvarchar(max)) [Expression]
        , CAST(NULL as nvarchar(11))  [UpdateRule]
        , CAST(NULL as nvarchar(11))  [DeleteRule]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewConstraintColumns" EntityType="Self.ConstraintColumn">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))     [ConstraintId]
        , CAST(NULL as nvarchar(max)) [ColumnId]  
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))    [Id]
        ,  CAST(NULL as nvarchar(max)) [ToColumnId]
        ,  CAST(NULL as nvarchar(max)) [FromColumnId]
        ,  CAST(NULL as nvarchar(1))   [ConstraintId]
        ,  0 [Ordinal]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <AssociationSet Name="STableTableColumns" Association="Self.TableTableColumn" >
      <End Role="Parent" EntitySet="STables"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>
    <AssociationSet Name="STableConstraints" Association="Self.TableTableConstraint" >
      <End Role="Parent" EntitySet="STables"/>
      <End Role="Constraint" EntitySet="SConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SConstraintConstraintColumns" Association="Self.ConstraintConstraintColumn" >
      <End Role="ConstraintColumn" EntitySet="SConstraintColumns"/>
      <End Role="Constraint" EntitySet="SConstraints"/>
    </AssociationSet>    
    <AssociationSet Name="SConstraintForeignKeys" Association="Self.ConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Constraint" EntitySet="SForeignKeyConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SFromForeignKeyColumns" Association="Self.FromForeignKeyColumn" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>
    <AssociationSet Name="SToForeignKeyColumns" Association="Self.ToForeignKeyColumn" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>

    <AssociationSet Name="SViewViewColumns" Association="Self.ViewViewColumn" >
      <End Role="Parent" EntitySet="SViews"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="SViewViewConstraints" Association="Self.ViewViewConstraint" >
      <End Role="Parent" EntitySet="SViews"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SViewConstraintConstraintColumns" Association="Self.ViewConstraintConstraintColumn" >
      <End Role="ConstraintColumn" EntitySet="SViewConstraintColumns"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SViewConstraintForeignKeys" Association="Self.ViewConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SFromForeignKeyViewColumns" Association="Self.FromForeignKeyViewColumn" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="SToForeignKeyViewColumns" Association="Self.ToForeignKeyViewColumn" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>

    <AssociationSet Name="FunctionFunctionParameters" Association="Self.FunctionFunctionParameter">
      <End Role="Function" EntitySet="SFunctions"/>
      <End Role="Parameter" EntitySet="SFunctionParameters"/>
    </AssociationSet>
    <AssociationSet Name="FunctionFunctionReturnTableColumns" Association="Self.FunctionFunctionReturnTableColumn" >
      <End Role="Function" EntitySet="SFunctions"/>
      <End Role="Column" EntitySet="SFunctionReturnTableColumns"/>
    </AssociationSet>
    <AssociationSet Name="ProcedureProcedureParameters" Association="Self.ProcedureProcedureParameter" >
      <End Role="Procedure" EntitySet="SProcedures"/>
      <End Role="Parameter" EntitySet="SProcedureParameters"/>
    </AssociationSet>

  </EntityContainer>

  <EntityType Name="Table">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256" />
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256" />
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256" />
  </EntityType>

  <EntityType Name="TableColumn" >
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="nvarchar(max)"/>
  </EntityType>

  <EntityType Name="View">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256" />
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256" />
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="ViewDefinition" Nullable="true" Type="nvarchar(max)" />
    <Property Name="IsUpdatable" Nullable="false" Type="bit" />
  </EntityType>

  <EntityType Name="ViewColumn">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="nvarchar(max)"/>
  </EntityType>
  
  <EntityType Name="Function">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256"/>
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="ReturnTypeName" Type="nvarchar" MaxLength="256" />
    <Property Name="ReturnMaxLength" Type="int" />
    <Property Name="ReturnPrecision" Type="int" />
    <Property Name="ReturnDateTimePrecision" Type="int" />
    <Property Name="ReturnScale" Type="int" />
    <Property Name="ReturnCollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnIsMultiSet" Type="bit" />
    <Property Name="IsAggregate" Type="bit" />
    <Property Name="IsBuiltIn" Type="bit" />
    <Property Name="IsNiladic" Type="bit" />
    <Property Name="IsTvf" Nullable="false" Type="bit" />
  </EntityType>

  <EntityType Name="Procedure">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256"/>
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
  </EntityType>

  <EntityType Name="Parameter">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="Name" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Ordinal" Nullable="false" Type="int"/>
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Nullable="true" Type="int" />
    <Property Name="Precision" Nullable="true" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Nullable="true" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="Mode" Type="nvarchar" MaxLength="16" />
    <Property Name="Default" Type="nvarchar(max)" />
  </EntityType>

  <EntityType Name="FunctionReturnTableColumn" >
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="nvarchar(max)"/>
  </EntityType>

  <EntityType Name="Constraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Name" Nullable="false" MaxLength="256" Type="nvarchar" />
    <Property Name="IsDeferrable" Nullable="false" Type="bit" />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="bit" />
    <Property Name="ConstraintType" Nullable="false" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <EntityType Name="CheckConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Expression" Nullable="true" MaxLength="4000" Type="nvarchar" />
  </EntityType>
  
  <EntityType Name="ConstraintColumn">
    <Key>
      <PropertyRef Name="ConstraintId" />
      <PropertyRef Name="ColumnId" />
    </Key>
    <Property Name="ConstraintId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="ColumnId" Nullable="false" Type="nvarchar(max)" />
  </EntityType>

  <EntityType Name="ForeignKeyConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="UpdateRule" Nullable="false" MaxLength="11" Type="nvarchar" />
    <Property Name="DeleteRule" Nullable="false" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <EntityType Name="ForeignKey">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="ConstraintId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="FromColumnId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="ToColumnId" Nullable="false" Type="nvarchar(max)" />
  </EntityType>

  <EntityType Name="ViewConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Name" Nullable="false" MaxLength="256" Type="nvarchar" />
    <Property Name="IsDeferrable" Nullable="false" Type="bit" />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="bit" />
    <Property Name="ConstraintType" Nullable="false" MaxLength="11" Type="nvarchar" />
    <Property Name="Expression" Nullable="true" MaxLength="4000" Type="nvarchar" />
    <Property Name="UpdateRule" Nullable="true" MaxLength="11" Type="nvarchar" />
    <Property Name="DeleteRule" Nullable="true" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <Association Name="TableTableConstraint">
    <End Type="Self.Table" Role="Parent" Multiplicity="1" />
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Constraint">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ConstraintConstraintColumn">
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ConstraintColumn" Role="ConstraintColumn" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ConstraintColumn">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ConstraintForeignKey">
    <End Type="Self.ForeignKeyConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FromForeignKeyColumn">
    <End Type="Self.TableColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="FromColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ToForeignKeyColumn">
    <End Type="Self.TableColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ToColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="TableTableColumn">
    <End Type="Self.Table" Role="Parent" Multiplicity="1" />
    <End Type="Self.TableColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewViewColumn">
    <End Type="Self.View" Role="Parent" Multiplicity="1" />
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FunctionFunctionParameter">
    <End Type="Self.Function" Role="Function" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Function">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Parameter">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FunctionFunctionReturnTableColumn">
    <End Type="Self.Function" Role="Function" Multiplicity="1" />
    <End Type="Self.FunctionReturnTableColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Function">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ProcedureProcedureParameter">
    <End Type="Self.Procedure" Role="Procedure" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Procedure">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Parameter">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewViewConstraint">
    <End Type="Self.View" Role="Parent" Multiplicity="1" />
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Constraint">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewConstraintConstraintColumn">
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ConstraintColumn" Role="ConstraintColumn" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ConstraintColumn">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewConstraintForeignKey">
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FromForeignKeyViewColumn">
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="FromColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ToForeignKeyViewColumn">
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ToColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

</Schema>Ĉ<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="SqlClient" Provider="System.Data.SqlClient" ProviderManifestToken="2005" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
  <EntityContainer Name="Schema">
    <EntitySet Name="STables" EntityType="Self.Table">
      <DefiningQuery>
        SELECT
        quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) [Id]
        ,   TABLE_CATALOG [CatalogName]
        ,   TABLE_SCHEMA [SchemaName]
        ,   TABLE_NAME    [Name]
        FROM
        INFORMATION_SCHEMA.TABLES
        WHERE
        TABLE_TYPE = 'BASE TABLE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="STableColumns" EntityType="Self.TableColumn">
      <DefiningQuery>
		  SELECT
		  quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
		  ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME)                             [ParentId]
		  ,   c.COLUMN_NAME   [Name]
		  ,   c.ORDINAL_POSITION [Ordinal]
		  ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
		  ,   CASE
		  WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
		  c.CHARACTER_MAXIMUM_LENGTH = -1 THEN
		  c.DATA_TYPE + '(max)'
		  ELSE
		  c.DATA_TYPE
		  END
		  as [TypeName]
		  ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
		  ,   CAST(c.NUMERIC_PRECISION as integer) [Precision]
		  ,   CAST(c.DATETIME_PRECISION as integer)[DateTimePrecision]
		  ,   CAST(c.NUMERIC_SCALE as integer) [Scale]
		  ,   c.COLLATION_CATALOG [CollationCatalog]
		  ,   c.COLLATION_SCHEMA [CollationSchema]
		  ,   c.COLLATION_NAME [CollationName]
		  ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
		  ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
		  ,   c.CHARACTER_SET_NAME [CharacterSetName]
		  ,   CAST(0 as bit) as [IsMultiSet]
		  ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
		  ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
		  , c.COLUMN_DEFAULT as [Default]
		  FROM
		  INFORMATION_SCHEMA.COLUMNS c
		  INNER JOIN
		  INFORMATION_SCHEMA.TABLES t ON
		  c.TABLE_CATALOG = t.TABLE_CATALOG AND
		  c.TABLE_SCHEMA = t.TABLE_SCHEMA   AND
		  c.TABLE_NAME = t.TABLE_NAME       AND
		  t.TABLE_TYPE = 'BASE TABLE'
	  </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViews" EntityType="Self.View">
      <DefiningQuery>
        SELECT
        quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) [Id]
        ,   TABLE_CATALOG             [CatalogName]
        ,   TABLE_SCHEMA              [SchemaName]
        ,   TABLE_NAME                [Name]
        ,   VIEW_DEFINITION           [ViewDefinition]
        ,   CAST( CASE IS_UPDATABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsUpdatable]
        FROM
        INFORMATION_SCHEMA.VIEWS
        WHERE
        NOT (TABLE_SCHEMA = 'dbo'
        AND TABLE_NAME in('syssegments', 'sysconstraints')
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewColumns" EntityType="Self.ViewColumn">
      <DefiningQuery>
		  SELECT
		  quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME) + quotename(c.COLUMN_NAME) [Id]
		  ,   quotename(c.TABLE_SCHEMA) + quotename(c.TABLE_NAME)                             [ParentId]
		  ,   c.COLUMN_NAME   [Name]
		  ,   c.ORDINAL_POSITION [Ordinal]
		  ,   CAST( CASE c.IS_NULLABLE WHEN 'YES' THEN 1 WHEN 'NO' THEN 0 ELSE 0 END as bit) [IsNullable]
		  ,   CASE
		  WHEN c.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
		  c.CHARACTER_MAXIMUM_LENGTH = -1 THEN
		  c.DATA_TYPE + '(max)'
		  ELSE
		  c.DATA_TYPE
		  END
		  as [TypeName]
		  ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
		  ,   CAST(c.NUMERIC_PRECISION as integer) [Precision]
		  ,   CAST(c.DATETIME_PRECISION as integer) as [DateTimePrecision]
		  ,   CAST(c.NUMERIC_SCALE as integer) [Scale]
		  ,   c.COLLATION_CATALOG [CollationCatalog]
		  ,   c.COLLATION_SCHEMA [CollationSchema]
		  ,   c.COLLATION_NAME [CollationName]
		  ,   c.CHARACTER_SET_CATALOG [CharacterSetCatalog]
		  ,   c.CHARACTER_SET_SCHEMA [CharacterSetSchema]
		  ,   c.CHARACTER_SET_NAME [CharacterSetName]
		  ,   CAST(0 as bit) as [IsMultiSet]
		  ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity' ) as bit) as [IsIdentity]
		  ,   CAST(columnproperty( object_id(quotename(c.TABLE_SCHEMA) + '.' + quotename(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed' ) | CASE WHEN c.DATA_TYPE = 'timestamp' THEN 1 ELSE 0 END as bit) as [IsStoreGenerated]
		  ,   c.COLUMN_DEFAULT [Default]
		  FROM
		  INFORMATION_SCHEMA.COLUMNS c
		  INNER JOIN
		  INFORMATION_SCHEMA.VIEWS v ON
		  c.TABLE_CATALOG = v.TABLE_CATALOG AND
		  c.TABLE_SCHEMA = v.TABLE_SCHEMA AND
		  c.TABLE_NAME = v.TABLE_NAME
		  WHERE
		  NOT (v.TABLE_SCHEMA = 'dbo'
		  AND v.TABLE_NAME in('syssegments', 'sysconstraints')
		  AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
	  </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctions" EntityType="Self.Function">
      <DefiningQuery>
        SELECT
        quotename(SPECIFIC_SCHEMA) + quotename(SPECIFIC_NAME) [Id]
        , SPECIFIC_CATALOG         [CatalogName]
        , SPECIFIC_SCHEMA          [SchemaName]
        , SPECIFIC_NAME            [Name]
        ,   CASE
        WHEN DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        CHARACTER_MAXIMUM_LENGTH = -1 THEN
        DATA_TYPE + '(max)'
        ELSE
        DATA_TYPE
        END [ReturnTypeName]
        , CHARACTER_MAXIMUM_LENGTH            [ReturnMaxLength]
        , CAST(NUMERIC_PRECISION as integer)  [ReturnPrecision]
        , CAST(DATETIME_PRECISION as integer) [ReturnDateTimePrecision]
        , CAST(NUMERIC_SCALE as integer)      [ReturnScale]
        , COLLATION_CATALOG        [ReturnCollationCatalog]
        , COLLATION_SCHEMA         [ReturnCollationSchema]
        , COLLATION_NAME           [ReturnCollationName]
        , CHARACTER_SET_CATALOG    [ReturnCharacterSetCatalog]
        , CHARACTER_SET_SCHEMA     [ReturnCharacterSetSchema]
        , CHARACTER_SET_NAME       [ReturnCharacterSetName]
        , CAST(0 as bit) as        [ReturnIsMultiSet]
        , CAST(0 as bit) as [IsAggregate]
        , CAST(0 as bit) as [IsBuiltIn]
        , CAST(0 as bit) as [IsNiladic]
        FROM
        INFORMATION_SCHEMA.ROUTINES
        WHERE
        NOT (ROUTINE_SCHEMA = 'dbo'
        AND ROUTINE_NAME LIKE 'dt[_]%'
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
        AND (DATA_TYPE != 'TABLE' OR DATA_TYPE is null)
        AND ROUTINE_TYPE = 'FUNCTION'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctionParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        quotename(f.SPECIFIC_SCHEMA) + quotename(f.SPECIFIC_NAME) + quotename(f.PARAMETER_NAME) [Id]
        , quotename(f.SPECIFIC_SCHEMA) + quotename(f.SPECIFIC_NAME)                              [ParentId]
        , CASE -- trim off the @ symbol
        WHEN f.PARAMETER_NAME is null THEN NULL
        ELSE SUBSTRING(f.PARAMETER_NAME, 2, LEN(f.PARAMETER_NAME) )
        END   [Name]
        , f.ORDINAL_POSITION [Ordinal]
        , CASE
        WHEN f.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        f.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        f.DATA_TYPE + '(max)'
        ELSE
        f.DATA_TYPE
        END [TypeName]
        , f.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        , CAST(f.NUMERIC_PRECISION as integer) [Precision]
        , CAST(f.DATETIME_PRECISION as integer) as [DateTimePrecision]
        , CAST(f.NUMERIC_SCALE as integer) [Scale]
        , f.COLLATION_CATALOG [CollationCatalog]
        , f.COLLATION_SCHEMA [CollationSchema]
        , f.COLLATION_NAME [CollationName]
        , f.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        , f.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        , f.CHARACTER_SET_NAME [CharacterSetName]
        , CAST(0 as bit) as [IsMultiSet]
        , f.PARAMETER_MODE   [Mode]
        , CAST(NULL as nvarchar(max))  [Default]
        FROM
        INFORMATION_SCHEMA.PARAMETERS f
        INNER JOIN INFORMATION_SCHEMA.ROUTINES r ON
        f.SPECIFIC_SCHEMA = r.SPECIFIC_SCHEMA AND
        f.SPECIFIC_NAME = r.SPECIFIC_NAME AND
        r.ROUTINE_TYPE = 'FUNCTION'
        WHERE
        f.IS_RESULT = 'NO'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedures" EntityType="Self.Procedure">
      <DefiningQuery>
        SELECT
        quotename(SPECIFIC_SCHEMA) + quotename(SPECIFIC_NAME) [Id]
        , SPECIFIC_CATALOG         [CatalogName]
        , SPECIFIC_SCHEMA          [SchemaName]
        , SPECIFIC_NAME            [Name]
        FROM
        INFORMATION_SCHEMA.ROUTINES
        WHERE
        NOT (ROUTINE_SCHEMA = 'dbo'
        AND ROUTINE_NAME LIKE 'dt[_]%'
        AND SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar(20)),1,1) = 8)
        AND (DATA_TYPE != 'TABLE' OR DATA_TYPE is null)
        AND ROUTINE_TYPE = 'PROCEDURE'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedureParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        quotename(p.SPECIFIC_SCHEMA) + quotename(p.SPECIFIC_NAME) + quotename(p.PARAMETER_NAME) [Id]
        , quotename(p.SPECIFIC_SCHEMA) + quotename(p.SPECIFIC_NAME)                              [ParentId]
        , CASE -- trim off the @ symbol
        WHEN p.PARAMETER_NAME is null THEN NULL
        ELSE SUBSTRING(p.PARAMETER_NAME, 2, LEN(p.PARAMETER_NAME) )
        END   [Name]
        , p.ORDINAL_POSITION [Ordinal]
        , CASE
        WHEN p.DATA_TYPE in ('varchar', 'nvarchar', 'varbinary') and
        p.CHARACTER_MAXIMUM_LENGTH = -1 THEN
        p.DATA_TYPE + '(max)'
        ELSE
        p.DATA_TYPE
        END [TypeName]
        , p.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        , CAST(p.NUMERIC_PRECISION as integer) [Precision]
        , CAST(p.DATETIME_PRECISION as integer) as [DateTimePrecision]
        , CAST(p.NUMERIC_SCALE as integer) [Scale]
        , p.COLLATION_CATALOG [CollationCatalog]
        , p.COLLATION_SCHEMA [CollationSchema]
        , p.COLLATION_NAME [CollationName]
        , p.CHARACTER_SET_CATALOG [CharacterSetCatalog]
        , p.CHARACTER_SET_SCHEMA [CharacterSetSchema]
        , p.CHARACTER_SET_NAME [CharacterSetName]
        , CAST(0 as bit) as [IsMultiSet]
        , p.PARAMETER_MODE   [Mode]
        , CAST(NULL as nvarchar(max)) [Default]
        FROM
        INFORMATION_SCHEMA.PARAMETERS p
        INNER JOIN INFORMATION_SCHEMA.ROUTINES r ON
        p.SPECIFIC_SCHEMA = r.SPECIFIC_SCHEMA AND
        p.SPECIFIC_NAME = r.SPECIFIC_NAME AND
        r.ROUTINE_TYPE = 'PROCEDURE'
        WHERE
        p.IS_RESULT = 'NO'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraints" EntityType="Self.Constraint">
      <DefiningQuery>
        SELECT
        quotename(tc.CONSTRAINT_SCHEMA) + quotename(tc.CONSTRAINT_NAME) [Id]
        , quotename(tc.TABLE_SCHEMA) + quotename(tc.TABLE_NAME) [ParentId]
        ,   tc.CONSTRAINT_NAME [Name]
        ,   tc.CONSTRAINT_TYPE [ConstraintType]
        ,   CAST(CASE tc.IS_DEFERRABLE WHEN 'NO' THEN 0 ELSE 1 END as bit) [IsDeferrable]
        ,   CAST(CASE tc.INITIALLY_DEFERRED WHEN 'NO' THEN 0 ELSE 1 END as bit) [IsInitiallyDeferred]
        FROM
        INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
        WHERE tc.TABLE_NAME IS NOT NULL
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SCheckConstraints" EntityType="Self.CheckConstraint">
      <DefiningQuery>
        SELECT
        quotename(cc.CONSTRAINT_SCHEMA) + quotename(cc.CONSTRAINT_NAME) [Id]
        , cc.CHECK_CLAUSE [Expression]
        FROM
        INFORMATION_SCHEMA.CHECK_CONSTRAINTS cc
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraintColumns" EntityType="Self.ConstraintColumn">
      <DefiningQuery>
        SELECT
        quotename(CONSTRAINT_SCHEMA) + quotename(CONSTRAINT_NAME) [ConstraintId]
        ,   quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) + quotename(COLUMN_NAME) [ColumnId]
        FROM
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SForeignKeyConstraints" EntityType="Self.ForeignKeyConstraint">
      <DefiningQuery>
        SELECT
        quotename(rc.CONSTRAINT_SCHEMA) + quotename(rc.CONSTRAINT_NAME) [Id]
        , CAST(rc.UPDATE_RULE as nvarchar(11)) [UpdateRule]
        , CAST(rc.DELETE_RULE as nvarchar(11)) [DeleteRule]
        FROM
        INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
      </DefiningQuery>
    </EntitySet>
  
    <EntitySet Name="SForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        quotename(FC.CONSTRAINT_SCHEMA) + quotename(FC.CONSTRAINT_NAME) + quotename(cast(FC.ORDINAL_POSITION as nvarchar(30))) [Id]
        ,   quotename(PC.TABLE_SCHEMA) + quotename(PC.TABLE_NAME) + quotename(PC.COLUMN_NAME) [ToColumnId]
        ,   quotename(FC.TABLE_SCHEMA) + quotename(FC.TABLE_NAME) + quotename(FC.COLUMN_NAME) [FromColumnId]
        ,   quotename(FC.CONSTRAINT_SCHEMA) + quotename(FC.CONSTRAINT_NAME) [ConstraintId]
        ,   FC.ORDINAL_POSITION [Ordinal]
        FROM
        INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC
        INNER JOIN
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS PC /* PRIMARY KEY COLS*/
        ON       RC.UNIQUE_CONSTRAINT_SCHEMA = PC.CONSTRAINT_SCHEMA
        AND      RC.UNIQUE_CONSTRAINT_NAME    = PC.CONSTRAINT_NAME
        INNER JOIN
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS FC /* FOREIGN KEY COLS*/
        ON       RC.CONSTRAINT_SCHEMA = FC.CONSTRAINT_SCHEMA
        AND      RC.CONSTRAINT_NAME    = FC.CONSTRAINT_NAME
        AND      PC.ORDINAL_POSITION = FC.ORDINAL_POSITION
      </DefiningQuery>
    </EntitySet>


    <EntitySet Name="SViewConstraints" EntityType="Self.ViewConstraint">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))   [Id]
        , CAST(NULL as nvarchar(256)) [ParentId]
        , CAST(NULL as nvarchar(256)) [Name]
        , CAST(NULL as nvarchar(256)) [ConstraintType]
        , CAST(0 as bit) [IsDeferrable]
        , CAST(0 as bit) [IsInitiallyDeferred]
        , CAST(NULL as nvarchar(max)) [Expression]
        , CAST(NULL as nvarchar(11))  [UpdateRule]
        , CAST(NULL as nvarchar(11))  [DeleteRule]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewConstraintColumns" EntityType="Self.ConstraintColumn">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))     [ConstraintId]
        , CAST(NULL as nvarchar(max)) [ColumnId]  
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        CAST(NULL as nvarchar(1))    [Id]
        ,  CAST(NULL as nvarchar(max)) [ToColumnId]
        ,  CAST(NULL as nvarchar(max)) [FromColumnId]
        ,  CAST(NULL as nvarchar(1))   [ConstraintId]
        ,  0 [Ordinal]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <AssociationSet Name="STableTableColumns" Association="Self.TableTableColumn" >
      <End Role="Parent" EntitySet="STables"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>
    <AssociationSet Name="STableConstraints" Association="Self.TableTableConstraint" >
      <End Role="Parent" EntitySet="STables"/>
      <End Role="Constraint" EntitySet="SConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SConstraintConstraintColumns" Association="Self.ConstraintConstraintColumn" >
      <End Role="ConstraintColumn" EntitySet="SConstraintColumns"/>
      <End Role="Constraint" EntitySet="SConstraints"/>
    </AssociationSet>    
    <AssociationSet Name="SConstraintForeignKeys" Association="Self.ConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Constraint" EntitySet="SForeignKeyConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SFromForeignKeyColumns" Association="Self.FromForeignKeyColumn" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>
    <AssociationSet Name="SToForeignKeyColumns" Association="Self.ToForeignKeyColumn" >
      <End Role="ForeignKey" EntitySet="SForeignKeys"/>
      <End Role="Column" EntitySet="STableColumns"/>
    </AssociationSet>

    <AssociationSet Name="SViewViewColumns" Association="Self.ViewViewColumn" >
      <End Role="Parent" EntitySet="SViews"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="SViewViewConstraints" Association="Self.ViewViewConstraint" >
      <End Role="Parent" EntitySet="SViews"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SViewConstraintConstraintColumns" Association="Self.ViewConstraintConstraintColumn" >
      <End Role="ConstraintColumn" EntitySet="SViewConstraintColumns"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SViewConstraintForeignKeys" Association="Self.ViewConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Constraint" EntitySet="SViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="SFromForeignKeyViewColumns" Association="Self.FromForeignKeyViewColumn" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="SToForeignKeyViewColumns" Association="Self.ToForeignKeyViewColumn" >
      <End Role="ForeignKey" EntitySet="SViewForeignKeys"/>
      <End Role="Column" EntitySet="SViewColumns"/>
    </AssociationSet>

    <AssociationSet Name="FunctionFunctionParameters" Association="Self.FunctionFunctionParameter">
      <End Role="Function" EntitySet="SFunctions"/>
      <End Role="Parameter" EntitySet="SFunctionParameters"/>
    </AssociationSet>
    <AssociationSet Name="ProcedureProcedureParameters" Association="Self.ProcedureProcedureParameter" >
      <End Role="Procedure" EntitySet="SProcedures"/>
      <End Role="Parameter" EntitySet="SProcedureParameters"/>
    </AssociationSet>

  </EntityContainer>

  <EntityType Name="Table">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256" />
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256" />
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256" />
  </EntityType>

  <EntityType Name="TableColumn" >
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="nvarchar(max)"/>
  </EntityType>

  <EntityType Name="View">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256" />
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256" />
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="ViewDefinition" Nullable="true" Type="nvarchar(max)" />
    <Property Name="IsUpdatable" Nullable="false" Type="bit" />
  </EntityType>

  <EntityType Name="ViewColumn">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Type="int" />
    <Property Name="Precision" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsIdentity" Nullable="false" Type="bit" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="bit" />
    <Property Name="Default" Nullable="true" Type="nvarchar(max)"/>
  </EntityType>
  
  <EntityType Name="Function">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256"/>
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
    <Property Name="ReturnTypeName" Type="nvarchar" MaxLength="256" />
    <Property Name="ReturnMaxLength" Type="int" />
    <Property Name="ReturnPrecision" Type="int" />
    <Property Name="ReturnDateTimePrecision" Type="int" />
    <Property Name="ReturnScale" Type="int" />
    <Property Name="ReturnCollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnCharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="ReturnIsMultiSet" Nullable="false" Type="bit" />
    <Property Name="IsAggregate" Type="bit" />
    <Property Name="IsBuiltIn" Type="bit" />
    <Property Name="IsNiladic" Type="bit" />
  </EntityType>

  <EntityType Name="Procedure">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="CatalogName" Type="nvarchar" MaxLength="256"/>
    <Property Name="SchemaName" Type="nvarchar" MaxLength="256"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" MaxLength="256"/>
  </EntityType>

  <EntityType Name="Parameter">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)"/>
    <Property Name="Name" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Ordinal" Nullable="false" Type="int"/>
    <Property Name="TypeName" Nullable="false" Type="nvarchar" MaxLength="256" />
    <Property Name="MaxLength" Nullable="true" Type="int" />
    <Property Name="Precision" Nullable="true" Type="int" />
    <Property Name="DateTimePrecision" Type="int" />
    <Property Name="Scale" Nullable="true" Type="int" />
    <Property Name="CollationCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CollationName" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetSchema" Type="nvarchar" MaxLength="128" />
    <Property Name="CharacterSetName" Type="nvarchar" MaxLength="128" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="Mode" Type="nvarchar" MaxLength="16" />
    <Property Name="Default" Type="nvarchar(max)" />
  </EntityType>

  <EntityType Name="Constraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Name" Nullable="false" MaxLength="256" Type="nvarchar" />
    <Property Name="IsDeferrable" Nullable="false" Type="bit" />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="bit" />
    <Property Name="ConstraintType" Nullable="false" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <EntityType Name="CheckConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Expression" Nullable="true" MaxLength="4000" Type="nvarchar" />
  </EntityType>
  
  <EntityType Name="ConstraintColumn">
    <Key>
      <PropertyRef Name="ConstraintId" />
      <PropertyRef Name="ColumnId" />
    </Key>
    <Property Name="ConstraintId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="ColumnId" Nullable="false" Type="nvarchar(max)" />
  </EntityType>

  <EntityType Name="ForeignKeyConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="UpdateRule" Nullable="false" MaxLength="11" Type="nvarchar" />
    <Property Name="DeleteRule" Nullable="false" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <EntityType Name="ForeignKey">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="ConstraintId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="FromColumnId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="ToColumnId" Nullable="false" Type="nvarchar(max)" />
  </EntityType>

  <EntityType Name="ViewConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar(max)" />
    <Property Name="ParentId" Nullable="false" Type="nvarchar(max)" />
    <Property Name="Name" Nullable="false" MaxLength="256" Type="nvarchar" />
    <Property Name="IsDeferrable" Nullable="false" Type="bit" />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="bit" />
    <Property Name="ConstraintType" Nullable="false" MaxLength="11" Type="nvarchar" />
    <Property Name="Expression" Nullable="true" MaxLength="4000" Type="nvarchar" />
    <Property Name="UpdateRule" Nullable="true" MaxLength="11" Type="nvarchar" />
    <Property Name="DeleteRule" Nullable="true" MaxLength="11" Type="nvarchar" />
  </EntityType>

  <Association Name="TableTableConstraint">
    <End Type="Self.Table" Role="Parent" Multiplicity="1" />
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Constraint">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ConstraintConstraintColumn">
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ConstraintColumn" Role="ConstraintColumn" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ConstraintColumn">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ConstraintForeignKey">
    <End Type="Self.ForeignKeyConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FromForeignKeyColumn">
    <End Type="Self.TableColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="FromColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ToForeignKeyColumn">
    <End Type="Self.TableColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ToColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="TableTableColumn">
    <End Type="Self.Table" Role="Parent" Multiplicity="1" />
    <End Type="Self.TableColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewViewColumn">
    <End Type="Self.View" Role="Parent" Multiplicity="1" />
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Column">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FunctionFunctionParameter">
    <End Type="Self.Function" Role="Function" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Function">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Parameter">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ProcedureProcedureParameter">
    <End Type="Self.Procedure" Role="Procedure" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Procedure">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Parameter">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewViewConstraint">
    <End Type="Self.View" Role="Parent" Multiplicity="1" />
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Parent">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="Constraint">
        <PropertyRef Name="ParentId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewConstraintConstraintColumn">
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ConstraintColumn" Role="ConstraintColumn" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ConstraintColumn">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ViewConstraintForeignKey">
    <End Type="Self.ViewConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Constraint">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ConstraintId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="FromForeignKeyViewColumn">
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="FromColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

  <Association Name="ToForeignKeyViewColumn">
    <End Type="Self.ViewColumn" Role="Column" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Column">
        <PropertyRef Name="Id" />
      </Principal>
      <Dependent Role="ForeignKey">
        <PropertyRef Name="ToColumnId" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

</Schema>�4<?xml version="1.0" encoding="utf-8"?>
<Schema xmlns="http://schemas.microsoft.com/ado/2006/04/edm" Namespace="Store" Alias="Self">

  <EntityContainer Name="SchemaInformation">

    <EntitySet Name="Tables" EntityType="Self.Table" />
    <EntitySet Name="TableColumns" EntityType="Self.Column" />
    <EntitySet Name="TableConstraints" EntityType="Self.Constraint" />
    <EntitySet Name="TableForeignKeys" EntityType="Self.ForeignKey" />
    
    <EntitySet Name="Views" EntityType="Self.View" />
    <EntitySet Name="ViewColumns" EntityType="Self.Column" />
    <EntitySet Name="ViewConstraints" EntityType="Self.Constraint" />
    <EntitySet Name="ViewForeignKeys" EntityType="Self.ForeignKey" />
    
    <EntitySet Name="Functions" EntityType="Self.Function" />
    <EntitySet Name="FunctionParameters" EntityType="Self.Parameter" />
    <EntitySet Name="FunctionReturnTableColumns" EntityType="Self.FunctionReturnTableColumn" />

    <EntitySet Name="Procedures" EntityType="Self.Procedure" />
    <EntitySet Name="ProcedureParameters" EntityType="Self.Parameter" />
 
    <AssociationSet Name="TableTableColumns" Association="Self.TableOrViewColumn" >
      <End Role="Parent" EntitySet="Tables"/>
      <End Role="Column" EntitySet="TableColumns"/>
    </AssociationSet>
    <AssociationSet Name="TableTableConstraints" Association="Self.TableOrViewConstraint" >
      <End Role="Parent" EntitySet="Tables"/>
      <End Role="Constraint" EntitySet="TableConstraints"/>
    </AssociationSet>
    <AssociationSet Name="TableConstraintColumns" Association="Self.TableOrViewConstraintColumn" >
      <End Role="Column" EntitySet="TableColumns"/>
      <End Role="Constraint" EntitySet="TableConstraints"/>
    </AssociationSet>
    <AssociationSet Name="TableConstraintForeignKeys" Association="Self.ConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="TableForeignKeys"/>
      <End Role="Constraint" EntitySet="TableConstraints"/>
    </AssociationSet>
    <AssociationSet Name="FromTableForeignKeyColumns" Association="Self.FromForeignKeyColumn" >
      <End Role="Column" EntitySet="TableColumns"/>
      <End Role="ForeignKey" EntitySet="TableForeignKeys"/>
    </AssociationSet>
    <AssociationSet Name="ToTableForeignKeyColumns" Association="Self.ToForeignKeyColumn" >
      <End Role="Column" EntitySet="TableColumns"/>
      <End Role="ForeignKey" EntitySet="TableForeignKeys"/>
    </AssociationSet>
    
    <AssociationSet Name="ViewViewColumns" Association="Self.TableOrViewColumn" >
      <End Role="Parent" EntitySet="Views"/>
      <End Role="Column" EntitySet="ViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="ViewViewConstraints" Association="Self.TableOrViewConstraint" >
      <End Role="Parent" EntitySet="Views"/>
      <End Role="Constraint" EntitySet="ViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="ViewConstraintColumns" Association="Self.TableOrViewConstraintColumn" >
      <End Role="Column" EntitySet="ViewColumns"/>
      <End Role="Constraint" EntitySet="ViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="ViewConstraintForeignKeys" Association="Self.ConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="ViewForeignKeys"/>
      <End Role="Constraint" EntitySet="ViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="FromViewForeignKeyColumns" Association="Self.FromForeignKeyColumn" >
      <End Role="Column" EntitySet="ViewColumns"/>
      <End Role="ForeignKey" EntitySet="ViewForeignKeys"/>
    </AssociationSet>
    <AssociationSet Name="ToViewForeignKeyColumns" Association="Self.ToForeignKeyColumn" >
      <End Role="Column" EntitySet="ViewColumns"/>
      <End Role="ForeignKey" EntitySet="ViewForeignKeys"/>
    </AssociationSet>
    
    <AssociationSet Name="FunctionFunctionParameters" Association="Self.RoutineParameter" >
      <End Role="Routine" EntitySet="Functions"/>
      <End Role="Parameter" EntitySet="FunctionParameters"/>
    </AssociationSet>
    <AssociationSet Name="FunctionFunctionReturnTableColumns" Association="Self.FunctionFunctionReturnTableColumn" >
      <End Role="Function" EntitySet="Functions"/>
      <End Role="Column" EntitySet="FunctionReturnTableColumns"/>
    </AssociationSet>

    <AssociationSet Name="ProcedureProcedureParameters" Association="Self.RoutineParameter" >
      <End Role="Routine" EntitySet="Procedures"/>
      <End Role="Parameter" EntitySet="ProcedureParameters"/>
    </AssociationSet>

  </EntityContainer>

  <ComplexType Name="TypeSpecification">
    <Property Name="TypeName" Nullable="false" Type="String"  />
    <Property Name="MaxLength" Nullable="true" Type="Int32" />
    <Property Name="Precision" Nullable="true" Type="Int32" />
    <Property Name="DateTimePrecision" Nullable="true" Type="Int32" />
    <Property Name="Scale" Nullable="true" Type="Int32" />
    <Property Name="Collation" Nullable="false" Type="Self.Collation" />
    <Property Name="CharacterSet" Nullable="false" Type="Self.CharacterSet" />
    <Property Name="IsMultiSet" Nullable="false" Type="Boolean"/>
  </ComplexType>

  <ComplexType Name="Collation">
    <Property Name="CatalogName" Nullable="true" Type="String"  />
    <Property Name="SchemaName" Nullable="true" Type="String" />
    <Property Name="Name" Nullable="true" Type="String" />
  </ComplexType>

  <ComplexType Name="CharacterSet">
    <Property Name="CatalogName" Nullable="true" Type="String"  />
    <Property Name="SchemaName" Nullable="true" Type="String" />
    <Property Name="Name" Nullable="true" Type="String" />
  </ComplexType>

  <EntityType Name="TableOrView" Abstract="true">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String"  />
    <Property Name="CatalogName" Type="String"  />
    <Property Name="SchemaName" Type="String"  />
    <NavigationProperty Relationship="Self.TableOrViewColumn" Name="Columns" FromRole="Parent" ToRole="Column" />
    <NavigationProperty Relationship="Self.TableOrViewConstraint" Name="Constraints" FromRole="Parent" ToRole="Constraint" />
  </EntityType>

  <EntityType Name="Table" BaseType="Self.TableOrView">
  </EntityType>

  <EntityType Name="ColumnBase" Abstract="true">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String" />
    <Property Name="Ordinal" Nullable="false" Type="Int32" />
    <Property Name="IsNullable" Nullable="false" Type="Boolean" />
    <Property Name="ColumnType" Nullable="false" Type="Self.TypeSpecification"/>
    <Property Name="IsIdentity" Nullable="false" Type="Boolean" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="Boolean" />
    <Property Name="Default" Type="String" />
  </EntityType>

  <EntityType Name="Column" BaseType="Self.ColumnBase">
    <NavigationProperty Relationship="Self.TableOrViewColumn" Name="Parent" FromRole="Column" ToRole="Parent" />
	  <NavigationProperty Relationship="Self.TableOrViewConstraintColumn" Name="Constraints" FromRole="Column" ToRole="Constraint" />
	  <NavigationProperty Relationship="Self.ToForeignKeyColumn" Name="ToForeignKeys" FromRole="Column" ToRole="ForeignKey" />
	  <NavigationProperty Relationship="Self.FromForeignKeyColumn" Name="FromForeignKeys" FromRole="Column" ToRole="ForeignKey" />
  </EntityType>

  <EntityType Name="FunctionReturnTableColumn" BaseType="Self.ColumnBase">
    <NavigationProperty Relationship="Self.FunctionFunctionReturnTableColumn" Name="Function" FromRole="Column" ToRole="Function" />
  </EntityType>

  <EntityType Name="View" BaseType="Self.TableOrView">
    <Property Name="IsUpdatable" Nullable="false" Type="Boolean" />
    <Property Name="ViewDefinition" Nullable="true" Type="String"  />
  </EntityType>
  
  <EntityType Name="Routine" Abstract="true">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="CatalogName" Type="String"  />
    <Property Name="SchemaName" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String"  />
    <NavigationProperty Relationship="Self.RoutineParameter" Name="Parameters" FromRole="Routine" ToRole="Parameter" />
  </EntityType>
  
  <EntityType Name="Parameter">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String"  />
    <Property Name="Ordinal" Nullable="false" Type="Int32" />
    <Property Name="ParameterType" Nullable="false" Type="Self.TypeSpecification"/>
    <Property Name="Mode" Type="String"  />
    <Property Name="Default" Type="String"  />
    <NavigationProperty Relationship="Self.RoutineParameter" Name="Routine" FromRole="Parameter" ToRole="Routine" />
  </EntityType>

  <EntityType Name="Function" BaseType="Self.Routine" Abstract="true">
    <Property Name="IsBuiltIn" Type="Boolean" />
    <Property Name="IsNiladic" Type="Boolean" />
  </EntityType>

  <EntityType Name="ScalarFunction" BaseType="Self.Function">
    <Property Name="ReturnType" Type="Self.TypeSpecification" Nullable="false"/>
    <Property Name="IsAggregate" Type="Boolean" />
  </EntityType>

  <EntityType Name="TableValuedFunction" BaseType="Self.Function">
    <NavigationProperty Relationship="Self.FunctionFunctionReturnTableColumn" Name="Columns" FromRole="Function" ToRole="Column" />
  </EntityType>

  <EntityType Name="Procedure" BaseType="Self.Routine">
  </EntityType>

  <EntityType Name="Constraint" Abstract="true">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String"  />
    <Property Name="IsDeferrable" Nullable="false" Type="Boolean"  />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="Boolean"  />
    <NavigationProperty Relationship="Self.TableOrViewConstraint" Name="Parent" FromRole="Constraint" ToRole="Parent" />
  </EntityType>

  <EntityType Name="CheckConstraint" BaseType="Self.Constraint">
    <Property Name="Expression" Type="String" />
  </EntityType>
  
  <EntityType Name="TableOrViewColumnConstraint" BaseType="Self.Constraint" Abstract="true">
    <NavigationProperty Relationship="Self.TableOrViewConstraintColumn" Name="Columns" FromRole="Constraint" ToRole="Column" />
  </EntityType>

  <EntityType Name="PrimaryKeyConstraint" BaseType="Self.TableOrViewColumnConstraint">
  </EntityType>

  <EntityType Name="UniqueConstraint" BaseType="Self.TableOrViewColumnConstraint">
  </EntityType>

  <EntityType Name="ForeignKeyConstraint" BaseType="Self.Constraint">
    <Property Name="UpdateRule" Nullable="false" Type="String"  />
    <Property Name="DeleteRule" Nullable="false" Type="String"  />
    <NavigationProperty Relationship="Self.ConstraintForeignKey" Name="ForeignKeys" FromRole="Constraint" ToRole="ForeignKey" />
  </EntityType>

  <EntityType Name="ForeignKey">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Ordinal" Nullable="false" Type="Int32" />
    <NavigationProperty Relationship="Self.ConstraintForeignKey" Name="Constraint" FromRole="ForeignKey" ToRole="Constraint" />
    <NavigationProperty Relationship="Self.FromForeignKeyColumn" Name="FromColumn" FromRole="ForeignKey" ToRole="Column" />
    <NavigationProperty Relationship="Self.ToForeignKeyColumn" Name="ToColumn" FromRole="ForeignKey" ToRole="Column" />
  </EntityType>
  
  <Association Name="TableOrViewColumn">
    <End Type="Self.TableOrView" Role="Parent" Multiplicity="1" />
    <End Type="Self.Column" Role="Column" Multiplicity="*" />
  </Association>
  
  <Association Name="TableOrViewConstraint">
    <End Type="Self.TableOrView" Role="Parent" Multiplicity="1" />
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="*" />
  </Association>

  <Association Name="TableOrViewConstraintColumn">
    <End Type="Self.TableOrViewColumnConstraint" Role="Constraint" Multiplicity="*" />
    <End Type="Self.Column" Role="Column" Multiplicity="*" />
  </Association>

  <Association Name="ConstraintForeignKey">
    <End Type="Self.ForeignKeyConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
  </Association>

  <Association Name="ToForeignKeyColumn">
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <End Type="Self.Column" Role="Column" Multiplicity="1" />
  </Association>

  <Association Name="FromForeignKeyColumn">
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <End Type="Self.Column" Role="Column" Multiplicity="1" />
  </Association>

  <Association Name="RoutineParameter">
    <End Type="Self.Routine" Role="Routine" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
  </Association>

  <Association Name="FunctionFunctionReturnTableColumn">
    <End Type="Self.TableValuedFunction" Role="Function" Multiplicity="1" />
    <End Type="Self.FunctionReturnTableColumn" Role="Column" Multiplicity="*" />
  </Association>

</Schema>�0<?xml version="1.0" encoding="utf-8"?>
<Schema xmlns="http://schemas.microsoft.com/ado/2006/04/edm" xmlns:edm="http://schemas.microsoft.com/ado/2006/04/edm" xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration" Namespace="Store" Alias="Self">

  <EntityContainer Name="SchemaInformation">

    <EntitySet Name="Tables" EntityType="Self.Table" />
    <EntitySet Name="TableColumns" EntityType="Self.Column" />
    <EntitySet Name="TableConstraints" EntityType="Self.Constraint" />
    <EntitySet Name="TableForeignKeys" EntityType="Self.ForeignKey" />
    
    <EntitySet Name="Views" EntityType="Self.View" />
    <EntitySet Name="ViewColumns" EntityType="Self.Column" />
    <EntitySet Name="ViewConstraints" EntityType="Self.Constraint" />
    <EntitySet Name="ViewForeignKeys" EntityType="Self.ForeignKey" />
    
    <EntitySet Name="Functions" EntityType="Self.Function" />
    <EntitySet Name="FunctionParameters" EntityType="Self.Parameter" />
    <EntitySet Name="Procedures" EntityType="Self.Procedure" />
    <EntitySet Name="ProcedureParameters" EntityType="Self.Parameter" />
 
    <AssociationSet Name="TableTableColumns" Association="Self.TableOrViewColumn" >
      <End Role="Parent" EntitySet="Tables"/>
      <End Role="Column" EntitySet="TableColumns"/>
    </AssociationSet>
    <AssociationSet Name="TableTableConstraints" Association="Self.TableOrViewConstraint" >
      <End Role="Parent" EntitySet="Tables"/>
      <End Role="Constraint" EntitySet="TableConstraints"/>
    </AssociationSet>
    <AssociationSet Name="TableConstraintColumns" Association="Self.TableOrViewConstraintColumn" >
      <End Role="Column" EntitySet="TableColumns"/>
      <End Role="Constraint" EntitySet="TableConstraints"/>
    </AssociationSet>
    <AssociationSet Name="TableConstraintForeignKeys" Association="Self.ConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="TableForeignKeys"/>
      <End Role="Constraint" EntitySet="TableConstraints"/>
    </AssociationSet>
    <AssociationSet Name="FromTableForeignKeyColumns" Association="Self.FromForeignKeyColumn" >
      <End Role="Column" EntitySet="TableColumns"/>
      <End Role="ForeignKey" EntitySet="TableForeignKeys"/>
    </AssociationSet>
    <AssociationSet Name="ToTableForeignKeyColumns" Association="Self.ToForeignKeyColumn" >
      <End Role="Column" EntitySet="TableColumns"/>
      <End Role="ForeignKey" EntitySet="TableForeignKeys"/>
    </AssociationSet>
    
    <AssociationSet Name="ViewViewColumns" Association="Self.TableOrViewColumn" >
      <End Role="Parent" EntitySet="Views"/>
      <End Role="Column" EntitySet="ViewColumns"/>
    </AssociationSet>
    <AssociationSet Name="ViewViewConstraints" Association="Self.TableOrViewConstraint" >
      <End Role="Parent" EntitySet="Views"/>
      <End Role="Constraint" EntitySet="ViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="ViewConstraintColumns" Association="Self.TableOrViewConstraintColumn" >
      <End Role="Column" EntitySet="ViewColumns"/>
      <End Role="Constraint" EntitySet="ViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="ViewConstraintForeignKeys" Association="Self.ConstraintForeignKey" >
      <End Role="ForeignKey" EntitySet="ViewForeignKeys"/>
      <End Role="Constraint" EntitySet="ViewConstraints"/>
    </AssociationSet>
    <AssociationSet Name="FromViewForeignKeyColumns" Association="Self.FromForeignKeyColumn" >
      <End Role="Column" EntitySet="ViewColumns"/>
      <End Role="ForeignKey" EntitySet="ViewForeignKeys"/>
    </AssociationSet>
    <AssociationSet Name="ToViewForeignKeyColumns" Association="Self.ToForeignKeyColumn" >
      <End Role="Column" EntitySet="ViewColumns"/>
      <End Role="ForeignKey" EntitySet="ViewForeignKeys"/>
    </AssociationSet>
    
    <AssociationSet Name="FunctionFunctionParameters" Association="Self.RoutineParameter" >
      <End Role="Routine" EntitySet="Functions"/>
      <End Role="Parameter" EntitySet="FunctionParameters"/>
    </AssociationSet>
    
    <AssociationSet Name="ProcedureProcedureParameters" Association="Self.RoutineParameter" >
      <End Role="Routine" EntitySet="Procedures"/>
      <End Role="Parameter" EntitySet="ProcedureParameters"/>
    </AssociationSet>

  </EntityContainer>

  <ComplexType Name="TypeSpecification">
    <Property Name="TypeName" Nullable="false" Type="String"  />
    <Property Name="MaxLength" Nullable="true" Type="Int32" />
    <Property Name="Precision" Nullable="true" Type="Int32" />
    <Property Name="DateTimePrecision" Nullable="true" Type="Int32" />
    <Property Name="Scale" Nullable="true" Type="Int32" />
    <Property Name="Collation" Nullable="false" Type="Self.Collation" />
    <Property Name="CharacterSet" Nullable="false" Type="Self.CharacterSet" />
    <Property Name="IsMultiSet" Nullable="false" Type="Boolean"/>
  </ComplexType>

  <ComplexType Name="Collation">
    <Property Name="CatalogName" Nullable="true" Type="String"  />
    <Property Name="SchemaName" Nullable="true" Type="String" />
    <Property Name="Name" Nullable="true" Type="String" />
  </ComplexType>

  <ComplexType Name="CharacterSet">
    <Property Name="CatalogName" Nullable="true" Type="String"  />
    <Property Name="SchemaName" Nullable="true" Type="String" />
    <Property Name="Name" Nullable="true" Type="String" />
  </ComplexType>

  <EntityType Name="TableOrView" Abstract="true">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String"  />
    <Property Name="CatalogName" Type="String"  />
    <Property Name="SchemaName" Type="String"  />
    <NavigationProperty Relationship="Self.TableOrViewColumn" Name="Columns" FromRole="Parent" ToRole="Column" />
    <NavigationProperty Relationship="Self.TableOrViewConstraint" Name="Constraints" FromRole="Parent" ToRole="Constraint" />
  </EntityType>

  <EntityType Name="Table" BaseType="Self.TableOrView">
  </EntityType>

  <EntityType Name="Column">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String" />
    <Property Name="Ordinal" Nullable="false" Type="Int32" />
    <Property Name="IsNullable" Nullable="false" Type="Boolean" />
    <Property Name="ColumnType" Nullable="false" Type="Self.TypeSpecification"/>
    <Property Name="IsIdentity" Nullable="false" Type="Boolean" />
    <Property Name="IsStoreGenerated" Nullable="false" Type="Boolean" />
    <Property Name="Default" Type="String" />
    <NavigationProperty Relationship="Self.TableOrViewColumn" Name="Parent" FromRole="Column" ToRole="Parent" />
	<NavigationProperty Relationship="Self.TableOrViewConstraintColumn" Name="Constraints" FromRole="Column" ToRole="Constraint" />
	<NavigationProperty Relationship="Self.ToForeignKeyColumn" Name="ToForeignKeys" FromRole="Column" ToRole="ForeignKey" />
	<NavigationProperty Relationship="Self.FromForeignKeyColumn" Name="FromForeignKeys" FromRole="Column" ToRole="ForeignKey" />
  </EntityType>
  
  <EntityType Name="View" BaseType="Self.TableOrView">
    <Property Name="IsUpdatable" Nullable="false" Type="Boolean" />
    <Property Name="ViewDefinition" Nullable="true" Type="String"  />
  </EntityType>
  
  <EntityType Name="Routine" Abstract="true">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="CatalogName" Type="String"  />
    <Property Name="SchemaName" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String"  />
    <NavigationProperty Relationship="Self.RoutineParameter" Name="Parameters" FromRole="Routine" ToRole="Parameter" />
  </EntityType>
  
  <EntityType Name="Parameter">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String"  />
    <Property Name="Ordinal" Nullable="false" Type="Int32" />
    <Property Name="ParameterType" Nullable="false" Type="Self.TypeSpecification"/>
    <Property Name="Mode" Type="String"  />
    <Property Name="Default" Type="String"  />
    <NavigationProperty Relationship="Self.RoutineParameter" Name="Routine" FromRole="Parameter" ToRole="Routine" />
  </EntityType>

  <EntityType Name="Function" BaseType="Self.Routine" Abstract="true">
    <Property Name="IsBuiltIn" Type="Boolean" />
    <Property Name="IsNiladic" Type="Boolean" />
  </EntityType>

  <EntityType Name="ScalarFunction" BaseType="Self.Function">
    <Property Name="ReturnType" Type="Self.TypeSpecification" Nullable="false"/>
    <Property Name="IsAggregate" Type="Boolean" />
  </EntityType>

  <EntityType Name="Procedure" BaseType="Self.Routine">
  </EntityType>

  <EntityType Name="Constraint" Abstract="true">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Name" Nullable="false" Type="String"  />
    <Property Name="IsDeferrable" Nullable="false" Type="Boolean"  />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="Boolean"  />
    <NavigationProperty Relationship="Self.TableOrViewConstraint" Name="Parent" FromRole="Constraint" ToRole="Parent" />
  </EntityType>

  <EntityType Name="CheckConstraint" BaseType="Self.Constraint">
    <Property Name="Expression" Type="String" />
  </EntityType>
  
  <EntityType Name="TableOrViewColumnConstraint" BaseType="Self.Constraint" Abstract="true">
    <NavigationProperty Relationship="Self.TableOrViewConstraintColumn" Name="Columns" FromRole="Constraint" ToRole="Column" />
  </EntityType>

  <EntityType Name="PrimaryKeyConstraint" BaseType="Self.TableOrViewColumnConstraint">
  </EntityType>

  <EntityType Name="UniqueConstraint" BaseType="Self.TableOrViewColumnConstraint">
  </EntityType>

  <EntityType Name="ForeignKeyConstraint" BaseType="Self.Constraint">
    <Property Name="UpdateRule" Nullable="false" Type="String"  />
    <Property Name="DeleteRule" Nullable="false" Type="String"  />
    <NavigationProperty Relationship="Self.ConstraintForeignKey" Name="ForeignKeys" FromRole="Constraint" ToRole="ForeignKey" />
  </EntityType>

  <EntityType Name="ForeignKey">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="String"  />
    <Property Name="Ordinal" Nullable="false" Type="Int32" />
    <NavigationProperty Relationship="Self.ConstraintForeignKey" Name="Constraint" FromRole="ForeignKey" ToRole="Constraint" />
    <NavigationProperty Relationship="Self.FromForeignKeyColumn" Name="FromColumn" FromRole="ForeignKey" ToRole="Column" />
    <NavigationProperty Relationship="Self.ToForeignKeyColumn" Name="ToColumn" FromRole="ForeignKey" ToRole="Column" />
  </EntityType>
  
  <Association Name="TableOrViewColumn">
    <End Type="Self.TableOrView" Role="Parent" Multiplicity="1" />
    <End Type="Self.Column" Role="Column" Multiplicity="*" />
  </Association>
  
  <Association Name="TableOrViewConstraint">
    <End Type="Self.TableOrView" Role="Parent" Multiplicity="1" />
    <End Type="Self.Constraint" Role="Constraint" Multiplicity="*" />
  </Association>

  <Association Name="TableOrViewConstraintColumn">
    <End Type="Self.TableOrViewColumnConstraint" Role="Constraint" Multiplicity="*" />
    <End Type="Self.Column" Role="Column" Multiplicity="*" />
  </Association>

  <Association Name="ConstraintForeignKey">
    <End Type="Self.ForeignKeyConstraint" Role="Constraint" Multiplicity="1" />
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
  </Association>

  <Association Name="ToForeignKeyColumn">
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <End Type="Self.Column" Role="Column" Multiplicity="1" />
  </Association>

  <Association Name="FromForeignKeyColumn">
    <End Type="Self.ForeignKey" Role="ForeignKey" Multiplicity="*" />
    <End Type="Self.Column" Role="Column" Multiplicity="1" />
  </Association>
  
  <Association Name="RoutineParameter">
    <End Type="Self.Routine" Role="Routine" Multiplicity="1" />
    <End Type="Self.Parameter" Role="Parameter" Multiplicity="*" />
  </Association>

</Schema>�<?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="TSridFacetDescription">
    <xs:attribute name="Minimum" type="xs:int" use="optional"/>
    <xs:attribute name="Maximum" type="xs:int" use="optional"/>
    <xs:attribute name="DefaultValue" type="pm:TSrid" 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:element name="SRID" minOccurs="0" maxOccurs="1" type="pm:TSridFacetDescription"/>
      <xs:element name="IsStrict" 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"/>
      <!--- TODO: Spatial: only support the union types here for now.   Once we deeply understand the full heirarchy, we'll have to beef this up. -->
      <xs:enumeration value="Geography"/>
      <xs:enumeration value="Geometry"/>
      <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:simpleType name="TVariable">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Variable"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TSrid">
    <xs:union memberTypes="pm:TVariable xs:nonNegativeInteger"/>
  </xs:simpleType>
</xs:schema>
�<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:source="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" targetNamespace="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator">
    <xs:annotation>
        <xs:documentation xml:lang="en">
            Common Data Model Schema Definition Language.
            Copyright (c) Microsoft Corp. All rights reserved.
        </xs:documentation>
    </xs:annotation>

  <xs:attribute name="Type" type="source:TSourceType"/>
  <xs:attribute name="Schema" type="xs:string"/>
  <xs:attribute name="Name" type="xs:string"/>

    <xs:simpleType name="TSourceType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Tables"/>
            <xs:enumeration value="Views"/>
        </xs:restriction>
    </xs:simpleType>
 
</xs:schema>
�M<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:edm="http://schemas.microsoft.com/ado/2009/11/edm/ssdl" xmlns:gen="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" targetNamespace="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
  <xs:annotation>
    <xs:documentation xml:lang="en">
      Common Data Model Schema Definition Language.
      Copyright (c) Microsoft Corp. All rights reserved.
    </xs:documentation>
  </xs:annotation>
  <xs:import namespace="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" schemaLocation="System.Data.Resources.EntityStoreSchemaGenerator.xsd"/>
  <xs:element name="Schema" type="edm:TSchema"/>
  <xs:complexType name="TSchema">
    <xs:sequence>
      <xs:group ref="edm:GSchemaBodyElements" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Namespace" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="Provider" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ProviderManifestToken" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:group name="GSchemaBodyElements">
    <xs:choice>
      <xs:element name="Association" type="edm:TAssociation" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="EntityType" type="edm:TEntityType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="edm:EntityContainer" minOccurs="1" maxOccurs="1"/>
      <xs:element name="Function" type="edm:TFunction" minOccurs="0" maxOccurs="unbounded"/>
    </xs:choice>
  </xs:group>

  <xs:simpleType name="TMax">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Max"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="TVariable">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Variable"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- Facets for Primitive types -->
  <xs:simpleType name="TMaxLengthFacet">
    <xs:union memberTypes="edm:TMax xs:nonNegativeInteger"/>
  </xs:simpleType>
  
  <xs:simpleType name="TSridFacet">
    <xs:union memberTypes="edm:TVariable xs:nonNegativeInteger"/>
  </xs:simpleType>

  <xs:simpleType name="TIsFixedLengthFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>

  <xs:simpleType name="TKindFacet">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Utc"/>
      <xs:enumeration value="Local"/>
      <xs:enumeration value="Unspecified"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TPrecisionFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>

  <xs:simpleType name="TScaleFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>

  <xs:simpleType name="TIsUnicodeFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>

  <xs:simpleType name="TCollationFacet">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>

  <!-- 
        types of the top level elements 
    -->
  <xs:complexType name="TDocumentation">
    <xs:annotation>
      <xs:documentation>
        The Documentation element is used to provide documentation of comments on the contents of the XML file. It is valid under Schema, Type, Index and Relationship elements.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Summary" type="edm:TText" minOccurs="0" maxOccurs="1"/>
      <xs:element name="LongDescription" type="edm:TText" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>

  <xs:complexType name="TText" mixed="true">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>

  <xs:complexType name="TAssociation">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="End" type="edm:TAssociationEnd" minOccurs="2" maxOccurs="2"/>
      <xs:element name="ReferentialConstraint" type="edm:TConstraint" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
    <!--<xs:attribute name="Identifying" type="xs:boolean" use="optional" default="false" />-->
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="TConstraint">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Principal" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:element name="Dependent" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="TReferentialConstraintRoleElement">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="TEntityType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Key" type="edm:TEntityKeyElement" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Property" type="edm:TEntityProperty" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="TEntityKeyElement">
    <xs:sequence>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="TPropertyRef">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="TCollectionType">
    <xs:choice minOccurs="1" maxOccurs="1">
      <xs:element name="RowType" type="edm:TRowType" minOccurs="1" maxOccurs="1"/>
    </xs:choice>
  </xs:complexType>

  <xs:complexType name="TRowType">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Property" type="edm:TProperty" minOccurs="1" maxOccurs="unbounded"/>
    </xs:choice>
  </xs:complexType>

  <xs:group name="GEmptyElementExtensibility">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <!-- 
        base types  
    -->
  <xs:complexType name="TAssociationEnd">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:TOperations" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="Multiplicity" type="edm:TMultiplicity" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:group name="TOperations">
    <xs:choice>
      <xs:element name="OnDelete" type="edm:TOnAction" maxOccurs="1" minOccurs="0"/>
    </xs:choice>
  </xs:group>

  <xs:complexType name="TOnAction">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Action" type="edm:TAction" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="TEntityProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:attribute name="StoreGeneratedPattern" type="edm:TStoreGeneratedPattern" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="TProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:attributeGroup name="TCommonPropertyAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
    <xs:attribute name="Nullable" type="xs:boolean" default="true" use="optional"/>
    <xs:attribute name="DefaultValue" type="xs:string" use="optional"/>

    <!-- Start Facets -->
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="FixedLength" type="edm:TIsFixedLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:attribute name="Unicode" type="edm:TIsUnicodeFacet" use="optional"/>
    <xs:attribute name="Collation" type="edm:TCollationFacet" use="optional"/>
    <xs:attribute name="SRID" type="edm:TSridFacet" use="optional"/>
    <!--End Facets -->
  </xs:attributeGroup>

  <xs:element name="EntityContainer">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="EntitySet">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:element name="DefiningQuery" type="edm:TCommandText" minOccurs="0" maxOccurs="1"/>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
              <xs:attribute name="EntityType" type="edm:TQualifiedName" use="required"/>
              <xs:attribute name="Schema" type="edm:TSimpleIdentifier" use="optional"/>
              <xs:attribute name="Table" type="edm:TSimpleIdentifier" use="optional"/>
              <xs:attribute ref="gen:Type" use="optional"/>
              <xs:attribute ref="gen:Schema" use="optional"/>
              <xs:attribute ref="gen:Name" use="optional"/>
              <xs:anyAttribute processContents="lax" namespace="##other"/>
            </xs:complexType>
          </xs:element>

          <xs:element name="AssociationSet">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:element name="End" minOccurs="0" maxOccurs="2">
                  <!-- 1. The number of Ends has to match with ones defined in AssociationType 
                                         2. Value for attribute Name should match the defined ones and EntitySet should be of the 
                                            defined Entity Type in AssociationType 
                                    -->
                  <xs:complexType>
                    <xs:sequence>
                      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
                    </xs:sequence>
                    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
                    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="required"/>
                  </xs:complexType>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
              <xs:attribute name="Association" type="edm:TQualifiedName" use="required"/>
              <xs:anyAttribute namespace="##other" processContents="lax"/>
            </xs:complexType>
          </xs:element>
        </xs:choice>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
      <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="TFunction">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Parameter" type="edm:TParameter" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="CommandText" type="edm:TCommandText" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReturnType" type="edm:TFunctionReturnType" minOccurs="0" maxOccurs="1"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
    <xs:attribute name="ReturnType" type="edm:TFunctionType" use="optional"/>
    <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="IsComposable" type="xs:boolean" use="optional" default="true"/>
    <xs:attribute name="ParameterTypeSemantics" type="edm:TParameterTypeSemantics" use="optional" default="AllowImplicitConversion"/>
    <xs:attribute name="Schema" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute ref="gen:Schema" use="optional"/>
    <xs:attribute ref="gen:Name" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="TParameter">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="xs:string" use="required"/>
    <xs:attribute name="Type" type="edm:TFunctionType" use="required"/>
    <xs:attribute name="Mode" type="edm:TParameterMode" use="optional"/>
    <!-- Start Facets -->
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:attribute name="SRID" type="edm:TSridFacet" use="optional"/>
    <!--End Facets -->
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:complexType name="TFunctionReturnType">
    <xs:choice minOccurs="1" maxOccurs="1">
      <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
    </xs:choice>
  </xs:complexType>

  <!-- 
    general (more or less) purpose simple types 
    -->

  <xs:simpleType name="TCommandText">
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TQualifiedName">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>

  <xs:simpleType name="TUndottedIdentifier">
    <xs:restriction base="xs:string">
      <!-- no periods -->
      <xs:pattern value="[^.]{1,}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TSimpleIdentifier">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>

  <xs:simpleType name="TPropertyType">
    <xs:union memberTypes="edm:TQualifiedName">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification -->
          <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:simpleType name="TAction">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Cascade"/>
      <xs:enumeration value="Restrict"/>
      <xs:enumeration value="None"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TMultiplicity">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0..1"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="*"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TStoreGeneratedPattern">
    <xs:restriction base="xs:token">
      <xs:enumeration value="None"/>
      <xs:enumeration value="Identity"/>
      <xs:enumeration value="Computed"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TParameterMode">
    <xs:restriction base="xs:token">
      <xs:enumeration value="In"/>
      <xs:enumeration value="Out"/>
      <xs:enumeration value="InOut"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TFunctionType">
    <xs:union memberTypes="edm:TQualifiedName ">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="Collection\([^ \t]{1,}(\.[^ \t]{1,}){0,}\)"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TParameterTypeSemantics">
    <xs:restriction base="xs:token">
      <xs:enumeration value="ExactMatchOnly"/>
      <xs:enumeration value="AllowImplicitPromotion"/>
      <xs:enumeration value="AllowImplicitConversion"/>
    </xs:restriction>
  </xs:simpleType>


</xs:schema>
�M<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:edm="http://schemas.microsoft.com/ado/2009/02/edm/ssdl" xmlns:gen="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" targetNamespace="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">
    <xs:annotation>
        <xs:documentation xml:lang="en">
            Common Data Model Schema Definition Language.
            Copyright (c) Microsoft Corp. All rights reserved.
        </xs:documentation>
    </xs:annotation>
  <xs:import namespace="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" schemaLocation="System.Data.Resources.EntityStoreSchemaGenerator.xsd"/>
  <xs:element name="Schema" type="edm:TSchema"/>
    <xs:complexType name="TSchema">
        <xs:sequence>
            <xs:group ref="edm:GSchemaBodyElements" minOccurs="0" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Namespace" type="edm:TQualifiedName" use="required"/>
        <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="optional"/>
        <xs:attribute name="Provider" type="edm:TSimpleIdentifier" use="required"/>
        <xs:attribute name="ProviderManifestToken" type="edm:TSimpleIdentifier" use="required"/>      
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:group name="GSchemaBodyElements">
        <xs:choice>
            <xs:element name="Association" type="edm:TAssociation" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="EntityType" type="edm:TEntityType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="edm:EntityContainer" minOccurs="1" maxOccurs="1"/>
            <xs:element name="Function" type="edm:TFunction" minOccurs="0" maxOccurs="unbounded"/>
        </xs:choice>
    </xs:group>

    <xs:simpleType name="TMax">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Max"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- Facets for Primitive types -->
    <xs:simpleType name="TMaxLengthFacet">
        <xs:union memberTypes="edm:TMax xs:nonNegativeInteger"/>
    </xs:simpleType>

    <xs:simpleType name="TIsFixedLengthFacet">
        <xs:restriction base="xs:boolean"/>
    </xs:simpleType>

    <xs:simpleType name="TKindFacet">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Utc"/>
            <xs:enumeration value="Local"/>
            <xs:enumeration value="Unspecified"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="TPrecisionFacet">
        <xs:restriction base="xs:nonNegativeInteger"/>
    </xs:simpleType>

    <xs:simpleType name="TScaleFacet">
        <xs:restriction base="xs:nonNegativeInteger"/>
    </xs:simpleType>

    <xs:simpleType name="TIsUnicodeFacet">
        <xs:restriction base="xs:boolean"/>
    </xs:simpleType>

    <xs:simpleType name="TCollationFacet">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>

    <!-- 
        types of the top level elements 
    -->
   <xs:complexType name="TDocumentation">
    <xs:annotation>
      <xs:documentation>The Documentation element is used to provide documentation of comments on the contents of the XML file. It is valid under Schema, Type, Index and Relationship elements.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Summary" type="edm:TText" minOccurs="0" maxOccurs="1"/>
      <xs:element name="LongDescription" type="edm:TText" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>

  <xs:complexType name="TText" mixed="true">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>


    <xs:complexType name="TAssociation">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="End" type="edm:TAssociationEnd" minOccurs="2" maxOccurs="2"/>
            <xs:element name="ReferentialConstraint" type="edm:TConstraint" minOccurs="0" maxOccurs="1"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
        <!--<xs:attribute name="Identifying" type="xs:boolean" use="optional" default="false" />-->
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TConstraint">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Principal" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
            <xs:element name="Dependent" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TReferentialConstraintRoleElement">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TEntityType">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Key" type="edm:TEntityKeyElement" minOccurs="0" maxOccurs="1"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Property" type="edm:TEntityProperty" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TEntityKeyElement">
        <xs:sequence>
            <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="TPropertyRef">
        <xs:sequence>
            <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:group name="GEmptyElementExtensibility">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>

    <!-- 
        base types  
    -->
    <xs:complexType name="TAssociationEnd">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:group ref="edm:TOperations" minOccurs="0" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Type" type="edm:TQualifiedName" use="required"/>
        <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
        <xs:attribute name="Multiplicity" type="edm:TMultiplicity" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:group name="TOperations">
        <xs:choice>
            <xs:element name="OnDelete" type="edm:TOnAction" maxOccurs="1" minOccurs="0"/>
        </xs:choice>
    </xs:group>

    <xs:complexType name="TOnAction">
        <xs:sequence>
            <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="Action" type="edm:TAction" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TEntityProperty">
        <xs:sequence>
            <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
        <xs:attribute name="StoreGeneratedPattern" type="edm:TStoreGeneratedPattern" use="optional"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:attributeGroup name="TCommonPropertyAttributes">
        <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
        <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
        <xs:attribute name="Nullable" type="xs:boolean" default="true" use="optional"/>
        <xs:attribute name="DefaultValue" type="xs:string" use="optional"/>

        <!-- Start Facets -->
        <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
        <xs:attribute name="FixedLength" type="edm:TIsFixedLengthFacet" use="optional"/>
        <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
        <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
        <xs:attribute name="Unicode" type="edm:TIsUnicodeFacet" use="optional"/>
        <xs:attribute name="Collation" type="edm:TCollationFacet" use="optional"/>
        <!--End Facets -->
    </xs:attributeGroup>


    <xs:element name="EntityContainer">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="EntitySet">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                                <xs:element name="DefiningQuery" type="edm:TCommandText" minOccurs="0" maxOccurs="1"/>
                                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                            </xs:sequence>
                          <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
                          <xs:attribute name="EntityType" type="edm:TQualifiedName" use="required"/>
                          <xs:attribute name="Schema" type="edm:TSimpleIdentifier" use="optional"/>
                          <xs:attribute name="Table" type="edm:TSimpleIdentifier" use="optional"/>
                          <xs:attribute ref="gen:Type" use="optional"/>
                          <xs:attribute ref="gen:Schema" use="optional"/>
                          <xs:attribute ref="gen:Name" use="optional"/>
                          <xs:anyAttribute processContents="lax" namespace="##other"/>
                        </xs:complexType>
                    </xs:element>

                    <xs:element name="AssociationSet">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                                <xs:element name="End" minOccurs="0" maxOccurs="2">
                                    <!-- 1. The number of Ends has to match with ones defined in AssociationType 
                                         2. Value for attribute Name should match the defined ones and EntitySet should be of the 
                                            defined Entity Type in AssociationType 
                                    -->
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
                                        </xs:sequence>
                                        <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
                                        <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="required"/>
                                    </xs:complexType>
                                </xs:element>
                                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                            </xs:sequence>
                            <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
                            <xs:attribute name="Association" type="edm:TQualifiedName" use="required"/>
                            <xs:anyAttribute namespace="##other" processContents="lax"/>
                        </xs:complexType>
                    </xs:element>
                </xs:choice>
              <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
            <xs:anyAttribute namespace="##other" processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="TFunction">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="CommandText" type="edm:TCommandText" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Parameter" type="edm:TParameter" minOccurs="0" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
        <xs:attribute name="ReturnType" type="edm:TFunctionType" use="optional"/>
        <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="IsComposable" type="xs:boolean" use="optional" default="true"/>
        <xs:attribute name="ParameterTypeSemantics" type="edm:TParameterTypeSemantics" use="optional" default="AllowImplicitConversion"/>
        <xs:attribute name="Schema" type="edm:TSimpleIdentifier" use="optional"/>
        <xs:attribute ref="gen:Schema" use="optional"/>
        <xs:attribute ref="gen:Name" use="optional"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TParameter">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Name" type="xs:string" use="required"/>
        <xs:attribute name="Type" type="edm:TFunctionType" use="required"/>
        <xs:attribute name="Mode" type="edm:TParameterMode" use="optional"/>
        <!-- Start Facets -->
        <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
        <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
        <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
        <!--End Facets -->
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <!-- 
    general (more or less) purpose simple types 
    -->

  <xs:simpleType name="TCommandText">
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TQualifiedName">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>

  <xs:simpleType name="TUndottedIdentifier">
    <xs:restriction base="xs:string">
      <!-- no periods -->
      <xs:pattern value="[^.]{1,}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TSimpleIdentifier">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="TPropertyType">
        <xs:union memberTypes="edm:TQualifiedName">
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification -->
                    <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>

    <xs:simpleType name="TAction">
        <xs:restriction base="xs:token">
            <xs:enumeration value="Cascade"/>
            <xs:enumeration value="Restrict"/>
            <xs:enumeration value="None"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="TMultiplicity">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0..1"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="*"/>
    </xs:restriction>
  </xs:simpleType>

    <xs:simpleType name="TStoreGeneratedPattern">
        <xs:restriction base="xs:token">
            <xs:enumeration value="None"/>
            <xs:enumeration value="Identity"/>
            <xs:enumeration value="Computed"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="TParameterMode">
        <xs:restriction base="xs:token">
            <xs:enumeration value="In"/>
            <xs:enumeration value="Out"/>
            <xs:enumeration value="InOut"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="TFunctionType">
        <xs:union memberTypes="edm:TQualifiedName ">
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <xs:pattern value="Collection\([^ \t]{1,}(\.[^ \t]{1,}){0,}\)"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <xs:simpleType name="TParameterTypeSemantics">
        <xs:restriction base="xs:token">
            <xs:enumeration value="ExactMatchOnly"/>
            <xs:enumeration value="AllowImplicitPromotion"/>
            <xs:enumeration value="AllowImplicitConversion"/>
        </xs:restriction>
    </xs:simpleType>


</xs:schema>
M<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:edm="http://schemas.microsoft.com/ado/2006/04/edm/ssdl" xmlns:gen="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" targetNamespace="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
    <xs:annotation>
        <xs:documentation xml:lang="en">
            Common Data Model Schema Definition Language.
            Copyright (c) Microsoft Corp. All rights reserved.
        </xs:documentation>
    </xs:annotation>
  <xs:import namespace="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" schemaLocation="System.Data.Resources.EntityStoreSchemaGenerator.xsd"/>
  <xs:element name="Schema" type="edm:TSchema"/>
    <xs:complexType name="TSchema">
        <xs:sequence>
            <xs:group ref="edm:GSchemaBodyElements" minOccurs="0" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Namespace" type="edm:TQualifiedName" use="required"/>
        <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="optional"/>
        <xs:attribute name="Provider" type="edm:TSimpleIdentifier" use="required"/>
        <xs:attribute name="ProviderManifestToken" type="edm:TSimpleIdentifier" use="required"/>      
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:group name="GSchemaBodyElements">
        <xs:choice>
            <xs:element name="Association" type="edm:TAssociation" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="EntityType" type="edm:TEntityType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="edm:EntityContainer" minOccurs="1" maxOccurs="1"/>
            <xs:element name="Function" type="edm:TFunction" minOccurs="0" maxOccurs="unbounded"/>
        </xs:choice>
    </xs:group>

    <xs:simpleType name="TMax">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Max"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- Facets for Primitive types -->
    <xs:simpleType name="TMaxLengthFacet">
        <xs:union memberTypes="edm:TMax xs:nonNegativeInteger"/>
    </xs:simpleType>

    <xs:simpleType name="TIsFixedLengthFacet">
        <xs:restriction base="xs:boolean"/>
    </xs:simpleType>

    <xs:simpleType name="TKindFacet">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Utc"/>
            <xs:enumeration value="Local"/>
            <xs:enumeration value="Unspecified"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="TPrecisionFacet">
        <xs:restriction base="xs:nonNegativeInteger"/>
    </xs:simpleType>

    <xs:simpleType name="TScaleFacet">
        <xs:restriction base="xs:nonNegativeInteger"/>
    </xs:simpleType>

    <xs:simpleType name="TIsUnicodeFacet">
        <xs:restriction base="xs:boolean"/>
    </xs:simpleType>

    <xs:simpleType name="TCollationFacet">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>

    <!-- 
        types of the top level elements 
    -->
   <xs:complexType name="TDocumentation">
    <xs:annotation>
      <xs:documentation>The Documentation element is used to provide documentation of comments on the contents of the XML file. It is valid under Schema, Type, Index and Relationship elements.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Summary" type="edm:TText" minOccurs="0" maxOccurs="1"/>
      <xs:element name="LongDescription" type="edm:TText" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>

  <xs:complexType name="TText" mixed="true">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>


    <xs:complexType name="TAssociation">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="End" type="edm:TAssociationEnd" minOccurs="2" maxOccurs="2"/>
            <xs:element name="ReferentialConstraint" type="edm:TConstraint" minOccurs="0" maxOccurs="1"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
        <!--<xs:attribute name="Identifying" type="xs:boolean" use="optional" default="false" />-->
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TConstraint">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Principal" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
            <xs:element name="Dependent" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TReferentialConstraintRoleElement">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TEntityType">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Key" type="edm:TEntityKeyElement" minOccurs="0" maxOccurs="1"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Property" type="edm:TEntityProperty" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TEntityKeyElement">
        <xs:sequence>
            <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="TPropertyRef">
        <xs:sequence>
            <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:group name="GEmptyElementExtensibility">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>

    <!-- 
        base types  
    -->
    <xs:complexType name="TAssociationEnd">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:group ref="edm:TOperations" minOccurs="0" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Type" type="edm:TQualifiedName" use="required"/>
        <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
        <xs:attribute name="Multiplicity" type="edm:TMultiplicity" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:group name="TOperations">
        <xs:choice>
            <xs:element name="OnDelete" type="edm:TOnAction" maxOccurs="1" minOccurs="0"/>
        </xs:choice>
    </xs:group>

    <xs:complexType name="TOnAction">
        <xs:sequence>
            <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="Action" type="edm:TAction" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TEntityProperty">
        <xs:sequence>
            <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
        <xs:attribute name="StoreGeneratedPattern" type="edm:TStoreGeneratedPattern" use="optional"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:attributeGroup name="TCommonPropertyAttributes">
        <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
        <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
        <xs:attribute name="Nullable" type="xs:boolean" default="true" use="optional"/>
        <xs:attribute name="DefaultValue" type="xs:string" use="optional"/>

        <!-- Start Facets -->
        <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
        <xs:attribute name="FixedLength" type="edm:TIsFixedLengthFacet" use="optional"/>
        <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
        <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
        <xs:attribute name="Unicode" type="edm:TIsUnicodeFacet" use="optional"/>
        <xs:attribute name="Collation" type="edm:TCollationFacet" use="optional"/>
        <!--End Facets -->
    </xs:attributeGroup>


    <xs:element name="EntityContainer">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="EntitySet">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                                <xs:element name="DefiningQuery" type="edm:TCommandText" minOccurs="0" maxOccurs="1"/>
                                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                            </xs:sequence>
                          <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
                          <xs:attribute name="EntityType" type="edm:TQualifiedName" use="required"/>
                          <xs:attribute name="Schema" type="edm:TSimpleIdentifier" use="optional"/>
                          <xs:attribute name="Table" type="edm:TSimpleIdentifier" use="optional"/>
                          <xs:attribute ref="gen:Type" use="optional"/>
                          <xs:attribute ref="gen:Schema" use="optional"/>
                          <xs:attribute ref="gen:Name" use="optional"/>
                          <xs:anyAttribute processContents="lax" namespace="##other"/>
                        </xs:complexType>
                    </xs:element>

                    <xs:element name="AssociationSet">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                                <xs:element name="End" minOccurs="0" maxOccurs="2">
                                    <!-- 1. The number of Ends has to match with ones defined in AssociationType 
                                         2. Value for attribute Name should match the defined ones and EntitySet should be of the 
                                            defined Entity Type in AssociationType 
                                    -->
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
                                        </xs:sequence>
                                        <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
                                        <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="required"/>
                                    </xs:complexType>
                                </xs:element>
                                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                            </xs:sequence>
                            <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
                            <xs:attribute name="Association" type="edm:TQualifiedName" use="required"/>
                            <xs:anyAttribute namespace="##other" processContents="lax"/>
                        </xs:complexType>
                    </xs:element>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="TFunction">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:element name="CommandText" type="edm:TCommandText" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Parameter" type="edm:TParameter" minOccurs="0" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Name" type="edm:TUndottedIdentifier" use="required"/>
        <xs:attribute name="ReturnType" type="edm:TFunctionType" use="optional"/>
        <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="IsComposable" type="xs:boolean" use="optional" default="true"/>
        <xs:attribute name="ParameterTypeSemantics" type="edm:TParameterTypeSemantics" use="optional" default="AllowImplicitConversion"/>
        <xs:attribute name="Schema" type="edm:TSimpleIdentifier" use="optional"/>
        <xs:attribute ref="gen:Schema" use="optional"/>
        <xs:attribute ref="gen:Name" use="optional"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="TParameter">
        <xs:sequence>
            <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Name" type="xs:string" use="required"/>
        <xs:attribute name="Type" type="edm:TFunctionType" use="required"/>
        <xs:attribute name="Mode" type="edm:TParameterMode" use="optional"/>
        <!-- Start Facets -->
        <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
        <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
        <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
        <!--End Facets -->
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>

    <!-- 
    general (more or less) purpose simple types 
    -->

  <xs:simpleType name="TCommandText">
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TQualifiedName">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>

  <xs:simpleType name="TUndottedIdentifier">
    <xs:restriction base="xs:string">
      <!-- no periods -->
      <xs:pattern value="[^.]{1,}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TSimpleIdentifier">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="TPropertyType">
        <xs:union memberTypes="edm:TQualifiedName">
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification -->
                    <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>

    <xs:simpleType name="TAction">
        <xs:restriction base="xs:token">
            <xs:enumeration value="Cascade"/>
            <xs:enumeration value="Restrict"/>
            <xs:enumeration value="None"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="TMultiplicity">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0..1"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="*"/>
    </xs:restriction>
  </xs:simpleType>

    <xs:simpleType name="TStoreGeneratedPattern">
        <xs:restriction base="xs:token">
            <xs:enumeration value="None"/>
            <xs:enumeration value="Identity"/>
            <xs:enumeration value="Computed"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="TParameterMode">
        <xs:restriction base="xs:token">
            <xs:enumeration value="In"/>
            <xs:enumeration value="Out"/>
            <xs:enumeration value="InOut"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="TFunctionType">
        <xs:union memberTypes="edm:TQualifiedName ">
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <xs:pattern value="Collection\([^ \t]{1,}(\.[^ \t]{1,}){0,}\)"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <xs:simpleType name="TParameterTypeSemantics">
        <xs:restriction base="xs:token">
            <xs:enumeration value="ExactMatchOnly"/>
            <xs:enumeration value="AllowImplicitPromotion"/>
            <xs:enumeration value="AllowImplicitConversion"/>
        </xs:restriction>
    </xs:simpleType>


</xs:schema>
��<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration" xmlns:edm="http://schemas.microsoft.com/ado/2009/11/edm" targetNamespace="http://schemas.microsoft.com/ado/2009/11/edm">
  <xs:annotation>
    <xs:documentation xml:lang="en">
      Common Data Model Schema Definition Language.
      Copyright (c) Microsoft Corp. All rights reserved.
    </xs:documentation>
  </xs:annotation>
  <xs:import namespace="http://schemas.microsoft.com/ado/2006/04/codegeneration" schemaLocation="System.Data.Resources.CodeGenerationSchema.xsd"/>
  <xs:import namespace="http://schemas.microsoft.com/ado/2009/02/edm/annotation" schemaLocation="System.Data.Resources.AnnotationSchema.xsd"/>
  <xs:element name="Schema" type="edm:TSchema"/>
  <xs:complexType name="TSchema">
    <xs:sequence>
      <xs:group ref="edm:GSchemaBodyElements" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Namespace" type="edm:TNamespaceName" use="optional"/>
    <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:group name="GSchemaBodyElements">
    <xs:choice>
      <xs:element name="Using" type="edm:TUsing" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="Association" type="edm:TAssociation" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="ComplexType" type="edm:TComplexType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="EntityType" type="edm:TEntityType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="EnumType" type="edm:TEnumType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="ValueTerm" type="edm:TValueTerm" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="Function" type="edm:TFunction" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="Annotations" type="edm:TAnnotations" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="edm:EntityContainer" minOccurs="1" maxOccurs="1"/>
    </xs:choice>
  </xs:group>
  <!-- EDM SimpleType instances for use by EDM Instance documents-->
  <xs:simpleType name="EDMSimpleType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Binary"/>
      <xs:enumeration value="Boolean"/>
      <xs:enumeration value="Byte"/>
      <xs:enumeration value="DateTime"/>
      <xs:enumeration value="DateTimeOffset"/>
      <xs:enumeration value="Time"/>
      <xs:enumeration value="Decimal"/>
      <xs:enumeration value="Double"/>
      <xs:enumeration value="Single"/>
      <xs:enumeration value="Geography"/>
      <xs:enumeration value="GeographyPoint"/>
      <xs:enumeration value="GeographyLineString"/>
      <xs:enumeration value="GeographyPolygon"/>
      <xs:enumeration value="GeographyMultiPoint"/>
      <xs:enumeration value="GeographyMultiLineString"/>
      <xs:enumeration value="GeographyMultiPolygon"/>
      <xs:enumeration value="GeographyCollection"/>
      <xs:enumeration value="Geometry"/>
      <xs:enumeration value="GeometryPoint"/>
      <xs:enumeration value="GeometryLineString"/>
      <xs:enumeration value="GeometryPolygon"/>
      <xs:enumeration value="GeometryMultiPoint"/>
      <xs:enumeration value="GeometryMultiLineString"/>
      <xs:enumeration value="GeometryMultiPolygon"/>
      <xs:enumeration value="GeometryCollection"/>
      <xs:enumeration value="Guid"/>
      <xs:enumeration value="Int16"/>
      <xs:enumeration value="Int32"/>
      <xs:enumeration value="Int64"/>
      <xs:enumeration value="String"/>
      <xs:enumeration value="SByte"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TMax">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Max"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TVariable">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Variable"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- Facets for Primitive types -->
  <xs:simpleType name="TMaxLengthFacet">
    <xs:union memberTypes="edm:TMax xs:nonNegativeInteger  "/>
  </xs:simpleType>
  <xs:simpleType name="TIsFixedLengthFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
  <xs:simpleType name="TPrecisionFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>
  <xs:simpleType name="TScaleFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>
  <xs:simpleType name="TIsUnicodeFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
  <xs:simpleType name="TCollationFacet">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="TSridFacet">
    <xs:union memberTypes="edm:TVariable xs:nonNegativeInteger  "/>
  </xs:simpleType>
  <!--
        types at all levels
    -->
  <xs:complexType name="TDocumentation">
    <xs:annotation>
      <xs:documentation>The Documentation element is used to provide documentation of comments on the contents of the XML file.  It is valid under Schema, Type, Index and Relationship elements.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Summary" type="edm:TText" minOccurs="0" maxOccurs="1"/>
      <xs:element name="LongDescription" type="edm:TText" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>
  <xs:complexType name="TText" mixed="true">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>
  <xs:complexType name="TXmlOrText" mixed="true">
    <xs:annotation>
      <xs:documentation>This type allows pretty much any content</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="skip" namespace="##any"/>
  </xs:complexType>
  <!-- 
        types of the top level elements 
    -->
  <xs:complexType name="TUsing">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Namespace" type="edm:TNamespaceName" use="required"/>
    <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TAssociation">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="End" type="edm:TAssociationEnd" minOccurs="2" maxOccurs="2"/>
      <xs:element name="ReferentialConstraint" type="edm:TConstraint" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TComplexType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Property" type="edm:TComplexTypeProperty" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TTypeAttributes"/>
    <xs:attribute ref="cg:TypeAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TConstraint">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Principal" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:element name="Dependent" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TReferentialConstraintRoleElement">
    <xs:sequence>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  <xs:complexType name="TNavigationProperty">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Relationship" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="ToRole" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="FromRole" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ContainsTarget" type="xs:boolean" use="optional"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
    <xs:attribute ref="cg:SetterAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Key" type="edm:TEntityKeyElement" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Property" type="edm:TEntityProperty" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="NavigationProperty" type="edm:TNavigationProperty" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TDerivableTypeAttributes"/>
    <xs:attribute name="OpenType" type="xs:boolean" use="optional" default="false"/>
    <xs:attribute ref="cg:TypeAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEnumTypeMember">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Value" type="xs:long" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEnumType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Member" type="edm:TEnumTypeMember" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TTypeAttributes"/>
    <xs:attribute name="IsFlags" type="xs:boolean" use="optional"/>
    <xs:attribute name="UnderlyingType" type="edm:TPropertyType" use="optional"/>
    <xs:attribute ref="cg:TypeAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunction">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Parameter" type="edm:TFunctionParameter" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="DefiningExpression" type="edm:TCommandText" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReturnType" type="edm:TFunctionReturnType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ReturnType" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionParameter">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:choice minOccurs="0" maxOccurs="1">
          <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
          <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
          <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
        </xs:choice>
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TCollectionType">
    <xs:sequence minOccurs="1" maxOccurs="1">
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="TypeRef" type="edm:TTypeRef" minOccurs="0" maxOccurs="1"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="ElementType" type="edm:TUnwrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TTypeRef">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TUnwrappedFunctionType" use="required"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TReferenceType">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TUnwrappedFunctionType" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TRowType">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Property" type="edm:TRowProperty" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:choice>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TRowProperty">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionReturnType">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TFunctionImportParameterAndReturnType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionImportReturnType">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TFunctionImportParameterAndReturnType" use="optional"/>
    <!-- EntitySet and EntitySetPath are mutually exclusive. -->
    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="EntitySetPath" type="edm:TPath" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityKeyElement">
    <xs:sequence>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TPropertyRef">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  <xs:group name="GEmptyElementExtensibility">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <!--
        Vocabulary annotations.
  -->
  <xs:complexType name="TAnnotations">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Target" type="edm:TPath" use="required"/>
    <xs:attribute name="Qualifier" type="xs:string" use="optional"/>
  </xs:complexType>
  <xs:complexType name="TValueAnnotation">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:GExpression" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Term" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="Qualifier" type="xs:string" use="optional"/>
    <xs:attributeGroup ref="edm:GInlineExpressions"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TTypeAnnotation">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="PropertyValue" type="edm:TPropertyValue" minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Term" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="Qualifier" type="xs:string" use="optional"/>
    <xs:attributeGroup ref="edm:GInlineExpressions"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:group name="GExpression">
    <xs:sequence>
      <!-- Logically this group means one of the expressions plus an arbitrary number of CSDL annotations,
           syntactically we have to make the inner sequence unbounded to allow elements in any order. -->
      <xs:sequence maxOccurs="unbounded">
        <xs:choice>
          <xs:element name="String" type="edm:TStringConstantExpression" minOccurs="0"/>
          <xs:element name="Binary" type="edm:TBinaryConstantExpression" minOccurs="0"/>
          <xs:element name="Int" type="edm:TIntConstantExpression" minOccurs="0"/>
          <xs:element name="Float" type="edm:TFloatConstantExpression" minOccurs="0"/>
          <xs:element name="Guid" type="edm:TGuidConstantExpression" minOccurs="0"/>
          <xs:element name="Decimal" type="edm:TDecimalConstantExpression" minOccurs="0"/>
          <xs:element name="Bool" type="edm:TBoolConstantExpression" minOccurs="0"/>
          <xs:element name="Time" type="edm:TTimeConstantExpression" minOccurs="0"/>
          <xs:element name="DateTime" type="edm:TDateTimeConstantExpression" minOccurs="0"/>
          <xs:element name="DateTimeOffset" type="edm:TDateTimeOffsetConstantExpression" minOccurs="0"/>
          <xs:element name="EnumMemberReference" type="edm:TEnumMemberReferenceExpression" minOccurs="0"/>
          <xs:element name="Null" type="edm:TNullExpression" minOccurs="0"/>
          <xs:element name="Path" type="edm:TPathExpression" minOccurs="0"/>
          <xs:element name="If" type="edm:TIfExpression" minOccurs="0"/>
          <xs:element name="Record" type="edm:TRecordExpression" minOccurs="0"/>
          <xs:element name="Collection" type="edm:TCollectionExpression" minOccurs="0"/>
          <xs:element name="AssertType" type="edm:TAssertTypeExpression" minOccurs="0"/>
          <xs:element name="IsType" type="edm:TIsTypeExpression" minOccurs="0"/>
          <xs:element name="FunctionReference" type="edm:TFunctionReferenceExpression" minOccurs="0"/>
          <xs:element name="EntitySetReference" type="edm:TEntitySetReferenceExpression" minOccurs="0"/>
          <xs:element name="ParameterReference" type="edm:TParameterReferenceExpression" minOccurs="0"/>
          <xs:element name="Apply" type="edm:TApplyExpression" minOccurs="0"/>
          <xs:element name="PropertyReference" type="edm:TPropertyReferenceExpression" minOccurs="0"/>
          <xs:element name="ValueTermReference" type="edm:TValueTermReferenceExpression" minOccurs="0"/>
          <xs:element name="LabeledElement" type="edm:TLabeledElement" minOccurs="0"/>
          <xs:element name="LabeledElementReference" type="edm:TLabeledElementReferenceExpression" minOccurs="0"/>
        </xs:choice>
        <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
      </xs:sequence>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="GInlineExpressions">
    <xs:attribute name="String" type="xs:string" use="optional"/>
    <xs:attribute name="Binary" type="xs:hexBinary" use="optional"/>
    <xs:attribute name="Int" type="xs:integer" use="optional"/>
    <xs:attribute name="Float" type="xs:double" use="optional"/>
    <xs:attribute name="Guid" type="edm:TGuidLiteral" use="optional"/>
    <xs:attribute name="Decimal" type="xs:decimal" use="optional"/>
    <xs:attribute name="Bool" type="xs:boolean" use="optional"/>
    <xs:attribute name="Time" type="xs:time" use="optional"/>
    <xs:attribute name="DateTime" type="xs:dateTime" use="optional"/>
    <xs:attribute name="DateTimeOffset" type="xs:dateTime" use="optional"/>
    <xs:attribute name="Path" type="edm:TPath" use="optional"/>
  </xs:attributeGroup>
  <xs:complexType name="TStringConstantExpression">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TBinaryConstantExpression">
    <xs:simpleContent>
      <xs:extension base="xs:hexBinary">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TIntConstantExpression">
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TFloatConstantExpression">
    <xs:simpleContent>
      <xs:extension base="xs:double">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TGuidConstantExpression">
    <xs:simpleContent>
      <xs:extension base="edm:TGuidLiteral">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="TGuidLiteral">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="TDecimalConstantExpression">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TBoolConstantExpression">
    <xs:simpleContent>
      <xs:extension base="xs:boolean">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TTimeConstantExpression">
    <xs:simpleContent>
      <xs:extension base="xs:time">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TDateTimeConstantExpression">
    <xs:simpleContent>
      <xs:extension base="xs:dateTime">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TDateTimeOffsetConstantExpression">
    <xs:simpleContent>
      <xs:extension base="xs:dateTime">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TEnumMemberReferenceExpression">
    <xs:simpleContent>
      <xs:extension base="edm:TPath">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TNullExpression">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TPathExpression">
    <xs:simpleContent>
      <xs:extension base="edm:TPath">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TIfExpression">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <!-- Test, IfTrue, IfFalse -->
      <xs:group ref="edm:GExpression" minOccurs="3" maxOccurs="3"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TRecordExpression">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="PropertyValue" type="edm:TPropertyValue" minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TUnwrappedFunctionType" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TPropertyValue">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:GExpression" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Property" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attributeGroup ref="edm:GInlineExpressions"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TCollectionExpression">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:GExpression" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TAssertTypeExpression">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="edm:GExpression" minOccurs="1" maxOccurs="1"/>
        <xs:choice minOccurs="0" maxOccurs="1">
          <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
          <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
          <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
        </xs:choice>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TIsTypeExpression">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="edm:GExpression" minOccurs="1" maxOccurs="1"/>
        <xs:choice minOccurs="0" maxOccurs="1">
          <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
          <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
          <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
        </xs:choice>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionReferenceExpression">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice maxOccurs="unbounded">
        <!-- Parameter is used to complete function signature: type only. -->
        <xs:element name="Parameter" maxOccurs="unbounded">
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:choice minOccurs="0" maxOccurs="1">
                <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
                <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
                <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
              </xs:choice>
              <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
            <xs:attribute name="Type" type="edm:TWrappedFunctionType" use="optional"/>
            <xs:anyAttribute namespace="##other" processContents="lax"/>
          </xs:complexType>
        </xs:element>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Function" type="edm:TQualifiedName" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntitySetReferenceExpression">
    <xs:simpleContent>
      <xs:extension base="edm:TPath">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TParameterReferenceExpression">
    <xs:simpleContent>
      <xs:extension base="edm:TSimpleIdentifier">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TApplyExpression">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:GExpression" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Function" type="edm:TQualifiedName" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TPropertyReferenceExpression">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:GExpression" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Property" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TValueTermReferenceExpression">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:GExpression" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Term" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="Qualifier" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TLabeledElement">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:GExpression" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TLabeledElementReferenceExpression">
    <xs:simpleContent>
      <xs:extension base="edm:TSimpleIdentifier">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <!-- 
        base types  
    -->
  <xs:complexType name="TAssociationEnd">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:TOperations" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="Multiplicity" type="edm:TMultiplicity" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:group name="TOperations">
    <xs:choice>
      <xs:element name="OnDelete" type="edm:TOnAction" maxOccurs="1" minOccurs="0"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="TOnAction">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Action" type="edm:TAction" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityProperty">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:attribute ref="annotation:StoreGeneratedPattern" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TComplexTypeProperty">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TValueTerm">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionImportParameter">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TFunctionImportParameterAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:attributeGroup name="TFacetAttributes">
    <xs:attribute name="Nullable" type="xs:boolean" use="optional"/>
    <xs:attribute name="DefaultValue" type="xs:string" use="optional"/>
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="FixedLength" type="edm:TIsFixedLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:attribute name="Unicode" type="edm:TIsUnicodeFacet" use="optional"/>
    <xs:attribute name="Collation" type="edm:TCollationFacet" use="optional"/>
    <xs:attribute name="SRID" type="edm:TSridFacet" use="optional"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="TCommonPropertyAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
    <xs:attribute name="Nullable" type="xs:boolean" default="true" use="optional"/>
    <xs:attribute name="DefaultValue" type="xs:string" use="optional"/>
    <!-- Start Facets -->
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="FixedLength" type="edm:TIsFixedLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:attribute name="Unicode" type="edm:TIsUnicodeFacet" use="optional"/>
    <xs:attribute name="Collation" type="edm:TCollationFacet" use="optional"/>
    <xs:attribute name="SRID" type="edm:TSridFacet" use="optional"/>
    <!--End Facets -->
    <xs:attribute name="ConcurrencyMode" type="edm:TConcurrencyMode" use="optional"/>
    <xs:attribute ref="cg:SetterAccess" use="optional"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TFunctionImportParameterAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TFunctionImportParameterAndReturnType" use="required"/>
    <xs:attribute name="Mode" type="edm:TParameterMode" use="optional"/>
    <xs:attribute name="Nullable" type="xs:boolean" use="optional"/>
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:attribute name="SRID" type="edm:TSridFacet" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TFunctionImportAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ReturnType" type="edm:TFunctionImportParameterAndReturnType" use="optional"/>
    <!-- EntitySet and EntitySetPath are mutually exclusive. -->
    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="EntitySetPath" type="xs:string" use="optional"/>
    <xs:attribute name="IsComposable" type="xs:boolean" use="optional" default="false"/>
    <xs:attribute name="IsSideEffecting" type="xs:boolean" use="optional"/>
    <xs:attribute name="IsBindable" type="xs:boolean" use="optional" default="false"/>
    <xs:attribute ref="cg:MethodAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TTypeAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TDerivableTypeAttributes">
    <xs:attributeGroup ref="edm:TTypeAttributes"/>
    <xs:attribute name="BaseType" type="edm:TQualifiedName" use="optional"/>
    <xs:attribute name="Abstract" type="xs:boolean" use="optional" default="false"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TEntitySetAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="EntityType" type="edm:TQualifiedName" use="required"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
  </xs:attributeGroup>
  <xs:element name="EntityContainer">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="FunctionImport">
            <xs:complexType>
              <xs:sequence>
                  <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                  <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="ReturnType" type="edm:TFunctionImportReturnType" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="Parameter" type="edm:TFunctionImportParameter" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:choice>
              </xs:sequence>
              <xs:attributeGroup ref="edm:TFunctionImportAttributes"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="EntitySet">
            <xs:complexType>
              <xs:sequence>
                  <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                  <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="ValueAnnotation" type="edm:TValueAnnotation" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:choice>
              </xs:sequence>
              <xs:attributeGroup ref="edm:TEntitySetAttributes"/>
              <xs:anyAttribute processContents="lax" namespace="##other"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="AssociationSet">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:element name="End" minOccurs="0" maxOccurs="2">
                  <!-- 
                       1. The number of Ends has to match with ones defined in AssociationType 
                       2. Value for attribute Name should match the defined ones and EntitySet should be of the 
                          defined Entity Type in AssociationType 
                    -->
                  <xs:complexType>
                    <xs:sequence>
                      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
                    </xs:sequence>
                    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
                    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="required"/>
                  </xs:complexType>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
              <xs:attribute name="Association" type="edm:TQualifiedName" use="required"/>
              <xs:anyAttribute namespace="##other" processContents="lax"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="ValueAnnotation" type="edm:TValueAnnotation"/>
          <xs:element name="TypeAnnotation" type="edm:TTypeAnnotation"/>
        </xs:choice>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
      <xs:attribute name="Extends" type="edm:TSimpleIdentifier" use="optional"/>
      <xs:attribute ref="cg:TypeAccess" use="optional"/>
      <xs:attribute ref="annotation:LazyLoadingEnabled" use="optional"/>
      <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>
  </xs:element>
  <!-- 
    general  (more or less) purpose simple types 
    -->
  <xs:simpleType name="TParameterMode">
    <xs:restriction base="xs:token">
      <xs:enumeration value="In"/>
      <xs:enumeration value="Out"/>
      <xs:enumeration value="InOut"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TNamespaceName">
    <xs:restriction base="edm:TQualifiedName">
      <xs:maxLength value="512"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TQualifiedName">
    <xs:restriction base="xs:string">
      <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TPath">
    <xs:restriction base="xs:string">
      <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '/' for path segment separation and
           the '.' for namespace qualification inside the segments. It also allows using parens and commas to designate function signatures
           such as "Namespace1.Namespace2.Function1(String,Collection(Int32))/Parameter1".-->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}\(\)\,]{0,}([/\.][\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}\(\)\,]{0,}){0,}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TSimpleIdentifier">
    <xs:restriction base="xs:string">
      <xs:maxLength value="480"/>
      <!-- The below pattern represents the allowed identifiers in ECMA specification -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TPropertyType">
    <xs:union memberTypes="edm:EDMSimpleType edm:TQualifiedName">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification and Collection() wrapper  -->
          <xs:pattern value="Collection\([\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}\)"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TCommandText">
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TFunctionImportParameterAndReturnType">
    <xs:union memberTypes="edm:EDMSimpleType edm:TQualifiedName">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="Collection\([^\. \t]{1,}(\.[^\. \t]{1,}){0,}\)"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TWrappedFunctionType">
    <xs:union memberTypes="edm:TQualifiedName">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="(Collection|Ref)\([^\. \t]{1,}(\.[^\. \t]{1,}){0,}\)"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TUnwrappedFunctionType">
    <xs:union memberTypes="edm:TQualifiedName">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="[^\. \t]{1,}(\.[^\. \t]{1,}){0,}"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TAction">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Cascade"/>
      <xs:enumeration value="None"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TMultiplicity">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0..1"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="*"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TConcurrencyMode">
    <xs:restriction base="xs:token">
      <xs:enumeration value="None"/>
      <xs:enumeration value="Fixed"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
�n<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration" xmlns:edm="http://schemas.microsoft.com/ado/2008/09/edm" targetNamespace="http://schemas.microsoft.com/ado/2008/09/edm">
  <xs:annotation>
    <xs:documentation xml:lang="en">
            Common Data Model Schema Definition Language.
            Copyright (c) Microsoft Corp. All rights reserved.
        </xs:documentation>
  </xs:annotation>
  <xs:import namespace="http://schemas.microsoft.com/ado/2006/04/codegeneration" schemaLocation="System.Data.Resources.CodeGenerationSchema.xsd"/>
  <xs:import namespace="http://schemas.microsoft.com/ado/2009/02/edm/annotation" schemaLocation="System.Data.Resources.AnnotationSchema.xsd"/>
  <xs:element name="Schema" type="edm:TSchema"/>
  <xs:complexType name="TSchema">
    <xs:sequence>
      <xs:group ref="edm:GSchemaBodyElements" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Namespace" type="edm:TNamespaceName" use="required"/>
    <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:group name="GSchemaBodyElements">
    <xs:choice>
      <xs:element name="Using" type="edm:TUsing" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="Association" type="edm:TAssociation" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="ComplexType" type="edm:TComplexType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="EntityType" type="edm:TEntityType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="Function" type="edm:TFunction" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="edm:EntityContainer" minOccurs="1" maxOccurs="1"/>
    </xs:choice>
  </xs:group>
  <!-- EDM SimpleType instances for use by EDM Instance documents-->
  <xs:simpleType name="EDMSimpleType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Binary"/>
      <xs:enumeration value="Boolean"/>
      <xs:enumeration value="Byte"/>
      <xs:enumeration value="DateTime"/>
      <xs:enumeration value="DateTimeOffset"/>
      <xs:enumeration value="Time"/>
      <xs:enumeration value="Decimal"/>
      <xs:enumeration value="Double"/>
      <xs:enumeration value="Single"/>
      <xs:enumeration value="Guid"/>
      <xs:enumeration value="Int16"/>
      <xs:enumeration value="Int32"/>
      <xs:enumeration value="Int64"/>
      <xs:enumeration value="String"/>
      <xs:enumeration value="SByte"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TMax">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Max"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- Facets for Primitive types -->
  <xs:simpleType name="TMaxLengthFacet">
    <xs:union memberTypes="edm:TMax xs:nonNegativeInteger  "/>
  </xs:simpleType>
  <xs:simpleType name="TIsFixedLengthFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
  <xs:simpleType name="TPrecisionFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>
  <xs:simpleType name="TScaleFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>
  <xs:simpleType name="TIsUnicodeFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
  <xs:simpleType name="TCollationFacet">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!--
        types at all levels
    -->
  <xs:complexType name="TDocumentation">
    <xs:annotation>
      <xs:documentation>The Documentation element is used to provide documentation of comments on the contents of the XML file.  It is valid under Schema, Type, Index and Relationship elements.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Summary" type="edm:TText" minOccurs="0" maxOccurs="1"/>
      <xs:element name="LongDescription" type="edm:TText" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>
  <xs:complexType name="TText" mixed="true">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>
  <xs:complexType name="TXmlOrText" mixed="true">
    <xs:annotation>
      <xs:documentation>This type allows pretty much any content</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="skip" namespace="##any"/>
  </xs:complexType>
  <!-- 
        types of the top level elements 
    -->
  <xs:complexType name="TUsing">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Namespace" type="edm:TNamespaceName" use="required"/>
    <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TAssociation">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="End" type="edm:TAssociationEnd" minOccurs="2" maxOccurs="2"/>
      <xs:element name="ReferentialConstraint" type="edm:TConstraint" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TComplexType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Property" type="edm:TComplexTypeProperty" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TTypeAttributes"/>
    <xs:attribute ref="cg:TypeAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TConstraint">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Principal" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:element name="Dependent" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TReferentialConstraintRoleElement">
    <xs:sequence>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  <xs:complexType name="TNavigationProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Relationship" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="ToRole" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="FromRole" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
    <xs:attribute ref="cg:SetterAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Key" type="edm:TEntityKeyElement" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Property" type="edm:TEntityProperty" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="NavigationProperty" type="edm:TNavigationProperty" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TDerivableTypeAttributes"/>
    <xs:attribute ref="cg:TypeAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  <xs:complexType name="TFunction">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Parameter" type="edm:TFunctionParameter" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="DefiningExpression" type="edm:TCommandText" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReturnType" type="edm:TFunctionReturnType" minOccurs="0" maxOccurs="1"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ReturnType" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionParameter">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TCollectionType">
    <xs:sequence minOccurs="1" maxOccurs="1">
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="TypeRef" type="edm:TTypeRef" minOccurs="0" maxOccurs="1"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="ElementType" type="edm:TUnwrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TTypeRef">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TUnwrappedFunctionType" use="required"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TReferenceType">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TUnwrappedFunctionType" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TRowType">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Property" type="edm:TProperty" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:choice>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TProperty">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionReturnType">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="CollectionType" type="edm:TCollectionType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ReferenceType" type="edm:TReferenceType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="RowType" type="edm:TRowType" minOccurs="0" maxOccurs="1"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TWrappedFunctionType" use="optional"/>
    <xs:attributeGroup ref="edm:TFacetAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  <xs:complexType name="TEntityKeyElement">
    <xs:sequence>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TPropertyRef">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  <xs:group name="GEmptyElementExtensibility">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>
  <!-- 
        base types  
    -->
  <xs:complexType name="TAssociationEnd">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:TOperations" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="Multiplicity" type="edm:TMultiplicity" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:group name="TOperations">
    <xs:choice>
      <xs:element name="OnDelete" type="edm:TOnAction" maxOccurs="1" minOccurs="0"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="TOnAction">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Action" type="edm:TAction" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:attribute ref="annotation:StoreGeneratedPattern" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TComplexTypeProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionImportParameter">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TFunctionImportParameterAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:attributeGroup name="TFacetAttributes">
    <xs:attribute name="Nullable" type="xs:boolean" use="optional"/>
    <xs:attribute name="DefaultValue" type="xs:string" use="optional"/>
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="FixedLength" type="edm:TIsFixedLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:attribute name="Unicode" type="edm:TIsUnicodeFacet" use="optional"/>
    <xs:attribute name="Collation" type="edm:TCollationFacet" use="optional"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="TCommonPropertyAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
    <xs:attribute name="Nullable" type="xs:boolean" default="true" use="optional"/>
    <xs:attribute name="DefaultValue" type="xs:string" use="optional"/>
    <!-- Start Facets -->
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="FixedLength" type="edm:TIsFixedLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:attribute name="Unicode" type="edm:TIsUnicodeFacet" use="optional"/>
    <xs:attribute name="Collation" type="edm:TCollationFacet" use="optional"/>
    <!--End Facets -->
    <xs:attribute name="ConcurrencyMode" type="edm:TConcurrencyMode" use="optional"/>
    <xs:attribute ref="cg:SetterAccess" use="optional"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TFunctionImportParameterAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
    <xs:attribute name="Mode" type="edm:TParameterMode" use="optional"/>
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TFunctionImportAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ReturnType" type="edm:TFunctionType" use="optional"/>
    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute ref="cg:MethodAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TTypeAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TDerivableTypeAttributes">
    <xs:attributeGroup ref="edm:TTypeAttributes"/>
    <xs:attribute name="BaseType" type="edm:TQualifiedName" use="optional"/>
    <xs:attribute name="Abstract" type="xs:boolean" use="optional" default="false"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TEntitySetAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="EntityType" type="edm:TQualifiedName" use="required"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
  </xs:attributeGroup>
  <xs:element name="EntityContainer">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="FunctionImport">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:element name="Parameter" type="edm:TFunctionImportParameter" minOccurs="0" maxOccurs="unbounded"/>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attributeGroup ref="edm:TFunctionImportAttributes"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="EntitySet">
            <xs:complexType>
              <xs:sequence>
                <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
              </xs:sequence>
              <xs:attributeGroup ref="edm:TEntitySetAttributes"/>
              <xs:anyAttribute processContents="lax" namespace="##other"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="AssociationSet">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:element name="End" minOccurs="0" maxOccurs="2">
                    <!-- 
                       1. The number of Ends has to match with ones defined in AssociationType 
                       2. Value for attribute Name should match the defined ones and EntitySet should be of the 
                          defined Entity Type in AssociationType 
                    -->
                  <xs:complexType>
                    <xs:sequence>
                      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
                    </xs:sequence>
                    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
                    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="required"/>
                  </xs:complexType>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
              <xs:attribute name="Association" type="edm:TQualifiedName" use="required"/>
              <xs:anyAttribute namespace="##other" processContents="lax"/>
            </xs:complexType>
          </xs:element>
        </xs:choice>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
      <xs:attribute name="Extends" type="edm:TSimpleIdentifier" use="optional"/>
      <xs:attribute ref="cg:TypeAccess" use="optional"/>
      <xs:attribute ref="annotation:LazyLoadingEnabled" use="optional"/>
      <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:complexType>
  </xs:element>
  <!-- 
    general  (more or less) purpose simple types 
    -->
  <xs:simpleType name="TParameterMode">
    <xs:restriction base="xs:token">
      <xs:enumeration value="In"/>
      <xs:enumeration value="Out"/>
      <xs:enumeration value="InOut"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TNamespaceName">
    <xs:restriction base="edm:TQualifiedName">
      <xs:maxLength value="512"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TQualifiedName">
    <xs:restriction base="xs:string">
      <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TSimpleIdentifier">
    <xs:restriction base="xs:string">
      <xs:maxLength value="480"/>
      <!-- The below pattern represents the allowed identifiers in ECMA specification -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TPropertyType">
    <xs:union memberTypes="edm:EDMSimpleType edm:TQualifiedName  ">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
          <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TCommandText">
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TFunctionType">
    <xs:union memberTypes="edm:TQualifiedName    ">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="Collection\([^ \t]{1,}(\.[^ \t]{1,}){0,}\)"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TWrappedFunctionType">
    <xs:union memberTypes="edm:TQualifiedName    ">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="(Collection|Ref)\([^ \t]{1,}(\.[^ \t]{1,}){0,}\)"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TUnwrappedFunctionType">
    <xs:union memberTypes="edm:TQualifiedName    ">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="[^ \t]{1,}(\.[^ \t]{1,}){0,}"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TAction">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Cascade"/>
      <xs:enumeration value="None"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TMultiplicity">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0..1"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="*"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TConcurrencyMode">
    <xs:restriction base="xs:token">
      <xs:enumeration value="None"/>
      <xs:enumeration value="Fixed"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
]P<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration" xmlns:edm="http://schemas.microsoft.com/ado/2007/05/edm" targetNamespace="http://schemas.microsoft.com/ado/2007/05/edm">
  <xs:annotation>
    <xs:documentation xml:lang="en">
            Common Data Model Schema Definition Language.
            Copyright (c) Microsoft Corp. All rights reserved.
        </xs:documentation>
  </xs:annotation>
  <xs:import namespace="http://schemas.microsoft.com/ado/2006/04/codegeneration" schemaLocation="System.Data.Resources.CodeGenerationSchema.xsd"/>
  <xs:element name="Schema" type="edm:TSchema"/>
  <xs:complexType name="TSchema">
    <xs:sequence>
      <xs:group ref="edm:GSchemaBodyElements" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Namespace" type="edm:TNamespaceName" use="required"/>
    <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:group name="GSchemaBodyElements">
    <xs:choice>
      <xs:element name="Using" type="edm:TUsing" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="Association" type="edm:TAssociation" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="ComplexType" type="edm:TComplexType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="EntityType" type="edm:TEntityType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="edm:EntityContainer" minOccurs="1" maxOccurs="1"/>
    </xs:choice>
  </xs:group>
  <!-- EDM SimpleType instances for use by EDM Instance documents-->
  <xs:simpleType name="EDMSimpleType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Binary"/>
      <xs:enumeration value="Boolean"/>
      <xs:enumeration value="Byte"/>
      <xs:enumeration value="DateTime"/>
      <xs:enumeration value="DateTimeOffset"/>
      <xs:enumeration value="Time"/>
      <xs:enumeration value="Decimal"/>
      <xs:enumeration value="Double"/>
      <xs:enumeration value="Single"/>
      <xs:enumeration value="Guid"/>
      <xs:enumeration value="Int16"/>
      <xs:enumeration value="Int32"/>
      <xs:enumeration value="Int64"/>
      <xs:enumeration value="String"/>
      <xs:enumeration value="SByte"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TMax">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Max"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- Facets for Primitive types -->
  <xs:simpleType name="TMaxLengthFacet">
    <xs:union memberTypes="edm:TMax xs:nonNegativeInteger  "/>
  </xs:simpleType>
  <xs:simpleType name="TIsFixedLengthFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
  <xs:simpleType name="TPrecisionFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>
  <xs:simpleType name="TScaleFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>
  <xs:simpleType name="TIsUnicodeFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
  <xs:simpleType name="TCollationFacet">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!--
        types at all levels
    -->
  <xs:complexType name="TDocumentation">
    <xs:annotation>
      <xs:documentation>The Documentation element is used to provide documentation of comments on the contents of the XML file.  It is valid under Schema, Type, Index and Relationship elements.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Summary" type="edm:TText" minOccurs="0" maxOccurs="1"/>
      <xs:element name="LongDescription" type="edm:TText" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>
  <xs:complexType name="TText" mixed="true">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>
  <xs:complexType name="TXmlOrText" mixed="true">
    <xs:annotation>
      <xs:documentation>This type allows pretty much any content</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="skip" namespace="##any"/>
  </xs:complexType>
  <!-- 
        types of the top level elements 
    -->
  <xs:complexType name="TUsing">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Namespace" type="edm:TNamespaceName" use="required"/>
    <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TAssociation">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="End" type="edm:TAssociationEnd" minOccurs="2" maxOccurs="2"/>
      <xs:element name="ReferentialConstraint" type="edm:TConstraint" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TComplexType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Property" type="edm:TComplexTypeProperty" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TDerivableTypeAttributes"/>
    <xs:attribute ref="cg:TypeAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TConstraint">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Principal" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:element name="Dependent" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TReferentialConstraintRoleElement">
    <xs:sequence>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  <xs:complexType name="TNavigationProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Relationship" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="ToRole" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="FromRole" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
    <xs:attribute ref="cg:SetterAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Key" type="edm:TEntityKeyElement" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Property" type="edm:TEntityProperty" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="NavigationProperty" type="edm:TNavigationProperty" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TDerivableTypeAttributes"/>
    <xs:attribute ref="cg:TypeAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityKeyElement">
    <xs:sequence>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TPropertyRef">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  <xs:group name="GEmptyElementExtensibility">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>
  <!-- 
        base types  
    -->
  <xs:complexType name="TAssociationEnd">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:TOperations" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="Multiplicity" type="edm:TMultiplicity" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:group name="TOperations">
    <xs:choice>
      <xs:element name="OnDelete" type="edm:TOnAction" maxOccurs="1" minOccurs="0"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="TOnAction">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Action" type="edm:TAction" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TComplexTypeProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionImportParameter">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TFunctionImportParameterAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:attributeGroup name="TCommonPropertyAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
    <xs:attribute name="Nullable" type="xs:boolean" default="true" use="optional"/>
    <xs:attribute name="DefaultValue" type="xs:string" use="optional"/>
    <xs:attribute name="CollectionKind" type="edm:TPropertyCollectionKind" use="optional"/>
    <!-- Start Facets -->
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="FixedLength" type="edm:TIsFixedLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:attribute name="Unicode" type="edm:TIsUnicodeFacet" use="optional"/>
    <xs:attribute name="Collation" type="edm:TCollationFacet" use="optional"/>
    <!--End Facets -->
    <xs:attribute name="ConcurrencyMode" type="edm:TConcurrencyMode" use="optional"/>
    <xs:attribute ref="cg:SetterAccess" use="optional"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TFunctionImportParameterAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
    <xs:attribute name="Mode" type="edm:TParameterMode" use="optional"/>
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TFunctionImportAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ReturnType" type="edm:TFunctionType" use="optional"/>
    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute ref="cg:MethodAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TTypeAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TDerivableTypeAttributes">
    <xs:attributeGroup ref="edm:TTypeAttributes"/>
    <xs:attribute name="BaseType" type="edm:TQualifiedName" use="optional"/>
    <xs:attribute name="Abstract" type="xs:boolean" use="optional" default="false"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TEntitySetAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="EntityType" type="edm:TQualifiedName" use="required"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
  </xs:attributeGroup>
  <xs:element name="EntityContainer">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="FunctionImport">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:element name="Parameter" type="edm:TFunctionImportParameter" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attributeGroup ref="edm:TFunctionImportAttributes"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="EntitySet">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
              </xs:sequence>
              <xs:attributeGroup ref="edm:TEntitySetAttributes"/>
              <xs:anyAttribute processContents="lax" namespace="##other"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="AssociationSet">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:element name="End" minOccurs="0" maxOccurs="2">
                  <!-- 
                       1. The number of Ends has to match with ones defined in AssociationType 
                       2. Value for attribute Name should match the defined ones and EntitySet should be of the 
                          defined Entity Type in AssociationType 
                    -->
                  <xs:complexType>
                    <xs:sequence>
                      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
                    </xs:sequence>
                    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
                    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="required"/>
                  </xs:complexType>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
              <xs:attribute name="Association" type="edm:TQualifiedName" use="required"/>
              <xs:anyAttribute namespace="##other" processContents="lax"/>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
      <xs:attribute name="Extends" type="edm:TSimpleIdentifier" use="optional"/>
    </xs:complexType>
  </xs:element>
  <!-- 
    general  (more or less) purpose simple types 
    -->
  <xs:simpleType name="TParameterMode">
    <xs:restriction base="xs:token">
      <xs:enumeration value="In"/>
      <xs:enumeration value="Out"/>
      <xs:enumeration value="InOut"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TPropertyCollectionKind">
    <xs:restriction base="xs:token">
      <xs:enumeration value="None"/>
      <xs:enumeration value="List"/>
      <xs:enumeration value="Bag"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TNamespaceName">
    <xs:restriction base="edm:TQualifiedName">
      <xs:maxLength value="512"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TQualifiedName">
    <xs:restriction base="xs:string">
      <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TSimpleIdentifier">
    <xs:restriction base="xs:string">
      <xs:maxLength value="480"/>
      <!-- The below pattern represents the allowed identifiers in ECMA specification -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TPropertyType">
    <xs:union memberTypes="edm:EDMSimpleType edm:TQualifiedName  ">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
          <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TFunctionType">
    <xs:union memberTypes="edm:TQualifiedName    ">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="Collection\([^ \t]{1,}(\.[^ \t]{1,}){0,}\)"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TAction">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Cascade"/>
      <xs:enumeration value="None"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TMultiplicity">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0..1"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="*"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TConcurrencyMode">
    <xs:restriction base="xs:token">
      <xs:enumeration value="None"/>
      <xs:enumeration value="Fixed"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
O<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration" xmlns:edm="http://schemas.microsoft.com/ado/2006/04/edm" targetNamespace="http://schemas.microsoft.com/ado/2006/04/edm">
  <xs:annotation>
    <xs:documentation xml:lang="en">
            Common Data Model Schema Definition Language.
            Copyright (c) Microsoft Corp. All rights reserved.
        </xs:documentation>
  </xs:annotation>
  <xs:import namespace="http://schemas.microsoft.com/ado/2006/04/codegeneration" schemaLocation="System.Data.Resources.CodeGenerationSchema.xsd"/>
  <xs:element name="Schema" type="edm:TSchema"/>
  <xs:complexType name="TSchema">
    <xs:sequence>
      <xs:group ref="edm:GSchemaBodyElements" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Namespace" type="edm:TNamespaceName" use="required"/>
    <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:group name="GSchemaBodyElements">
    <xs:choice>
      <xs:element name="Using" type="edm:TUsing" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="Association" type="edm:TAssociation" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="ComplexType" type="edm:TComplexType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="EntityType" type="edm:TEntityType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="edm:EntityContainer" minOccurs="1" maxOccurs="1"/>
    </xs:choice>
  </xs:group>
  <!-- EDM SimpleType instances for use by EDM Instance documents-->
  <xs:simpleType name="EDMSimpleType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Binary"/>
      <xs:enumeration value="Boolean"/>
      <xs:enumeration value="Byte"/>
      <xs:enumeration value="DateTime"/>
      <xs:enumeration value="DateTimeOffset"/>
      <xs:enumeration value="Time"/>
      <xs:enumeration value="Decimal"/>
      <xs:enumeration value="Double"/>
      <xs:enumeration value="Single"/>
      <xs:enumeration value="Guid"/>
      <xs:enumeration value="Int16"/>
      <xs:enumeration value="Int32"/>
      <xs:enumeration value="Int64"/>
      <xs:enumeration value="String"/>
      <xs:enumeration value="SByte"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TMax">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Max"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- Facets for Primitive types -->
  <xs:simpleType name="TMaxLengthFacet">
    <xs:union memberTypes="edm:TMax xs:nonNegativeInteger  "/>
  </xs:simpleType>
  <xs:simpleType name="TIsFixedLengthFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
  <xs:simpleType name="TPrecisionFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>
  <xs:simpleType name="TScaleFacet">
    <xs:restriction base="xs:nonNegativeInteger"/>
  </xs:simpleType>
  <xs:simpleType name="TIsUnicodeFacet">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
  <xs:simpleType name="TCollationFacet">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!--
        types at all levels
    -->
  <xs:complexType name="TDocumentation">
    <xs:annotation>
      <xs:documentation>The Documentation element is used to provide documentation of comments on the contents of the XML file.  It is valid under Schema, Type, Index and Relationship elements.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Summary" type="edm:TText" minOccurs="0" maxOccurs="1"/>
      <xs:element name="LongDescription" type="edm:TText" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>
  <xs:complexType name="TText" mixed="true">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:complexType>
  <xs:complexType name="TXmlOrText" mixed="true">
    <xs:annotation>
      <xs:documentation>This type allows pretty much any content</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute processContents="skip" namespace="##any"/>
  </xs:complexType>
  <!-- 
        types of the top level elements 
    -->
  <xs:complexType name="TUsing">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Namespace" type="edm:TNamespaceName" use="required"/>
    <xs:attribute name="Alias" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TAssociation">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="End" type="edm:TAssociationEnd" minOccurs="2" maxOccurs="2"/>
      <xs:element name="ReferentialConstraint" type="edm:TConstraint" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TComplexType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Property" type="edm:TComplexTypeProperty" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TTypeAttributes"/>
    <xs:attribute ref="cg:TypeAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TConstraint">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Principal" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:element name="Dependent" type="edm:TReferentialConstraintRoleElement" minOccurs="1" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TReferentialConstraintRoleElement">
    <xs:sequence>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  <xs:complexType name="TNavigationProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Relationship" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="ToRole" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="FromRole" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
    <xs:attribute ref="cg:SetterAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityType">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Key" type="edm:TEntityKeyElement" minOccurs="0" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Property" type="edm:TEntityProperty" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="NavigationProperty" type="edm:TNavigationProperty" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TDerivableTypeAttributes"/>
    <xs:attribute ref="cg:TypeAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityKeyElement">
    <xs:sequence>
      <xs:element name="PropertyRef" type="edm:TPropertyRef" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TPropertyRef">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  <xs:group name="GEmptyElementExtensibility">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>
  <!-- 
        base types  
    -->
  <xs:complexType name="TAssociationEnd">
    <xs:sequence>
      <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
      <xs:group ref="edm:TOperations" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Type" type="edm:TQualifiedName" use="required"/>
    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="Multiplicity" type="edm:TMultiplicity" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:group name="TOperations">
    <xs:choice>
      <xs:element name="OnDelete" type="edm:TOnAction" maxOccurs="1" minOccurs="0"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="TOnAction">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Action" type="edm:TAction" use="required"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TEntityProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TComplexTypeProperty">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TCommonPropertyAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="TFunctionImportParameter">
    <xs:sequence>
      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attributeGroup ref="edm:TFunctionImportParameterAttributes"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:attributeGroup name="TCommonPropertyAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
    <xs:attribute name="Nullable" type="xs:boolean" default="true" use="optional"/>
    <xs:attribute name="DefaultValue" type="xs:string" use="optional"/>
    <!-- Start Facets -->
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="FixedLength" type="edm:TIsFixedLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:attribute name="Unicode" type="edm:TIsUnicodeFacet" use="optional"/>
    <xs:attribute name="Collation" type="edm:TCollationFacet" use="optional"/>
    <!--End Facets -->
    <xs:attribute name="ConcurrencyMode" type="edm:TConcurrencyMode" use="optional"/>
    <xs:attribute ref="cg:SetterAccess" use="optional"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TFunctionImportParameterAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Type" type="edm:TPropertyType" use="required"/>
    <xs:attribute name="Mode" type="edm:TParameterMode" use="optional"/>
    <xs:attribute name="MaxLength" type="edm:TMaxLengthFacet" use="optional"/>
    <xs:attribute name="Precision" type="edm:TPrecisionFacet" use="optional"/>
    <xs:attribute name="Scale" type="edm:TScaleFacet" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TFunctionImportAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ReturnType" type="edm:TFunctionType" use="optional"/>
    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="optional"/>
    <xs:attribute ref="cg:MethodAccess" use="optional"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TTypeAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TDerivableTypeAttributes">
    <xs:attributeGroup ref="edm:TTypeAttributes"/>
    <xs:attribute name="BaseType" type="edm:TQualifiedName" use="optional"/>
    <xs:attribute name="Abstract" type="xs:boolean" use="optional" default="false"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="TEntitySetAttributes">
    <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
    <xs:attribute name="EntityType" type="edm:TQualifiedName" use="required"/>
    <xs:attribute ref="cg:GetterAccess" use="optional"/>
  </xs:attributeGroup>
  <xs:element name="EntityContainer">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="FunctionImport">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:element name="Parameter" type="edm:TFunctionImportParameter" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attributeGroup ref="edm:TFunctionImportAttributes"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="EntitySet">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
              </xs:sequence>
              <xs:attributeGroup ref="edm:TEntitySetAttributes"/>
              <xs:anyAttribute processContents="lax" namespace="##other"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="AssociationSet">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1"/>
                <xs:element name="End" minOccurs="0" maxOccurs="2">
                    <!-- 
                       1. The number of Ends has to match with ones defined in AssociationType 
                       2. Value for attribute Name should match the defined ones and EntitySet should be of the 
                          defined Entity Type in AssociationType 
                    -->
                  <xs:complexType>
                    <xs:sequence>
                      <xs:group ref="edm:GEmptyElementExtensibility" minOccurs="0" maxOccurs="1"/>
                    </xs:sequence>
                    <xs:attribute name="Role" type="edm:TSimpleIdentifier" use="optional"/>
                    <xs:attribute name="EntitySet" type="edm:TSimpleIdentifier" use="required"/>
                  </xs:complexType>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
              <xs:attribute name="Association" type="edm:TQualifiedName" use="required"/>
              <xs:anyAttribute namespace="##other" processContents="lax"/>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="Name" type="edm:TSimpleIdentifier" use="required"/>
      <xs:attribute name="Extends" type="edm:TSimpleIdentifier" use="optional"/>
    </xs:complexType>
  </xs:element>
  <!-- 
    general  (more or less) purpose simple types 
    -->
  <xs:simpleType name="TParameterMode">
    <xs:restriction base="xs:token">
      <xs:enumeration value="In"/>
      <xs:enumeration value="Out"/>
      <xs:enumeration value="InOut"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TNamespaceName">
    <xs:restriction base="edm:TQualifiedName">
      <xs:maxLength value="512"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TQualifiedName">
    <xs:restriction base="xs:string">
      <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TSimpleIdentifier">
    <xs:restriction base="xs:string">
      <xs:maxLength value="480"/>
      <!-- The below pattern represents the allowed identifiers in ECMA specification -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TPropertyType">
    <xs:union memberTypes="edm:EDMSimpleType edm:TQualifiedName  ">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
          <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TFunctionType">
    <xs:union memberTypes="edm:TQualifiedName    ">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="Collection\([^ \t]{1,}(\.[^ \t]{1,}){0,}\)"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TAction">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Cascade"/>
      <xs:enumeration value="None"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TMultiplicity">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0..1"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="*"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TConcurrencyMode">
    <xs:restriction base="xs:token">
      <xs:enumeration value="None"/>
      <xs:enumeration value="Fixed"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
�<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="CodeGenerationSchema" targetNamespace="http://schemas.microsoft.com/ado/2006/04/codegeneration" elementFormDefault="unqualified" xmlns="http://schemas.microsoft.com/ado/2006/04/codegeneration" xmlns:xs="http://www.w3.org/2001/XMLSchema">


    <xs:attribute name="SetterAccess" type="TAccess"/>
    <xs:attribute name="GetterAccess" type="TAccess"/>
    <xs:attribute name="TypeAccess" type="TPublicOrInternalAccess"/>
    <xs:attribute name="MethodAccess" type="TAccess"/>
    <xs:attribute name="ExternalTypeName" type="xs:string"/>
  
    <xs:simpleType name="TAccess">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Public"/>
            <xs:enumeration value="Internal"/>
			      <xs:enumeration value="Protected"/>
            <xs:enumeration value="Private"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="TPublicOrInternalAccess">
        <xs:restriction base="TAccess">
            <xs:enumeration value="Public"/>
            <xs:enumeration value="Internal"/>
        </xs:restriction>
    </xs:simpleType>

</xs:schema>
%D<?xml version="1.0"?>
<!-- XSD for CS (CDM <-> Storage) space mapping. -->
<xs:schema xmlns:tns="http://schemas.microsoft.com/ado/2009/11/mapping/cs" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/ado/2009/11/mapping/cs" xmlns:csmsl="http://schemas.microsoft.com/ado/2009/11/mapping/cs" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:annotation>
    <xs:documentation xml:lang="en">
      Common Data Model Schema Definition Language.
      Copyright (c) Microsoft Corp. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <!-- Root Level element for CS mapping -->
  <xs:element name="Mapping" type="csmsl:TMapping"/>

  <!-- Type of root level mapping elements -->
  <xs:complexType name="TMapping">
    <!-- Top level mapping element can have Alias elements followed by one EntityContainerMapping element. -->
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Alias" type="csmsl:TAlias"/>
      <xs:element name="EntityContainerMapping" type="csmsl:TEntityContainerMapping"/>
    </xs:sequence>
    <!-- Space represents the space that the mapping occurs. For CS mapping it always has to be "C-S"-->
    <xs:attribute name="Space" type="csmsl:TSpace" use="required" fixed="C-S"/>
  </xs:complexType>

  <!-- Type for Alias element -->
  <xs:complexType name="TAlias">
    <xs:attribute name="Key" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Value" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for EntityContainerMapping element-->
  <xs:complexType name="TEntityContainerMapping">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="EntitySetMapping" type="csmsl:TEntitySetMapping"/>
      <xs:element name="AssociationSetMapping" type="csmsl:TAssociationSetMapping"/>
      <xs:element name="FunctionImportMapping" type="csmsl:TFunctionImportMapping"/>
    </xs:choice>
    <xs:attribute name="CdmEntityContainer" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="StorageEntityContainer" type="xs:string" use="required"/>
    <xs:attribute name="GenerateUpdateViews" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for FunctionImportMapping element -->
  <xs:complexType name="TFunctionImportMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ResultMapping" type="csmsl:TFunctionImportMappingResultMapping"/>
    </xs:sequence>
    <xs:attribute name="FunctionName" type="xs:string" use="required"/>
    <xs:attribute name="FunctionImportName" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for FunctionImportMapping/ResultMapping element -->
  <xs:complexType name="TFunctionImportMappingResultMapping">
    <xs:choice>
      <xs:element maxOccurs="unbounded" name="EntityTypeMapping" type="csmsl:TFunctionImportEntityTypeMapping"/>
      <xs:element name="ComplexTypeMapping" type="csmsl:TFunctionImportComplexTypeMapping"/>
    </xs:choice>
  </xs:complexType>

  <!-- Type for (FunctionMapping|FunctionImportMapping)/EntityTypeMapping element -->
  <xs:complexType name="TFunctionImportEntityTypeMapping">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="ScalarProperty" type="csmsl:TScalarProperty"/>
      <xs:element name="Condition" type="csmsl:TFunctionImportCondition"/>
    </xs:choice>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for FunctionImportMapping/Condition element-->
  <xs:complexType name="TFunctionImportCondition">
    <xs:attribute name="Value" type="xs:string" use="optional"/>
    <xs:attribute name="ColumnName" type="xs:string" use="required"/>
    <xs:attribute name="IsNull" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for FunctionImportMapping/ComplexTypeMapping element -->
  <xs:complexType name="TFunctionImportComplexTypeMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ScalarProperty" type="csmsl:TScalarProperty"/>
    </xs:sequence>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for EntitySet mapping element -->
  <xs:complexType name="TEntitySetMapping">
    <xs:choice>
      <xs:choice>
        <xs:sequence>
          <xs:element name="QueryView" type="csmsl:TQueryView" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="EntityTypeMapping" type="csmsl:TEntityTypeMapping" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:sequence>
          <xs:element name="MappingFragment" type="csmsl:TMappingFragment" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:choice>
      <xs:group ref="csmsl:TPropertyGroup"/>
    </xs:choice>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="xs:string" use="optional"/>
    <xs:attribute name="StoreEntitySet" type="xs:string" use="optional"/>
    <xs:attribute name="MakeColumnsDistinct" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for AssociationSetMapping element -->
  <xs:complexType name="TAssociationSetMapping">
    <xs:sequence>
      <xs:element name="QueryView" type="xs:string" minOccurs="0"/>
      <xs:element name="EndProperty" type="csmsl:TEndProperty" minOccurs="0" maxOccurs="2"/>
      <xs:element name="Condition" type="csmsl:TCondition" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="ModificationFunctionMapping" type="csmsl:TAssociationSetModificationFunctionMapping" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="csmsl:TQualifiedName" use="optional"/>
    <xs:attribute name="StoreEntitySet" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Type for QueryView element -->
  <xs:complexType name="TQueryView">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="TypeName" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <!-- Type for EntityTypeMapping element-->
  <xs:complexType name="TEntityTypeMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="MappingFragment" type="csmsl:TMappingFragment"/>
      <xs:element minOccurs="0" name="ModificationFunctionMapping" type="csmsl:TEntityTypeModificationFunctionMapping"/>
    </xs:sequence>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for MappingFragment element -->
  <xs:complexType name="TMappingFragment">
    <xs:group ref="csmsl:TPropertyGroup"/>
    <xs:attribute name="StoreEntitySet" type="xs:string" use="required"/>
    <xs:attribute name="MakeColumnsDistinct" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for EntityTypeMapping/ModificationFunctionMapping element -->
  <xs:complexType name="TEntityTypeModificationFunctionMapping">
    <xs:all>
      <xs:element minOccurs="0" name="DeleteFunction" type="csmsl:TEntityTypeModificationFunction"/>
      <xs:element minOccurs="0" name="InsertFunction" type="csmsl:TEntityTypeModificationFunctionWithResult"/>
      <xs:element minOccurs="0" name="UpdateFunction" type="csmsl:TEntityTypeModificationFunctionWithResult"/>
    </xs:all>
  </xs:complexType>

  <!-- Type for AssociationSetMapping/ModificationFunctionMapping element -->
  <xs:complexType name="TAssociationSetModificationFunctionMapping">
    <xs:all>
      <xs:element minOccurs="0" name="DeleteFunction" type="csmsl:TAssociationSetModificationFunction"/>
      <xs:element minOccurs="0" name="InsertFunction" type="csmsl:TAssociationSetModificationFunction"/>
    </xs:all>
  </xs:complexType>

  <!-- Type for entity type DeleteFunction -->
  <xs:complexType name="TEntityTypeModificationFunction">
    <xs:group ref="csmsl:TEntityTypeModificationFunctionMappingPropertyGroup"/>
    <xs:attribute name="FunctionName" type="xs:string" use="required"/>
    <xs:attribute name="RowsAffectedParameter" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Extensions to modification function for entity type InsertFunction and UpdateFunction -->
  <xs:complexType name="TEntityTypeModificationFunctionWithResult">
    <xs:complexContent>
      <xs:extension base="csmsl:TEntityTypeModificationFunction">
        <xs:group ref="csmsl:TResultBindingGroup"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- Type for association set DeleteFunction and InsertFunction -->
  <xs:complexType name="TAssociationSetModificationFunction">
    <xs:group ref="csmsl:TAssociationSetModificationFunctionMappingPropertyGroup"/>
    <xs:attribute name="FunctionName" type="xs:string" use="required"/>
    <xs:attribute name="RowsAffectedParameter" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Grouping for entity type function mappings -->
  <xs:group name="TEntityTypeModificationFunctionMappingPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="ScalarProperty" type="csmsl:TModificationFunctionMappingScalarProperty"/>
        <xs:element minOccurs="0" name="AssociationEnd" type="csmsl:TModificationFunctionMappingAssociationEnd"/>
        <xs:element minOccurs="0" name="ComplexProperty" type="csmsl:TModificationFunctionMappingComplexProperty"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Grouping for entity type function mappings -->
  <xs:group name="TAssociationSetModificationFunctionMappingPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="EndProperty" type="csmsl:TModificationFunctionMappingEndProperty"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Type for function mapping end property -->
  <xs:complexType name="TModificationFunctionMappingEndProperty">
    <xs:group ref="csmsl:TModificationFunctionMappingAssociationEndPropertyGroup"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for function mapping scalar property -->
  <xs:complexType name="TModificationFunctionMappingScalarProperty">
    <xs:attribute name="ParameterName" type="xs:string" use="required"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Version" type="csmsl:TVersion" use="optional"/>
  </xs:complexType>

  <!-- Type for function mapping result binding -->
  <xs:complexType name="TResultBinding">
    <xs:attribute name="ColumnName" type="xs:string" use="required"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for function mapping association end -->
  <xs:complexType name="TModificationFunctionMappingAssociationEnd">
    <xs:group ref="csmsl:TModificationFunctionMappingAssociationEndPropertyGroup"/>
    <xs:attribute name="AssociationSet" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="From" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="To" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Grouping for property bindings in function mapping end property -->
  <xs:group name="TModificationFunctionMappingAssociationEndPropertyGroup">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ScalarProperty" type="csmsl:TModificationFunctionMappingScalarProperty"/>
    </xs:sequence>
  </xs:group>

  <!-- Type for function mapping complex property -->
  <xs:complexType name="TModificationFunctionMappingComplexProperty">
    <xs:group ref="csmsl:TModificationFunctionMappingComplexPropertyPropertyGroup"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Grouping for result bindings in function mappings -->
  <xs:group name="TResultBindingGroup">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ResultBinding" type="csmsl:TResultBinding"/>
    </xs:sequence>
  </xs:group>

  <!-- Grouping for property bindings in function mapping association end -->
  <xs:group name="TModificationFunctionMappingComplexPropertyPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="ScalarProperty" type="csmsl:TModificationFunctionMappingScalarProperty"/>
        <xs:element minOccurs="0" name="ComplexProperty" type="csmsl:TModificationFunctionMappingComplexProperty"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Grouping these elements so that they can be reused
       These elements represent the property group
       that can either directly reside unser EntitySet, EntityType
       or MappingFragment-->
  <xs:group name="TPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="ComplexProperty" type="csmsl:TComplexProperty"/>
        <xs:element minOccurs="0" name="ScalarProperty" type="csmsl:TScalarProperty"/>
        <xs:element minOccurs="0" name="Condition" type="csmsl:TCondition"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Type for Condition Element-->
  <xs:complexType name="TCondition">
    <xs:attribute name="Value" type="xs:string" use="optional"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="ColumnName" type="xs:string" use="optional"/>
    <xs:attribute name="IsNull" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for End Property Elements in Association Maps -->
  <xs:complexType name="TEndProperty">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="ScalarProperty" type="csmsl:TScalarProperty"/>
    </xs:sequence>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for Complex Property Map elements-->
  <xs:complexType name="TComplexProperty">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="ScalarProperty" type="csmsl:TScalarProperty"/>
        <xs:element name="ComplexProperty" type="csmsl:TComplexProperty"/>
        <xs:element name="ComplexTypeMapping" type="csmsl:TComplexTypeMapping"/>
        <xs:element name="Condition" type="csmsl:TCondition"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="xs:string" use="optional"/>
    <xs:attribute name="IsPartial" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for Complex Type mapping element-->
  <xs:complexType name="TComplexTypeMapping">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="ScalarProperty" type="csmsl:TScalarProperty"/>
        <xs:element name="ComplexProperty" type="csmsl:TComplexProperty"/>
        <xs:element name="Condition" type="csmsl:TCondition"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="TypeName" type="xs:string" use="optional"/>
    <xs:attribute name="IsPartial" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for ScalarProperty Element-->
  <xs:complexType name="TScalarProperty">
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ColumnName" type="xs:string" use="required"/>
  </xs:complexType>

  <!--Definition for SimpleIdentifier
      This is the same definition that is being used in the CSDL XSD
      -->
  <xs:simpleType name="TSimpleIdentifier">
    <xs:restriction base="xs:token">
      <!-- The below pattern represents the allowed identifiers in ECMA specification -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}"/>
    </xs:restriction>
  </xs:simpleType>

  <!--Definition for QualifiedName. QualifiedName is SimpleIdentifiers with '.'
      allowed. This is the same definition that is being used in the CSDL XSD
      -->
  <xs:simpleType name="TQualifiedName">
    <xs:restriction base="xs:token">
      <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
      <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
    </xs:restriction>
  </xs:simpleType>

  <!--Definition for Version, which can 'original' or 'current' as its value-->
  <xs:simpleType name="TVersion">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Original"/>
      <xs:enumeration value="Current"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- Type fopr Space or Type Attribute -->
  <xs:simpleType name="TSpace">
    <xs:restriction base="xs:token">
      <xs:enumeration value="C-S"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
�E<?xml version="1.0"?>
<!-- XSD for CS( CDM <-> Storage ) space mapping. -->
<xs:schema xmlns:tns="http://schemas.microsoft.com/ado/2008/09/mapping/cs" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/ado/2008/09/mapping/cs" xmlns:csmsl="http://schemas.microsoft.com/ado/2008/09/mapping/cs" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:annotation>
    <xs:documentation xml:lang="en">
      Common Data Model Schema Definition Language.
      Copyright (c) Microsoft Corp. All rights reserved.
    </xs:documentation>
  </xs:annotation>
  
  <!-- Root Level element for CS Mapping -->
  <xs:element name="Mapping" type="csmsl:TMapping"/>

  <!-- Type of Root level mapping elements-->
  <xs:complexType name="TMapping">
    <!-- Top level Mapping element can have Alias elements followed by 
         EntityContainer Mapping element-->
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Alias" type="csmsl:TAlias"/>
      <!-- For now we will allow only one EntityContainerMapping to be mapped per MSL File.-->
      <xs:element name="EntityContainerMapping" type="csmsl:TEntityContainerMapping"/>
    </xs:sequence>
    <!-- Space represents the space that the mapping occurs. For CS Mapping
         it always has to be "C-S"-->
    <xs:attribute name="Space" type="csmsl:TSpace" use="required" fixed="C-S"/>
  </xs:complexType>

  <!-- Type for QueryView Element -->
  <xs:complexType name="TQueryView">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="TypeName" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>




  <!-- Type for Alias Element-->
  <xs:complexType name="TAlias">
    <xs:attribute name="Key" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Value" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for EntityContainerMapping Element-->
  <xs:complexType name="TEntityContainerMapping">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="EntitySetMapping" type="csmsl:TEntitySetMapping"/>
        <xs:element minOccurs="0" name="AssociationSetMapping" type="csmsl:TAssociationSetMapping"/>
        <xs:element minOccurs="0" name="FunctionImportMapping" type="csmsl:TFunctionImportMapping"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="CdmEntityContainer" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="StorageEntityContainer" type="xs:string" use="required"/>
    <xs:attribute name="GenerateUpdateViews" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for FunctionImport Mapping element -->
  <xs:complexType name="TFunctionImportMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="ResultMapping" type="csmsl:TFunctionImportMappingResultMapping"/>
    </xs:sequence>
    <xs:attribute name="FunctionName" type="xs:string" use="required"/>
    <xs:attribute name="FunctionImportName" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  
  <!-- Type for FunctionImport/ResultMapping element -->
  <xs:complexType name="TFunctionImportMappingResultMapping">
    <xs:choice>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="EntityTypeMapping" type="csmsl:TFunctionImportEntityTypeMapping"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ComplexTypeMapping" type="csmsl:TFunctionImportComplexTypeMapping"/>
    </xs:choice>    
  </xs:complexType>

  <!-- Type for FunctionImport EntityTypeMapping element-->
  <xs:complexType name="TFunctionImportComplexTypeMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ScalarProperty" type="csmsl:TScalarProperty"/>
    </xs:sequence>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>
  
  <!-- Type for EntitySet Mapping element-->
  <xs:complexType name="TEntitySetMapping">
    <xs:choice>
      <xs:choice>
        <xs:sequence>
          <xs:element name="QueryView" type="csmsl:TQueryView" minOccurs="0" maxOccurs="unbounded"/>
    
          <xs:element name="EntityTypeMapping" type="csmsl:TEntityTypeMapping" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:sequence>
          <xs:element name="MappingFragment" type="csmsl:TMappingFragment" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:choice>
      <xs:group ref="csmsl:TPropertyGroup"/>
    </xs:choice>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="xs:string" use="optional"/>
    <xs:attribute name="StoreEntitySet" type="xs:string" use="optional"/>
    <xs:attribute name="MakeColumnsDistinct" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for AssociationSetMapping element-->
  <xs:complexType name="TAssociationSetMapping">
    <xs:sequence>
      <xs:element name="QueryView" type="xs:string" minOccurs="0" maxOccurs="1"/>          
      <xs:element name="EndProperty" type="csmsl:TEndProperty" minOccurs="0" maxOccurs="2"/>
      <xs:element name="Condition" type="csmsl:TCondition" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="ModificationFunctionMapping" type="csmsl:TAssociationSetModificationFunctionMapping" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="csmsl:TQualifiedName" use="optional"/>
    <xs:attribute name="StoreEntitySet" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Type for EntityTypeMapping element-->
  <xs:complexType name="TEntityTypeMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="MappingFragment" type="csmsl:TMappingFragment"/>
      <xs:element minOccurs="0" maxOccurs="1" name="ModificationFunctionMapping" type="csmsl:TEntityTypeModificationFunctionMapping"/>
    </xs:sequence>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for FunctionImport EntityTypeMapping element-->
  <xs:complexType name="TFunctionImportEntityTypeMapping">
    <xs:choice maxOccurs="unbounded">
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ScalarProperty" type="csmsl:TScalarProperty"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Condition" type="csmsl:TFunctionImportCondition"/>
    </xs:choice>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>
  
  <!-- Type for MappingFragment Element-->
  <xs:complexType name="TMappingFragment">
    <xs:group ref="csmsl:TPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="StoreEntitySet" type="xs:string" use="required"/>
    <xs:attribute name="MakeColumnsDistinct" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for EntityTypeMapping/ModificationFunctionMapping element -->
  <xs:complexType name="TEntityTypeModificationFunctionMapping">
    <xs:all>
      <xs:element minOccurs="0" maxOccurs="1" name="DeleteFunction" type="csmsl:TEntityTypeModificationFunction"/>
      <xs:element minOccurs="0" maxOccurs="1" name="InsertFunction" type="csmsl:TEntityTypeModificationFunctionWithResult"/>
      <xs:element minOccurs="0" maxOccurs="1" name="UpdateFunction" type="csmsl:TEntityTypeModificationFunctionWithResult"/>
    </xs:all>
  </xs:complexType>
  
  <!-- Type for AssociationSetMapping/ModificationFunctionMapping element -->
  <xs:complexType name="TAssociationSetModificationFunctionMapping">
    <xs:all>
      <xs:element minOccurs="0" maxOccurs="1" name="DeleteFunction" type="csmsl:TAssociationSetModificationFunction"/>
      <xs:element minOccurs="0" maxOccurs="1" name="InsertFunction" type="csmsl:TAssociationSetModificationFunction"/>
    </xs:all>
  </xs:complexType>

  <!-- Type for entity type DeleteFunction -->
  <xs:complexType name="TEntityTypeModificationFunction">
    <xs:group ref="csmsl:TEntityTypeFunctionMappingPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="FunctionName" type="xs:string" use="required"/>
    <xs:attribute name="RowsAffectedParameter" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Extensions to modification function for entity type InsertFunction and UpdateFunction -->
  <xs:complexType name="TEntityTypeModificationFunctionWithResult">
    <xs:complexContent>
      <xs:extension base="csmsl:TEntityTypeModificationFunction">
        <xs:group ref="csmsl:TResultBindingGroup" minOccurs="1" maxOccurs="1"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- Type for association set DeleteFunction and InsertFunction -->
  <xs:complexType name="TAssociationSetModificationFunction">
    <xs:group ref="csmsl:TAssociationSetFunctionMappingPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="FunctionName" type="xs:string" use="required"/>
    <xs:attribute name="RowsAffectedParameter" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Grouping for entity type function mappings -->
  <xs:group name="TEntityTypeFunctionMappingPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="ScalarProperty" type="csmsl:TFunctionMappingScalarProperty"/>
        <xs:element minOccurs="0" name="AssociationEnd" type="csmsl:TFunctionMappingAssociationEnd"/>
        <xs:element minOccurs="0" name="ComplexProperty" type="csmsl:TFunctionMappingComplexProperty"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Grouping for entity type function mappings -->
  <xs:group name="TAssociationSetFunctionMappingPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="1" name="EndProperty" type="csmsl:TFunctionMappingEndProperty"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Type for function mapping end property -->
  <xs:complexType name="TFunctionMappingEndProperty">
    <xs:group ref="csmsl:TFunctionMappingAssociationEndPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for function mapping scalar property -->
  <xs:complexType name="TFunctionMappingScalarProperty">
    <xs:attribute name="ParameterName" type="xs:string" use="required"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Version" type="csmsl:TVersion" use="optional"/>
  </xs:complexType>

  <!-- Type for function mapping result binding -->
  <xs:complexType name="TResultBinding">
    <xs:attribute name="ColumnName" type="xs:string" use="required"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for function mapping association end -->
  <xs:complexType name="TFunctionMappingAssociationEnd">
    <xs:group ref="csmsl:TFunctionMappingAssociationEndPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="AssociationSet" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="From" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="To" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Grouping for property bindings in function mapping end property -->
  <xs:group name="TFunctionMappingAssociationEndPropertyGroup">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ScalarProperty" type="csmsl:TFunctionMappingScalarProperty"/>
    </xs:sequence>
  </xs:group>

  <!-- Type for function mapping complex property -->
  <xs:complexType name="TFunctionMappingComplexProperty">
    <xs:group ref="csmsl:TFunctionMappingComplexPropertyPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>  

  <!-- Grouping for result bindings in function mappings -->
  <xs:group name="TResultBindingGroup">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ResultBinding" type="csmsl:TResultBinding"/>
    </xs:sequence>
  </xs:group>

  <!-- Grouping for property bindings in function mapping association end -->
  <xs:group name="TFunctionMappingComplexPropertyPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="ScalarProperty" type="csmsl:TFunctionMappingScalarProperty"/>
        <xs:element minOccurs="0" name="ComplexProperty" type="csmsl:TFunctionMappingComplexProperty"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Grouping these elements so that they can be reused
       These elements represent the property group
       that can either directly reside unser EntitySet, EntityType
       or MappingFragment-->
  <xs:group name="TPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="ComplexProperty" type="csmsl:TComplexProperty"/>
        <xs:element minOccurs="0" name="ScalarProperty" type="csmsl:TScalarProperty"/>
        <xs:element minOccurs="0" name="Condition" type="csmsl:TCondition"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Type for Condition Element-->
  <xs:complexType name="TCondition">
    <xs:attribute name="Value" type="xs:string" use="optional"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="ColumnName" type="xs:string" use="optional"/>
    <xs:attribute name="IsNull" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for FunctionImport Condition element-->
  <xs:complexType name="TFunctionImportCondition">
    <xs:attribute name="Value" type="xs:string" use="optional"/>
    <xs:attribute name="ColumnName" type="xs:string" use="required"/>
    <xs:attribute name="IsNull" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for End Property Elements in Association Maps -->
  <xs:complexType name="TEndProperty">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="ScalarProperty" type="csmsl:TScalarProperty"/>
    </xs:sequence>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for Complex Property Map elements-->
  <xs:complexType name="TComplexProperty">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="ScalarProperty" type="csmsl:TScalarProperty"/>
        <xs:element name="ComplexProperty" type="csmsl:TComplexProperty"/>
        <xs:element name="ComplexTypeMapping" type="csmsl:TComplexTypeMapping"/>
        <xs:element name="Condition" type="csmsl:TCondition"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="xs:string" use="optional"/>
    <xs:attribute name="IsPartial" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for Complex Type mapping element-->
  <xs:complexType name="TComplexTypeMapping">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="ScalarProperty" type="csmsl:TScalarProperty"/>
        <xs:element name="ComplexProperty" type="csmsl:TComplexProperty"/>
        <xs:element name="Condition" type="csmsl:TCondition"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="TypeName" type="xs:string" use="optional"/>
    <xs:attribute name="IsPartial" type="xs:boolean" use="optional"/>
  </xs:complexType>
  
  <!-- Type for ScalarProperty Element-->
  <xs:complexType name="TScalarProperty">
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ColumnName" type="xs:string" use="required"/>
  </xs:complexType>

  <!--Definition for SimpleIdentifier
      This is the same definition that is being used in the CSDL XSD
      -->
  <xs:simpleType name="TSimpleIdentifier">
    <xs:restriction base="xs:token">
        <!-- The below pattern represents the allowed identifiers in ECMA specification -->
        <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}"/>
    </xs:restriction>
  </xs:simpleType>


  <!--Definition for QualifiedName. QualifiedName is SimpleIdentifiers with '.'
      allowed. This is the same definition that is being used in the CSDL XSD
      -->
  <xs:simpleType name="TQualifiedName">
    <xs:restriction base="xs:token">
        <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
         <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
    </xs:restriction>
  </xs:simpleType>

  <!--Definition for Version, which can 'original' or 'current' as its value-->
  <xs:simpleType name="TVersion">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Original"/>
      <xs:enumeration value="Current"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- Type fopr Space or Type Attribute -->
  <xs:simpleType name="TSpace">
    <xs:restriction base="xs:token">
      <xs:enumeration value="C-S"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
@B<?xml version="1.0"?>
<!-- XSD for CS( CDM <-> Storage ) space mapping. -->
<xs:schema xmlns:tns="urn:schemas-microsoft-com:windows:storage:mapping:CS" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:schemas-microsoft-com:windows:storage:mapping:CS" xmlns:csmsl="urn:schemas-microsoft-com:windows:storage:mapping:CS" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:annotation>
    <xs:documentation xml:lang="en">
      Common Data Model Schema Definition Language.
      Copyright (c) Microsoft Corp. All rights reserved.
    </xs:documentation>
  </xs:annotation>
  
  <!-- Root Level element for CS Mapping -->
  <xs:element name="Mapping" type="csmsl:TMapping"/>

  <!-- Type of Root level mapping elements-->
  <xs:complexType name="TMapping">
    <!-- Top level Mapping element can have Alias elements followed by 
         EntityContainer Mapping element-->
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Alias" type="csmsl:TAlias"/>
      <!-- For now we will allow only one EntityContainerMapping to be mapped per MSL File.-->
      <xs:element name="EntityContainerMapping" type="csmsl:TEntityContainerMapping"/>
    </xs:sequence>
    <!-- Space represents the space that the mapping occurs. For CS Mapping
         it always has to be "C-S"-->
    <xs:attribute name="Space" type="csmsl:TSpace" use="required" fixed="C-S"/>
  </xs:complexType>

  <!-- Type for QueryView Element -->
  <xs:complexType name="TQueryView">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="TypeName" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>




  <!-- Type for Alias Element-->
  <xs:complexType name="TAlias">
    <xs:attribute name="Key" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Value" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for EntityContainerMapping Element-->
  <xs:complexType name="TEntityContainerMapping">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="EntitySetMapping" type="csmsl:TEntitySetMapping"/>
        <xs:element minOccurs="0" name="AssociationSetMapping" type="csmsl:TAssociationSetMapping"/>
        <xs:element minOccurs="0" name="FunctionImportMapping" type="csmsl:TFunctionImportMapping"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="CdmEntityContainer" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="StorageEntityContainer" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for FunctionImport Mapping element -->
  <xs:complexType name="TFunctionImportMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="ResultMapping" type="csmsl:TFunctionImportMappingResultMapping"/>
    </xs:sequence>
    <xs:attribute name="FunctionName" type="xs:string" use="required"/>
    <xs:attribute name="FunctionImportName" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>
  
  <!-- Type for FunctionImport/ResultMapping element -->
  <xs:complexType name="TFunctionImportMappingResultMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="EntityTypeMapping" type="csmsl:TFunctionImportEntityTypeMapping"/>
    </xs:sequence>    
  </xs:complexType>

  <!-- Type for EntitySet Mapping element-->
  <xs:complexType name="TEntitySetMapping">
    <xs:choice>
      <xs:choice>
        <xs:sequence>
          <xs:element name="QueryView" type="csmsl:TQueryView" minOccurs="0" maxOccurs="unbounded"/>
    
          <xs:element name="EntityTypeMapping" type="csmsl:TEntityTypeMapping" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:sequence>
          <xs:element name="MappingFragment" type="csmsl:TMappingFragment" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:choice>
      <xs:group ref="csmsl:TPropertyGroup"/>
    </xs:choice>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="xs:string" use="optional"/>
    <xs:attribute name="StoreEntitySet" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Type for AssociationSetMapping element-->
  <xs:complexType name="TAssociationSetMapping">
    <xs:sequence>
      <xs:element name="QueryView" type="xs:string" minOccurs="0" maxOccurs="1"/>          
      <xs:element name="EndProperty" type="csmsl:TEndProperty" minOccurs="0" maxOccurs="2"/>
      <xs:element name="Condition" type="csmsl:TCondition" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="ModificationFunctionMapping" type="csmsl:TAssociationSetModificationFunctionMapping" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="csmsl:TQualifiedName" use="optional"/>
    <xs:attribute name="StoreEntitySet" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Type for EntityTypeMapping element-->
  <xs:complexType name="TEntityTypeMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="MappingFragment" type="csmsl:TMappingFragment"/>
      <xs:element minOccurs="0" maxOccurs="1" name="ModificationFunctionMapping" type="csmsl:TEntityTypeModificationFunctionMapping"/>
    </xs:sequence>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>
  
  <!-- Type for FunctionImport EntityTypeMapping element-->
  <xs:complexType name="TFunctionImportEntityTypeMapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Condition" type="csmsl:TFunctionImportCondition"/>
    </xs:sequence>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for MappingFragment Element-->
  <xs:complexType name="TMappingFragment">
    <xs:group ref="csmsl:TPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="StoreEntitySet" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- Type for EntityTypeMapping/ModificationFunctionMapping element -->
  <xs:complexType name="TEntityTypeModificationFunctionMapping">
    <xs:all>
      <xs:element minOccurs="1" maxOccurs="1" name="DeleteFunction" type="csmsl:TEntityTypeModificationFunction"/>
      <xs:element minOccurs="1" maxOccurs="1" name="InsertFunction" type="csmsl:TEntityTypeModificationFunctionWithResult"/>
      <xs:element minOccurs="1" maxOccurs="1" name="UpdateFunction" type="csmsl:TEntityTypeModificationFunctionWithResult"/>
    </xs:all>
  </xs:complexType>
  
  <!-- Type for AssociationSetMapping/ModificationFunctionMapping element -->
  <xs:complexType name="TAssociationSetModificationFunctionMapping">
    <xs:all>
      <xs:element minOccurs="1" maxOccurs="1" name="DeleteFunction" type="csmsl:TAssociationSetModificationFunction"/>
      <xs:element minOccurs="1" maxOccurs="1" name="InsertFunction" type="csmsl:TAssociationSetModificationFunction"/>
    </xs:all>
  </xs:complexType>

  <!-- Type for entity type DeleteFunction -->
  <xs:complexType name="TEntityTypeModificationFunction">
    <xs:group ref="csmsl:TEntityTypeFunctionMappingPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="FunctionName" type="xs:string" use="required"/>
    <xs:attribute name="RowsAffectedParameter" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Extensions to modification function for entity type InsertFunction and UpdateFunction -->
  <xs:complexType name="TEntityTypeModificationFunctionWithResult">
    <xs:complexContent>
      <xs:extension base="csmsl:TEntityTypeModificationFunction">
        <xs:group ref="csmsl:TResultBindingGroup" minOccurs="1" maxOccurs="1"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- Type for association set DeleteFunction and InsertFunction -->
  <xs:complexType name="TAssociationSetModificationFunction">
    <xs:group ref="csmsl:TAssociationSetFunctionMappingPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="FunctionName" type="xs:string" use="required"/>
    <xs:attribute name="RowsAffectedParameter" type="xs:string" use="optional"/>
  </xs:complexType>

  <!-- Grouping for entity type function mappings -->
  <xs:group name="TEntityTypeFunctionMappingPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="ScalarProperty" type="csmsl:TFunctionMappingScalarProperty"/>
        <xs:element minOccurs="0" name="AssociationEnd" type="csmsl:TFunctionMappingAssociationEnd"/>
        <xs:element minOccurs="0" name="ComplexProperty" type="csmsl:TFunctionMappingComplexProperty"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Grouping for entity type function mappings -->
  <xs:group name="TAssociationSetFunctionMappingPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="1" name="EndProperty" type="csmsl:TFunctionMappingEndProperty"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Type for function mapping end property -->
  <xs:complexType name="TFunctionMappingEndProperty">
    <xs:group ref="csmsl:TFunctionMappingAssociationEndPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for function mapping scalar property -->
  <xs:complexType name="TFunctionMappingScalarProperty">
    <xs:attribute name="ParameterName" type="xs:string" use="required"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="Version" type="csmsl:TVersion" use="optional"/>
  </xs:complexType>

  <!-- Type for function mapping result binding -->
  <xs:complexType name="TResultBinding">
    <xs:attribute name="ColumnName" type="xs:string" use="required"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for function mapping association end -->
  <xs:complexType name="TFunctionMappingAssociationEnd">
    <xs:group ref="csmsl:TFunctionMappingAssociationEndPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="AssociationSet" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="From" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="To" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Grouping for property bindings in function mapping end property -->
  <xs:group name="TFunctionMappingAssociationEndPropertyGroup">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ScalarProperty" type="csmsl:TFunctionMappingScalarProperty"/>
    </xs:sequence>
  </xs:group>

  <!-- Type for function mapping complex property -->
  <xs:complexType name="TFunctionMappingComplexProperty">
    <xs:group ref="csmsl:TFunctionMappingComplexPropertyPropertyGroup" minOccurs="1" maxOccurs="1"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="xs:string" use="required"/>
  </xs:complexType>  

  <!-- Grouping for result bindings in function mappings -->
  <xs:group name="TResultBindingGroup">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ResultBinding" type="csmsl:TResultBinding"/>
    </xs:sequence>
  </xs:group>

  <!-- Grouping for property bindings in function mapping association end -->
  <xs:group name="TFunctionMappingComplexPropertyPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="ScalarProperty" type="csmsl:TFunctionMappingScalarProperty"/>
        <xs:element minOccurs="0" name="ComplexProperty" type="csmsl:TFunctionMappingComplexProperty"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Grouping these elements so that they can be reused
       These elements represent the property group
       that can either directly reside unser EntitySet, EntityType
       or MappingFragment-->
  <xs:group name="TPropertyGroup">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="ComplexProperty" type="csmsl:TComplexProperty"/>
        <xs:element minOccurs="0" name="ScalarProperty" type="csmsl:TScalarProperty"/>
        <xs:element minOccurs="0" name="Condition" type="csmsl:TCondition"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <!-- Type for Condition Element-->
  <xs:complexType name="TCondition">
    <xs:attribute name="Value" type="xs:string" use="optional"/>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="optional"/>
    <xs:attribute name="ColumnName" type="xs:string" use="optional"/>
    <xs:attribute name="IsNull" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for FunctionImport Condition element-->
  <xs:complexType name="TFunctionImportCondition">
    <xs:attribute name="Value" type="xs:string" use="optional"/>
    <xs:attribute name="ColumnName" type="xs:string" use="required"/>
    <xs:attribute name="IsNull" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for End Property Elements in Association Maps -->
  <xs:complexType name="TEndProperty">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="ScalarProperty" type="csmsl:TScalarProperty"/>
    </xs:sequence>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
  </xs:complexType>

  <!-- Type for Complex Property Map elements-->
  <xs:complexType name="TComplexProperty">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="ScalarProperty" type="csmsl:TScalarProperty"/>
        <xs:element name="ComplexProperty" type="csmsl:TComplexProperty"/>
        <xs:element name="ComplexTypeMapping" type="csmsl:TComplexTypeMapping"/>
        <xs:element name="Condition" type="csmsl:TCondition"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="TypeName" type="xs:string" use="optional"/>
    <xs:attribute name="IsPartial" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- Type for Complex Type mapping element-->
  <xs:complexType name="TComplexTypeMapping">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="ScalarProperty" type="csmsl:TScalarProperty"/>
        <xs:element name="ComplexProperty" type="csmsl:TComplexProperty"/>
        <xs:element name="Condition" type="csmsl:TCondition"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="TypeName" type="xs:string" use="optional"/>
    <xs:attribute name="IsPartial" type="xs:boolean" use="optional"/>
  </xs:complexType>
  
  <!-- Type for ScalarProperty Element-->
  <xs:complexType name="TScalarProperty">
    <xs:attribute name="Name" type="csmsl:TSimpleIdentifier" use="required"/>
    <xs:attribute name="ColumnName" type="xs:string" use="required"/>
  </xs:complexType>

  <!--Definition for SimpleIdentifier
      This is the same definition that is being used in the CSDL XSD
      -->
  <xs:simpleType name="TSimpleIdentifier">
    <xs:restriction base="xs:token">
        <!-- The below pattern represents the allowed identifiers in ECMA specification -->
        <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}"/>
    </xs:restriction>
  </xs:simpleType>


  <!--Definition for QualifiedName. QualifiedName is SimpleIdentifiers with '.'
      allowed. This is the same definition that is being used in the CSDL XSD
      -->
  <xs:simpleType name="TQualifiedName">
    <xs:restriction base="xs:token">
        <!-- The below pattern represents the allowed identifiers in ECMA specification plus the '.' for namespace qualification  -->
         <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}"/>
    </xs:restriction>
  </xs:simpleType>

  <!--Definition for Version, which can 'original' or 'current' as its value-->
  <xs:simpleType name="TVersion">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Original"/>
      <xs:enumeration value="Current"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- Type fopr Space or Type Attribute -->
  <xs:simpleType name="TSpace">
    <xs:restriction base="xs:token">
      <xs:enumeration value="C-S"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
o<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="AnnotationSchema" targetNamespace="http://schemas.microsoft.com/ado/2009/02/edm/annotation" elementFormDefault="unqualified" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:attribute name="StoreGeneratedPattern" type="TStoreGeneratedPattern"/>
  <xs:simpleType name="TStoreGeneratedPattern">
    <xs:restriction base="xs:token">
      <xs:enumeration value="None"/>
      <xs:enumeration value="Identity"/>
      <xs:enumeration value="Computed"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:attribute name="LazyLoadingEnabled" type="xs:boolean"/>
  
  <!-- Allow future support of a strongly typed heirarchy of types for spatial values -->
  <xs:attribute name="UseStrongSpatialTypes" type="xs:boolean" default="true"/>

</xs:schema>
?�����lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet�PADPADP���U�� 	�H7��.�70��`���q����������C��@���̀��̀Y6�D� ��8���V��Ha�u_m���e��Q�7���I��$R���[�J-����+���^�"�X����s\�U�]�2��}	���΄f�
�/�\�8��
����b�…q�2�3�N�b�l�=��B��\ީ���C�kZO���P���[�:^�{�g��Qh���u�*�S���xЇF��g��t�7��)D�'�r��"��e���y���h���G��;-��G2�<5���c�3���Q��������� �qW�ee�Zo�[+v�Q"��9��Y	􋄈��
�V@h�
t�.v��N1ƌ��׌� �G ��P��Ľ���v1��u��d���Mad�Gb}�P.��G���"܏IB�������C⛐DI��GU�v���f���j%��b���ơ‘��đU[̑�nΑ_����s���+;�k���g��n�
�b;��oW��+u�Gx�� .�{_�2g��"i��cm��/��^���5�����!Җ�LS�N���e?�ۜ?��Q[�$Y\�cȖ�b�7K��e��+ŗ��-��9��Ց��՘}�*���_�W�Ι�wљ=m�]�U�������[ҚGؚ�qؚ3k�W�%��4���7��������f-�
w��Eݞ�C���ױ��
���%Ϝ P휪r/�	c�
�НQm��<���>���d���2������E(*��:��B���n�ő��T˟��ԟ[J�c
^��:�9��ZQ&��X���¡&����f)��/��V��s�&շ��ˢ��ˢ��ˢ[
̢�)̢�㢠��,����2�tO:�\��V_��H7����W�>ſ��"�U{�-vM��d����^�Z��m��@�����sꦟD�0�G�Zͮ��ܳ��
���M���o�͝��$W��H�ڨ&"��O�۹Y��;d�C覩��թ�R�=G��oߪ����%��⫔ �;�S�K�������#ǧ�t�o48��p<�����e�*�L�3������G5��5_�&�d�L�k���z�o2ܯgp���-�rE�ʆ������԰Gx���L��rT�7�g�'[i��q���4�
�W��)βr��K� �c D��〴�d����Ĵ�����j8
�KX*�6�/���C��]�ų���z�����1�ɵr=�:J�tBZ���a��Ql��`��L�Ӷ��_�xJo��ӷ�+ܷ՛�X$���F��폸�*������'-�99?������~�IR�sJ������,�
����N�ѻ��ӻP�z����$����F��g;1��&C�-�T�	oW��f��)Ϋ�:�¾��ɾt�ӾQ;��h��
�����˿��~s���=��T=�(nN���[��By�����������N���o����
��|�X��@��/��c�z�������5@�;��Yħ�8����­��2�;à,M�\8p�����i�����)w��y�����6�A���Q�J���������I���kF;Ơ^`�|7��	�ƕ��GH��Em�Ǹ�lj���f�NJ��Z���@�
�z��1gȢ�:�q�T�C����;c�m�}ɸڣ��y��9*�ACGʮv��غ�Ys�ʝh�v^˞�0�ҡJ��bˤd�˘q���D���
�˄��)�9�w̵���z���e������"6��>�O
V���޼���δ���4�*��wЯ.�"W��&w�Q���B��`��_���x1$�{1$Ұ�*�R�Y�)��a���#���e�\[$�V�(Շ�)խ�8Ջ���b�	��:�b�Y�DJ~���֟���L��C�
���`(�5�<׬���ma��[����e���`�הE�����r�Q1�TPS�(Arق���������8����k�:�<��Cڝ�Q�K�ڒ���,���G��M��}P۴	R��MS�W�T�C�nۯ����i��#���u1Eܰ�Nܒm��Ė���'��0���<�ޛD���֦�]����sp�ߥ������>l��1W��&�aH�}�އ �+��H�����=�rFD���V�<&����-j�������V�[�1_�i_�l��Ѷ�ה�����'@�-��Q��]u��ސ侸��tY�����A���,�]�b���%!	��[�ʊ��c��)-��ҭ��c��ʪ�W�Yc�'��r[��m���"�O�8�a��t��t逻��7)[���}.�궝��ȃJ�k�#������ϒ��D��6e���5)�X����9���
�D�p�.��8����
3�)(
���
�O!�6�VT��j�Po�&��ѵ��p��dS���Yg�}`�� K���6����
'E�Rvx�9���w5���߿�9��=�b����+������Qo��/���,�
2�eF�r�r�|��t)��E��'�!�D,���-��7�b7@�ER��I��(���D#W�9�u��� �[�9��������gI�J�2����;A�j*�Hp�]?�>�}�y_��������K���N�2��<���>��9L��j�ɜ��{q�~��>��&�4���A�	r�A?�9mC�!
F��H��H���P�f.����\�5�%�O��������������|��E1��L�:~���Y�����Z���j�!p����������:�uK�{�����?��f�w�j��������R`����Y�����J]�g;��JZ�]R�n��X
�x�:��>�T'Zz
�}�J�"h�y��w���}|=6�?�����Q�����Y�.��^$�#S�1�S0'�.��4�GS�Y
��S�V�;�U�Q9�XH`�,u���a�:=	�a	�=d	�|	�Q�	z��	��	~&
�
}='
�ϕ
�%�
(�
�y��~Ԭ�Ub�i	�
�`(.7	2ŲJzK�E����-װ�װc�|R
MKc
�
��
NP�
��8P;W�Xx�i�b�5t���AP�%�d=��qRw��������1+�{��y������ S$�\~i��:��0�Z���J�����Xi>;V<r<�\��s������^��aF�h�W��~��.�?����
nu
t����Ǜ]�����-d�hd!��C�A8
0�)5�d�LuN҃��UA{ɖ���Z~��P������3�b�%E��Q�Q{�
�l�+o0Y������������!Ww��+���Χ%`F:�i�����m.�.���J+ T!9�+!�*t!Tjw!w@�!�ߥ!z"f7K"��n"�"շ�"��#�Z/#W�=#�pt#s-{#���#���#�_�#B��#���#��#��#��$$G�-$�4=$�/�$�̬$�)�$��%�/%`�~%R��%�g�%�&��T&�&l��&�/6'B�E'Z}]'�T�'o�(�*:(��(�x�(0�)e\3)�J<)o2@)��)z��)��)��9*Cf*f�~*��*�?+��(+>q/+Ę�+���+|Z�+�:�+We,�\(,J�M,[rT,�X,+_,�,8��,���,p�,S��,��-k7�-rǺ-�.�7�.
�.��.��$/T4_/�C�/6�/���/� 0	��0�K�0x��0U�0�1��1��1�2�2�B+2o�@2�e2=3�2኿2��2~�3ƛA3�6q3�y3&Κ3�ܫ3�܃4�c�4��W5��\5�Rc5)ǜ5�Y�5M�5,x�5�|$6��B6�}6J�6�V�6��6���67��6{%7G�7�O7~�7�ь8�#9@B9=�_9W�h9�9l��9���:�ɝ:��:2D�:�\�:~�,;	4;��6;��V;`�Y;O{j;``�;E��;#�<_�<"_V<O�<R�<��<�)=� =�==�oW=u�j=�l=lBy=�S�=�o�=N�=?A�>�*�>ϑ�>	?��!?��r?�|�?��?MU�?�?���@�4�Ahv�A'��A�>�A-�A�9B��B��Bs�FC�TChVC;��C���C���C���C��C��DR�!Da�lD]�Dȷ�D��D��D^YfE�<�E-��E���E�:�E��/FA+�F�%G�rG�1G���G:H�mH��+HdEHyFrH�ÆH���H��HB��H/��H4eI3f�I��I,z�I)��J���J!��J�-K�K�PtK.��K@��Kcx�K�&�K/Q�K
l�K r@L��LZ��L�@#M�z%Mc+M���MI�M�q�Mj�yN9��N�,O��dO>nO`�O'��Ob�O�HP��kP�%lPzgtP*�P�P{�P�C�P�-}Q�u�Q��Q�b�Q'�R�pRE�R(��R���R��R���R�"qS��SH�S�u�S޲7T}�>Ts�?T?wLT_[Te�sT�8�T<��TbJU,�3U:pCU��dU8fUejUҠ�U�*9Vq�iV�llV:wVt�VQ�$W��/W��YWlW��nWH�W�h�W	�WZ�X��IXm�bX��cX0�X
E�X�~�X��iY�"�Y̍�Y
��ZK�Z���ZӇ�Zk��Z"]�Zk�[Z�b[��{[�"�[N]�[��[���[N��[Ur	\=t\�\��\Z��\��\�]��G]X(e]H�]}j�]q��]UP�]]�^B%j^��^B��^ܙ^�l�^�Rd_1��_I�_��_Aq�_��%`�=`gXD`e�Z`�4�`�`�}Da b2��b�{�b!�b���b�,�b��b�qc ;.c��<ca?Ec�eckcœ�c�ͫc�0�c�z�cX�c_
d[�edT�hd�$}d��d'i�dO��d���d.��d�'e�+e��#e+.e�FeL��e��e�}�e/e}f{Wg��-g%�Agˁ�g��g?�
h�`h�hˏ�h9��h���h�x�h��i�Ei�
Nia�iz��i��iT�j-k�:kJ�Zk��
l��lA1l	�elY��lF�lt�m�=m�M�m��m@��m�n��$nQ"1n�EnzRn�knW�onKqwn
��n���n��n��n��n�o�:Jo�1bo�Dpf�Wp��Xp5�mp$�q�oq�Epq�1�q��q���qJ�q7�q��?r�Tr]r(6]rj�s�fsCM(s�^`s�h�sƲ�s���s,�s���s���s��t{/�t0��tk�tư�t@�'u�=uL�Ru�*�u���u���uqoav��v۲�vJ�vW�w!5(w	�iw��wG��w�r�w�e1x�\x�x� �x��0y�I5yT�Ay�jy(q�y'��y#��y,5z8fqzvkwz=L�ztc
{�;{�I{!|�{X��{�n�{5�{��|_	|^N|�~|� �|#ͫ|[r�|�m�}�7�}�a~dg�~4+�~�լ~��~P~��D��d�9Y�N1������i�f�f�?G��Q��a�a?�f��?P�R�vN�m��AB�H�0��7ON�0pL�
�D�)aC��=JV�>@0u���E�@�8lH�G%6-
��$v�h��8�Yw��v����#>��rM���Kon��x�vC]�U���*

YȀ]2|�X�D�A�
�@��"�I��|�D�}�c�@�Lou$f9����#j���	�Isc�,�Q1�7�[db19��G��^��`�XMF8TirD�?,;�>ҟh;�5�o:k�I�g^~^����nG�OHs�!�%v�a�ld�&�%%U�ʬ6K�BB�c[U�o��(���H�p[$��@�ׇ��~�RAg�$>��!�r��.SzH�[)�����`�/S������x�b��!3ӄ�sa}�^�n\AS���#4#���BD�BM=F.G����5@<IK���J���*�ĥ�L'�@�*�(�t��:P~�m�>^�k`nq/��L�i1�zZd	�����Z�s|m�j��7-V�_A��d�����9?���d�)�=˔�R[.LR\����2K�IO��Ԯ�mJ�8���r_�eG�e�G�mz�����&q��C3�]��uU8�#�d�+Zٕ�b���E.��'\��k�C��2�b"u�O��LQn�Y�L��}=���d�<Q����Idf�z�
h����W�X�BT�*=sEFu
�������@��{��$�;J"IW��A��dZ
s��?�]����#$.X�b[�!E���/Li_'�RU��'�i�l >Ib��+��VnDo�u&m���j���ep�E�mj+��	�
M .R-��V�����DFn�p�^�
��J�s�JZRw6���������V
�s�C�c�����Ĕ�2{Ka]-�5�.���u�M����A�W��ٽF�"�"?��F��X8��V�!����J�2�~g���`�
h�PkYk	?uX��
"uq�i7�t�x��w+��t���%5T��	��A�����n�C�2]���H��v��o�L��[-~(�5Te3z�{v߳��ɄC��!�w��c>`B-���4C*��)W#�J��:gF(*�l����=bHPtQ�w�	��C|&E��^�}�p�C<D.�L~���H�f'D�Q���H��&�m�?zs0���r��2��sL.������n��{p�]�7��9��
�tkI�C�4u��vT~��ye���^�SD��o*>���P&c�g!��
u���g�rI�k�g{x^�As�iX�O��@C@��6�3�2?|3���bin���|� �����05�=~����^WDC{=/�r�Tj��h�O����V� HO����.B�B>�=�EsT^xf��UK�7y�&K�
4�P�P&vQ%ӱ=��^�?�x$biK�KM)���:|��sA��:�i�F�BBa�y�����<�Vt���g>p��&R��S�����YQ0�i9�Yu7IJ��:{��W:�LT��r���:��l�K�Q&�+���IX�
X����C����h�v��[����e7R���kP�J_fs�AE�|���;,�Jw�a�(�C�G!���p��U�Oi�����>E�4�.t6��/P5 M�aPRE���ԏ%��#L��_* ����9�D���/�7LA�`�%�A��[��1�S��O�3�d5`|`��Q�q@��`�@Y����Bya��"�oLr��O� ��k�6\�׎���j���S�m�zt�nA�*�=(�6�T��VTG��-J�q��u#h�JC�
^��H/j@Qu�?F�e�����J|l�x���fAGh*��fzr��X>kBɒ,}�D�
#�f>�����������[!1e�}���|`w�-J'C/Z�1{#�{��gLcLj��B�;#«L,y�*_��bY
���1�~�D�Bk��C�\�{�G�Gzh2$'�}���LY�d2x��������k�z'^/� ��s��B�Z�MX����R(Aef?}?"?�_�	K���r"u�>��-IS:��x4+��X�,��Y��)���Gώ	x>Q�_2��8WN�

:���u�My'���;mS��3�a�<�O���n(���)���q1>0q��e����b&Ԧ�@
���pb	'A�Y���j��v���E~�5�nZ+D��I`2��N��-lQ���M�.4A�N�.��P�ԗ��0H��-�1x\�X�_��P���=�p�i��8�2+3�)���sy5�OoDf-kIR�TΓXd��/fTJ��[��pkl�,��t���;��'O�|�h�q l6��T0�et�F��}���W���J��,�ϐ˩���cI	���j�BC��o�>���e���@7��w��wu��!�7
�^��)v�@Hhm��Z^yq��93�qc��?�4�O�S	��5O)U�����;Vj���L�*��)��;�G:
[6V<w�h3g�o{�a�F��t�>81b����{�Wo\�MU�|���g'\0<����ߤ]�.{5r��z���+��z%�]�S�db��s�3�]N!�+�Xs�&��gI���h��g����E&���|CL�&1�BX4�1.�A!9�D/r���e�u]�a���W4�K�jG���6J
��_`32�_�[�T{8��2-�4�A��s4�U��9�Zl�X]FE�O�CXBs�МQm/��A�~EN�UHlf��-�Gi	��s}8���^=�FsW�jo�C����,\�>|�����=����=P�h��
��96O_2f��z��\�{!��0Ɩ�=X����2ADP_ClosedDataReaderErrorHADP_CollectionParameterElementIsNull8VADP_CollectionParameterElementIsNullOrEmptyj4ADP_ConnectionStringSyntax�(ADP_DataReaderClosed�@ADP_GetSchemaTableIsNotSupported.FADP_ImplicitlyClosedDataReaderErrorR2ADP_InternalProviderError�8ADP_InvalidBufferSizeOrIndex@ADP_InvalidConnectionOptionValue`0ADP_InvalidDataDirectory�*ADP_InvalidDataLength�XADP_InvalidDataReaderFieldCountForScalarType�RADP_InvalidDataReaderMissingColumnForType^ADP_InvalidDataReaderMissingDiscriminatorColumn�TADP_InvalidDataReaderUnableToDetermineType�jADP_InvalidDataReaderUnableToMaterializeNonScalarTypep&ADP_InvalidDataType�BADP_InvalidDestinationBufferIndex�6ADP_InvalidEnumerationValue%LADP_InvalidMultipartNameDelimiterUsageE(ADP_InvalidSizeValue~8ADP_InvalidSourceBufferIndex�>ADP_KeysRequiredForJoinOverNest�4ADP_KeysRequiredForNestingO.ADP_KeywordNotSupported{6ADP_MustUseSequentialAccess�.ADP_NestingNotSupported�ADP_NoData,ADP_NoQueryMappingViewK8ADP_NonSequentialChunkAccess�:ADP_NonSequentialColumnAccess LADP_ProviderDoesNotSupportCommandTrees�.ADP_UnknownDataTypeCode	(AliasNameAlreadyUsed<	2AliasNameIsAlreadyDefined`	`AllArtifactsMustTargetSameProvider_InvariantName�	`AllArtifactsMustTargetSameProvider_ManifestToken;
2AllElementsMustBeInSchema�
6AmbiguousEntityContainerEnd�
0AmbiguousFunctionAndType�4AmbiguousFunctionArguments2AmbiguousFunctionOverload�6AmbiguousMetadataMemberName�0ArgumentMustBeCSpaceType�
0ArgumentMustBeOSpaceType�
$ArgumentOutOfRangeNArgumentOutOfRangeExpectedPostiveNumber8ArgumentTypesAreIncompatibleBArrayTooSmallyNAssemblyMissingFromAssembliesToConsider�(AtleastOneSSDLNeeded&BadNamespaceOrAliasEHBadNavigationPropertyBadFromRoleTypen`BadNavigationPropertyRelationshipNotRelationship
RBadNavigationPropertyRolesCannotBeTheSameEDBadNavigationPropertyUndefinedRole�*BadParameterDirection�VBadParameterDirectionForComposableFunctionsR(BadPrecisionAndScale�BBetweenLimitsCannotBeUntypedNulls%DBetweenLimitsTypesAreNotCompatiblejNBetweenLimitsTypesAreNotOrderComparable�@BetweenValueIsNotOrderComparable�hBothMinAndMaxValueMustBeSpecifiedForNonConstantFacetE:CalculatedEnumValueOutOfRange�>CannotCallNoncomposableFunction6CannotConvertNumericLiteral�2CannotCreateEmptyMultiset�6CannotCreateMultisetofNulls�:CannotInstantiateAbstractTyperCannotLoadDifferentVersionOfSchemaInTheSameItemCollectionTBCannotResolveNameToTypeOrFunction�>CannotUseSystemNamespaceAsAlias�>CheckArgumentContainsNullFailed1DCodeGen_ConstructorNoParameterlessaPCodeGen_PropertyDeclaringTypeIsValueType�2CodeGen_PropertyIsIndexed�0CodeGen_PropertyIsStatic�0CodeGen_PropertyNoGetter�0CodeGen_PropertyNoSetterDCodeGen_PropertyStrongNameIdentity>CodeGen_PropertyUnsupportedForma>CodeGen_PropertyUnsupportedType�ZCollections_CannotFillTryDifferentMergeOption�TCollections_ExpectedCollectionGotReference�DCollections_InvalidEntityStateLoad�HCollections_InvalidEntityStateSource�HCollections_NoRelationshipSetMatched�HCollections_UnableToMergeCollections�dCommandTextFunctionsCannotDeclareStoreFunctionName|BCommandTextFunctionsNotComposable�VCompiledELinq_UnsupportedNamedParameterType�`CompiledELinq_UnsupportedNamedParameterUseAsTypeQNCompiledELinq_UnsupportedParameterTypes�hComplexObject_ComplexChangeRequestedOnScalarProperty%dComplexObject_ComplexObjectAlreadyAttachedToParent�\ComplexObject_NullableComplexTypesNotSupported"TComplexTypeAsReturnTypeAndDefinedEntitySetu^ComplexTypeAsReturnTypeAndNestedComplexProperty�nComposableFunctionOrFunctionImportMustDeclareReturnTypeJ2ConcatBuiltinNotSupported�XConcurrencyRedefinedOnSubTypeOfEntitySetType�<ConstantFacetSpecifiedInSchema� 2CouldNotResolveIdentifier� :Cqt_Aggregate_InvalidFunctionl!@Cqt_And_BooleanArgumentsRequired�!@Cqt_Apply_DuplicateVariableNames�!^Cqt_Arithmetic_InvalidUnsignedTypeForUnaryMinus"@Cqt_Arithmetic_NumericCommonTypeQ"<Cqt_Binary_CollectionsRequired�"<Cqt_Binding_CollectionRequired�"@Cqt_Binding_VariableNameNotValid#4Cqt_Case_InvalidResultTypeR#8Cqt_Case_WhensMustEqualThens�#(Cqt_Cast_InvalidCast�#@Cqt_CommandTree_InvalidDataSpace6$HCqt_CommandTree_InvalidParameterNameK$BCqt_Comparison_ComparableRequiredr$^Cqt_Constant_ClrEnumTypeDoesNotMatchEdmEnumType�$@Cqt_Constant_InvalidConstantType�$0Cqt_Constant_InvalidType�%@Cqt_Constant_InvalidValueForType�%,Cqt_Copier_EndNotFound�%DCqt_Copier_EntityContainerNotFoundV&8Cqt_Copier_EntitySetNotFound�&6Cqt_Copier_FunctionNotFound�&<Cqt_Copier_NavPropertyNotFound'6Cqt_Copier_PropertyNotFoundr'.Cqt_Copier_TypeNotFound�'<Cqt_CrossJoin_AtLeastTwoInputs�'HCqt_CrossJoin_DuplicateVariableNames/(*Cqt_DeRef_RefRequired�(<Cqt_Distinct_InvalidCollection
)dCqt_Element_InvalidArgumentForUnwrapSinglePropertyU)BCqt_Exceptions_InvalidCommandTree�)>Cqt_ExpressionLink_TypeMismatch*PCqt_ExpressionList_IncorrectElementCount�*HCqt_Factory_IncompatibleRelationEnds�*PCqt_Factory_MethodResultTypeNotSupported�*TCqt_Factory_NewCollectionInvalidCommonType�+4Cqt_Factory_NoSuchProperty,,:Cqt_Factory_NoSuchRelationEnd`,ZCqt_Function_CanonicalFunction_AmbiguousMatch�,NCqt_Function_CanonicalFunction_NotFound�,HCqt_Function_CommandTextInExpression--LCqt_Function_NonComposableInExpression}-<Cqt_Function_VoidResultInvalid(.>Cqt_General_MetadataNotReadOnly{.BCqt_General_NoProviderBooleanType�.BCqt_General_NoProviderIntegerType/@Cqt_General_NoProviderStringTypeD/DCqt_General_PolymorphicArgRequired�/FCqt_General_PolymorphicTypeRequired�/BCqt_General_UnsupportedExpression0>Cqt_GetEntityRef_EntityRequired202Cqt_GetRefKey_RefRequiredh0FCqt_GroupBinding_CollectionRequired�0TCqt_GroupBinding_GroupVariableNameNotValid�0\Cqt_GroupBy_AggregateColumnExistsAsGroupColumn-1HCqt_GroupBy_AtLeastOneKeyOrAggregate�1HCqt_GroupBy_KeyNotEqualityComparable�1JCqt_GroupBy_MoreThanOneGroupAggregate(2<Cqt_InvalidTypeForSetOperation�2>Cqt_IsNull_CollectionNotAllowed�2,Cqt_IsNull_InvalidType�2>Cqt_Join_DuplicateVariableNamesP3PCqt_Limit_ConstantOrParameterRefRequired�32Cqt_Limit_IntegerRequired�3DCqt_Limit_NonNegativeLimitRequired
4HCqt_Metadata_EdmMemberIncorrectSpace*4RCqt_Metadata_EntitySetEntityContainerNull�4HCqt_Metadata_EntitySetIncorrectSpace�4ZCqt_Metadata_EntityTypeEmptyKeyMembersInvalid45XCqt_Metadata_EntityTypeNullKeyMembersInvalid~5FCqt_Metadata_FunctionIncorrectSpace�5XCqt_Metadata_FunctionParameterIncorrectSpace%6PCqt_Metadata_FunctionReturnParameterNull�6HCqt_Metadata_TypeUsageIncorrectSpace�6ZCqt_NewInstance_CannotInstantiateAbstractType(7^Cqt_NewInstance_CannotInstantiateMemberlessTypes7LCqt_NewInstance_CollectionTypeRequired�7xCqt_NewInstance_IncompatibleRelatedEntity_SourceTypeNotValid�7LCqt_NewInstance_StructuralTypeRequired�8>Cqt_Not_BooleanArgumentRequired�8>Cqt_Or_BooleanArgumentsRequired�8PCqt_Property_InstanceRequiredForInstance9<Cqt_Ref_PolymorphicArgRequiredd92Cqt_RelNav_NoCompositions�94Cqt_RelNav_WrongSourceType�9nCqt_RelatedEntityRef_TargetEndFromDifferentRelationship0:ZCqt_RelatedEntityRef_TargetEndMustBeAtMostOne�:ZCqt_RelatedEntityRef_TargetEndSameAsSourceEnd�:\Cqt_RelatedEntityRef_TargetEntityNotCompatible.;NCqt_RelatedEntityRef_TargetEntityNotRef�;NCqt_Skip_ConstantOrParameterRefRequired<0Cqt_Skip_IntegerRequiredO<BCqt_Skip_NonNegativeCountRequiredt<<Cqt_Sort_EmptyCollationInvalid�<DCqt_Sort_NonStringCollationInvalid�<0Cqt_Sort_OrderComparable
=TCqt_UDF_FunctionDefinitionGenerationFailedI=XCqt_UDF_FunctionDefinitionResultTypeMismatch�=^Cqt_UDF_FunctionDefinitionWithCircularReference>>Cqt_UDF_FunctionHasNoDefinitionk>8Cqt_Unary_CollectionRequired�>>Cqt_Util_CheckListDuplicateName�><Cqt_Util_CheckListEmptyInvalidY?hCqt_Validator_InvalidIncompatibleParameterReferences�?^Cqt_Validator_InvalidIncorrectDataSpaceMetadata�?VCqt_Validator_InvalidOtherWorkspaceMetadataA@6Cqt_Validator_VarRefInvalid�@@Cqt_Validator_VarRefTypeMismatch�@XCreateRefTypeIdentifierMustBeASubOrSuperType5A\CreateRefTypeIdentifierMustSpecifyAnEntityType�ACtxAlias�A2CtxAliasedNamespaceImport�ACtxAndBCtxAnyElement!BCtxApplyClause7BCtxBetweenEBCtxCaseXBCtxCaseElsehBCtxCaseWhenThen}BCtxCast�B8CtxCollatedOrderByClauseItem�B6CtxCollectionTypeDefinition�B(CtxCommandExpression�BCtxCreateRef�BCtxDeref�BCtxDivideCCtxElementCCtxEquals1C(CtxEscapedIdentifierBCCtxExceptSCCtxExistseC"CtxExpressionListwCCtxFlatten�C$CtxFromApplyClause�CCtxFromClause�C"CtxFromClauseItem�C"CtxFromClauseList�C"CtxFromJoinClause�CCtxFunction�C*CtxFunctionDefinitionDCtxGreaterThanD&CtxGreaterThanEqual"D CtxGroupByClause<D"CtxGroupPartitionMDCtxHavingClausegDCtxIdentifiervD
CtxIn�DCtxIntersect�DCtxIsNotNull�DCtxIsNotOf�DCtxIsNull�DCtxIsOf�DCtxJoinClause�DCtxJoinOnClauseECtxKeyECtxLessThan&E CtxLessThanEqual7ECtxLikeQE"CtxLimitSubClauseaECtxLiteral{ECtxMemberAccess�ECtxMethod�ECtxMinus�ECtxModulus�ECtxMultiply�ECtxMultisetCtor�E$CtxNamespaceImport
F,CtxNamespaceImportListFCtxNavigate8FCtxNotLFCtxNotBetweenbFCtxNotEqualyFCtxNotIn�FCtxNotLike�FCtxNullLiteral�FCtxOfType�FCtxOfTypeOnly�F
CtxOr�F CtxOrderByClauseG(CtxOrderByClauseItemGCtxOverlaps,GCtxParen@GCtxPlusQG$CtxQueryExpressionbG"CtxQueryStatementsGCtxRef�G(CtxRefTypeDefinition�GCtxRelationship�G&CtxRelationshipList�GCtxRowCtor�G(CtxRowTypeDefinition�G$CtxSelectRowClauseH(CtxSelectValueClauseHCtxSet*H&CtxSimpleIdentifier9H CtxSkipSubClauseJHCtxTopSubClausecHCtxTreatrHCtxTypeCtor�HCtxTypeName�H.CtxTypeNameWithTypeSpec�HCtxUnaryMinus�HCtxUnaryPlus�HCtxUnion�HCtxUnionAllICtxWhereClause#I(CycleInTypeHierarchy1I"DataCategory_DatagI&DataCategory_UpdateoI*DbParameter_DirectionwI DbParameter_Size�I0DbParameter_SourceColumn�I2DbParameter_SourceVersionxJ,DeRefArgIsNotOfRefType�J"DefaultNotAllowed/KDDifferentSchemaVersionInCollection^K&DuplicateAnnotation�K DuplicateEndNameLDDuplicateEntityContainerMemberName0L.DuplicateEntitySetTable�L&DuplicateEnumMember?M&DuplicateMemberNamekMXDuplicateMemberNameInExtendedEntityContainer�MRDuplicatePropertyNameSpecifiedInEntityKey�N6DuplicatedFunctionoverloads9O@DuplicatedInlineFunctionOverload�O(DuplicationOperationBP&ELinq_AnonymousTypepP"ELinq_ClosureType~PRELinq_CreateOrderedEnumerableNotSupported�P&ELinq_CycleDetected�P^ELinq_EdmFunctionAttributeParameterNameNotValidQlELinq_EdmFunctionAttributedFunctionWithWrongReturnType�Q6ELinq_EdmFunctionDirectCall�R@ELinq_ExpressionMustBeIQueryable�R2ELinq_InvalidOfTypeResultS>ELinq_MethodNotDirectlyCallable�S0ELinq_NotPropertyOrField�S>ELinq_PropertyIndexNotSupportedT,ELinq_SkipWithoutOrder@T@ELinq_ThenByDoesNotFollowOrderBy�T@ELinq_UnboundParameterExpression URELinq_UnexpectedTypeForNavigationPropertykU4ELinq_UnhandledBindingType�U:ELinq_UnhandledExpressionTypeV0ELinq_UnrecognizedMember-VNELinq_UnresolvableFunctionForExpression�VFELinq_UnresolvableFunctionForMember	WFELinq_UnresolvableFunctionForMethodjWbELinq_UnresolvableFunctionForMethodAmbiguousMatch�WVELinq_UnresolvableFunctionForMethodNotFounduXXELinq_UnresolvableStoreFunctionForExpressionYPELinq_UnresolvableStoreFunctionForMember�YRELinq_UnsupportedAsUnicodeAndAsNonUnicodeZ0ELinq_UnsupportedBindingdZ*ELinq_UnsupportedCast�Z<ELinq_UnsupportedCastToDecimal6[6ELinq_UnsupportedComparison�[2ELinq_UnsupportedConstant\8ELinq_UnsupportedConstructorh\DELinq_UnsupportedDifferentContexts�\>ELinq_UnsupportedEnumerableType�\>ELinq_UnsupportedExpressionTypeL]TELinq_UnsupportedHeterogeneousInitializers�]0ELinq_UnsupportedInclude�^:ELinq_UnsupportedInitializers�^.ELinq_UnsupportedIsOrAs9_8ELinq_UnsupportedKeySelector�_0ELinq_UnsupportedMergeAs.`.ELinq_UnsupportedMethod�`VELinq_UnsupportedMethodSuggestedAlternative�`8ELinq_UnsupportedNestedFirstVa:ELinq_UnsupportedNestedSingle�a8ELinq_UnsupportedNominalTypeNb:ELinq_UnsupportedNullConstant�b8ELinq_UnsupportedPassthroughc@ELinq_UnsupportedQueryableMethodHc<ELinq_UnsupportedRefComparisonzc<ELinq_UnsupportedRowComparison�cHELinq_UnsupportedRowMemberComparison-dDELinq_UnsupportedRowTypeComparisonCdBELinq_UnsupportedStringRemoveCaseQdJELinq_UnsupportedTrimStartTrimEndCase�d*ELinq_UnsupportedType#eLELinq_UnsupportedUseOfContextParametergeTELinq_UnsupportedVBDatePartInvalidInterval�e\ELinq_UnsupportedVBDatePartNonConstantIntervalf`EdmMembersDefiningTypeDoNotAgreeWithMetadataTypelf>EdmVersionNotSupportedByRuntime�f:ElementOperatorIsNotSupported0g EmptyCommandText�g$EmptyDefiningQuery�gEmptyFile5hEmptyName�h*EmptySchemaTextReader�h<EndNameAlreadyDefinedDuplicate�hhEndWithManyMultiplicityCannotHaveOperationsSpecifiedZi,EndWithoutMultiplicity�iJEntityClient_CannotCloneStoreProvider!j>EntityClient_CannotDeduceDbTypewjBEntityClient_CannotGetCommandText�jBEntityClient_CannotGetCommandTreekFEntityClient_CannotReopenConnectiongkrEntityClient_CannotReprepareCommandDefinitionBasedCommand{kBEntityClient_CannotSetCommandTextDlBEntityClient_CannotSetCommandTree�lLEntityClient_ClosedConnectionForUpdate�lZEntityClient_CommandDefinitionExecutionFailed!m^EntityClient_CommandDefinitionPreparationFailedtmFEntityClient_CommandExecutionFailed�mXEntityClient_CommandTreeMetadataIncompatible&nFEntityClient_ConnectionMustBeClosedyn<EntityClient_ConnectionNotOpen�nDEntityClient_ConnectionStateBroken�nDEntityClient_ConnectionStateClosed�nPEntityClient_ConnectionStringMissingInfo�ndEntityClient_ConnectionStringNeededBeforeOperation/oDEntityClient_DataReaderIsStillOpenvoLEntityClient_DbConnectionHasNoProviderpZEntityClient_DoesNotImplementIServiceProviderGpHEntityClient_DuplicateParameterNames�p>EntityClient_EmptyParameterNameqXEntityClient_EntityParameterEdmTypeNotScalar�q^EntityClient_EntityParameterInconsistentEdmType�qPEntityClient_ErrorInBeginningTransactionrJEntityClient_ErrorInClosingConnectionurPEntityClient_ExecutingOnClosedConnection�r^EntityClient_ExtraParametersWithNamedConnection"sFEntityClient_FailedToGetInformationbsVEntityClient_FunctionImportEmptyCommandText�s\EntityClient_FunctionImportMustBeNonComposabletbEntityClient_IncompatibleNavigationPropertyResultstFEntityClient_InvalidNamedConnection�tLEntityClient_InvalidParameterDirection.uBEntityClient_InvalidParameterName�uBEntityClient_InvalidStoreProvider7v\EntityClient_InvalidStoredProcedureCommandText~vREntityClient_InvalidTransactionForCommandwhEntityClient_ItemCollectionsNotRegisteredInWorkspaceUw@EntityClient_KeywordNotSupported�wDEntityClient_NestedNamedConnection�w4EntityClient_NoCommandText�wFEntityClient_NoConnectionForAdapter$xFEntityClient_NoConnectionForCommand\xNEntityClient_NoStoreConnectionForUpdate�xBEntityClient_ProviderGeneralError�xDEntityClient_ProviderSpecificError
yPEntityClient_RequiresNonStoreCommandTree/yREntityClient_ReturnedNullOnProviderMethoduyhEntityClient_SettingsCannotBeChangedOnOpenConnection�y<EntityClient_StoreReaderFailedlz4EntityClient_TooFewColumns�zLEntityClient_TransactionAlreadyStarted<{NEntityClient_UnableToFindFunctionImport�{`EntityClient_UnableToFindFunctionImportContainer�{BEntityClient_UnknownParameterType|FEntityClient_UnmappedFunctionImport�|FEntityClient_UnsupportedCommandType�|<EntityClient_UnsupportedDbTypeT}6EntityClient_ValueNotString�}>EntityConnectionString_Metadata�}6EntityConnectionString_Name�}>EntityConnectionString_Provider	~^EntityConnectionString_ProviderConnectionString>~8EntityContainerAlreadyExistsg~BEntityContainerCannotExtendItself�~4EntityDataCategory_Context,PEntityDataCategory_NamedConnectionString42EntityDataCategory_SourceM*EntityKeyMustBeScalarUDEntityKeyTypeCurrentlyNotSupported�PEntityKeyTypeCurrentlyNotSupportedInSSDL/�2EntityKey_CannotChangeKeyÀ@EntityKey_DataRecordMustBeEntity�@EntityKey_DoesntMatchKeyOnEntity+�BEntityKey_EntityKeyMustHaveValues��>EntityKey_EntitySetDoesNotMatchف>EntityKey_EntityTypesDoNotMatchA�PEntityKey_IncorrectNumberOfKeyValuePairs��8EntityKey_IncorrectValueType4�*EntityKey_InvalidName��NEntityKey_InvalidQualifiedEntitySetName��<EntityKey_MissingEntitySetName/�2EntityKey_MissingKeyValuea�fEntityKey_NoCorrespondingOSpaceTypeForEnumKeyMemberքNEntityKey_NoNullsAllowedInKeyValuePairs?�,EntityKey_NullKeyValue��0EntityKey_UnexpectedNull�JEntityParameterCollectionInvalidIndexI�ZEntityParameterCollectionInvalidParameterName��XEntityParameterCollectionRemoveInvalidObject��VEntityParameterContainedByAnotherCollectionF�&EntityParameterNull��jEntityProxyTypeInfo_CannotSetEntityCollectionProperty܇NEntityProxyTypeInfo_DuplicateOSpaceTypeA�PEntityProxyTypeInfo_ProxyHasWrongWrapper�\EntityProxyTypeInfo_ProxyMetadataIsUnavailable)�vEntityReference_CannotAddMoreThanOneEntityToEntityReference��rEntityReference_CannotChangeReferentialConstraintPropertyM�HEntityReference_CannotSetSpecialKeysh�LEntityReference_EntityKeyValueMismatch‹\EntityReference_ExpectedReferenceGotCollectionB�hEntityReference_LessThanExpectedRelatedEntitiesFoundK�hEntityReference_MoreThanExpectedRelatedEntitiesFound�6EntitySetInAnotherContainer��(EntitySetNotInCSPaceގ,EntitySetTypeHasNoKeys�*EntityTypesDoNotAgreeW�VEntity_EntityCantHaveMultipleChangeTrackers��TEnumMemberValueOutOfItsUnderylingTypeRange��FExprIsNotValidEntitySetForCreateRefB�,ExpressionCannotBeNull��4ExpressionMustBeCollection��6ExpressionMustBeNumericType֐6ExpressionTypeMustBeBoolean�<ExpressionTypeMustBeEntityType1�FExpressionTypeMustBeEqualComparablep�>ExpressionTypeMustBeNominalType��BExpressionTypeMustNotBeCollection�ExtraInfo�JFacetDeclarationRequiresTypeAttributeD�FacetNotAllowedm�*FacetsOnNonScalarType��:FailedToFindCSpaceTypeMappingȒ4FailedToFindClrTypeMapping�:FailedToFindOSpaceTypeMapping�@FailedToResolveAggregateFunction8�@FailedToRetrieveProviderManifestd�dFunctionImportCollectionAndRefParametersNotAllowed��dFunctionImportComposableAndSideEffectingNotAllowed�^FunctionImportEntitySetAndEntitySetPathDeclared��ZFunctionImportEntityTypeDoesNotMatchEntitySet�ZFunctionImportNonNullableParametersNotAllowedm�lFunctionImportReturnEntitiesButDoesNotSpecifyEntitySetٕ`FunctionImportSpecifiesEntitySetButNotEntityType!�<FunctionImportUnknownEntitySete�RFunctionImportWithUnsupportedReturnTypeV1��VFunctionImportWithUnsupportedReturnTypeV1_12�RFunctionImportWithUnsupportedReturnTypeV2��VFunctionWithNonEdmPrimitiveTypeNotSupportedA�PFunctionWithNonPrimitiveTypeNotSupported��JGeneralExceptionAsQueryInnerException*�"GeneralQueryErroru�>Generated_View_Type_Super_Class��.Generated_Views_Changed�<Generated_Views_Invalid_Extent:�6GeneratorErrorSeverityError�:GeneratorErrorSeverityUnknown��:GeneratorErrorSeverityWarning��$GenericSyntaxError��.GenericTypeNotSupported��4GroupPartitionOutOfContext�.GroupVarNotFoundInScopeN�BGroupingKeysMustBeEqualComparable��2HavingRequiresGroupClauseۛFImcompatibleCreateRefKeyElementType�8ImcompatibleCreateRefKeyTypeV�InFromClause��InGroupClause��InRowCtorɜ,InSelectProjectionList��2IncorrectProviderManifest�:InferRelationshipEndAmbiguous6�TInferRelationshipEndFailedNoEntitySetMatch�TInferRelationshipEndGivesAlreadyDefinedEndȞ8InnerJoinMustHaveOnPredicate��InvalidAction�� InvalidAliasName�NInvalidArgumentTypeForAggregateFunctionm�<InvalidAssociationTypeForUnion��4InvalidBaseTypeForItemTypeΠ8InvalidBaseTypeForNestedType�@InvalidBaseTypeForStructuredTypee�,InvalidCaseResultTypes��6InvalidCaseWhenThenNullTypeۡInvalidCast.�2InvalidCastExpressionType��InvalidCastType��6InvalidCollectionForMappingޢ4InvalidCollectionSpecified?�$InvalidComplexType�.InvalidCreateRefKeyTypek�.InvalidCtorArgumentType��(InvalidCtorUseOnType�8InvalidDateTimeOffsetLiteral�InvalidDay¥"InvalidDayInMonth��(InvalidDeRefProperty<�FInvalidDefaultBinaryWithNoMaxLength��*InvalidDefaultBoolean�,InvalidDefaultDateTimeZ�8InvalidDefaultDateTimeOffset��*InvalidDefaultDecimal�6InvalidDefaultFloatingPoint��$InvalidDefaultGuidܨ,InvalidDefaultIntegralQ�$InvalidDefaultTime��:InvalidDistinctArgumentInCtorکNInvalidDistinctArgumentInNonAggFunction�PInvalidDocumentationBothTextAndStructureC�"InvalidEDMVersion��,InvalidEmptyIdentifierѪ"InvalidEmptyQuery�:InvalidEmptyQueryTextArgument-�>InvalidEndEntitySetTypeMismatchb�LInvalidEndRoleInRelationshipConstraint��FInvalidEntityContainerNameInExtends�(InvalidEntityEndName�4InvalidEntityParameterTypeO�:InvalidEntityRootTypeArgument��(InvalidEntitySetName�:InvalidEntitySetNameReference`�(InvalidEntitySetType��2InvalidEntityTypeArgument
�2InvalidEnumUnderlyingType��0InvalidEscapedIdentifierɮDInvalidEscapedIdentifierUnbalanced�@InvalidExpressionResolutionClassF�(InvalidFileExtensions�,InvalidFlattenArgumentïVInvalidFromPropertyInRelationshipConstraint��>InvalidGroupIdentifierReferenceٰInvalidHourF�DInvalidImplicitRelationshipFromEnd{�@InvalidImplicitRelationshipToEnd��"InvalidInExprArgs�4InvalidJoinLeftCorrelationT�$InvalidKeyArgument��>InvalidKeyKeyDefinedInBaseClassʲ InvalidKeyMemberF�(InvalidKeyNoProperty��,InvalidKeyNullablePart��4InvalidKeyTypeForCollation�(InvalidLiteralFormatt�(InvalidMaxLengthSize��@InvalidMemberNameMatchesTypeName��HInvalidMetadataMemberClassResolution�2InvalidMetadataMemberName8�&InvalidMetadataPath��InvalidMinuteL�HInvalidModeForWithRelationshipClause��InvalidMonth̶dInvalidMultiplicityFromRoleToPropertyNonNullableV1�dInvalidMultiplicityFromRoleToPropertyNonNullableV2��^InvalidMultiplicityFromRoleToPropertyNullableV1p�\InvalidMultiplicityFromRoleUpperBoundMustBeOne�ZInvalidMultiplicityToRoleLowerBoundMustBeZero��ZInvalidMultiplicityToRoleUpperBoundMustBeMany��XInvalidMultiplicityToRoleUpperBoundMustBeOne��InvalidNameS�*InvalidNamespaceAliash�.InvalidNamespaceInUsing��@InvalidNamespaceOrAliasSpecified�*InvalidNullArithmetic��*InvalidNullComparison׼LInvalidNullLiteralForNonNullableMember�ZInvalidNumberOfParametersForAggregateFunction[�RInvalidOperationMultipleEndsInAssociation��*InvalidOperatorSymbol�,InvalidParameterFormat�PInvalidParameterTypeForAggregateFunctionB�DInvalidPlaceholderRootTypeArgument��<InvalidPlaceholderTypeArgument��BInvalidPrecisionAndScaleSpecified}�8InvalidPredicateForCrossJoin�0InvalidPrimitiveTypeKind�NInvalidPropertyInRelationshipConstraintD�&InvalidPropertyType��.InvalidPunctuatorSymbol�,InvalidQueryResultType�DInvalidRelationshipEndMultiplicityJ�4InvalidRelationshipEndType��2InvalidRelationshipMember�4InvalidRelationshipSetName2�4InvalidRelationshipSetTypey�,InvalidRootComplexType��$InvalidRootRowType$�InvalidRowType�� InvalidSavePoint�0InvalidSchemaEncountered5�"InvalidScopeIndex`�InvalidSecond��FInvalidSelectValueAliasedExpression��,InvalidSelectValueListD�.InvalidSimpleIdentifier��>InvalidSimpleIdentifierNonASCII��InvalidSize�*InvalidStringArgumentl�0InvalidSystemReferenceId��RInvalidToPropertyInRelationshipConstraint��HInvalidTypeForWithRelationshipClause��2InvalidUnarySetOpArgument��RInvalidUnsignedTypeForUnaryMinusOperation��&InvalidUseOfWebPath)�\InvalidValueForParameterTypeSemanticsAttributey�XInvalidWithRelationshipTargetEndMultiplicity�InvalidYear;�:Iqt_CTGen_UnexpectedAggregatep�4Iqt_CTGen_UnexpectedVarDef��<Iqt_CTGen_UnexpectedVarDefList��2Iqt_General_UnsupportedOp��"IsNullInvalidType��>ItemCollectionAlreadyRegisteredF�*ItemDuplicateIdentity|�&ItemInvalidIdentity��,KeyMissingOnEntityType��&KeyMustBeCorrelated:�JLeftSetExpressionArgsMustBeCollection��.LikeArgMustBeStringType��:LiteralTypeNotFoundInMetadata��.LiteralTypeNotSupported�&LocalizedCollectionH�LocalizedColumnP� LocalizedComplex[�LocalizedEntityc�DLocalizedEntityContainerExpressionk�&LocalizedEnumMembery�"LocalizedFunction��.LocalizedInlineFunction�� LocalizedKeyword��LocalizedLeft��LocalizedLine��BLocalizedMetadataMemberExpression��$LocalizedNamespace��LocalizedNear��$LocalizedPrimitive��$LocalizedReference��LocalizedRight��LocalizedRow�LocalizedTerm�LocalizedType�0LocalizedValueExpression�6MalformedSingleQuotePayload,�:MalformedStringLiteralPayloadd�MalformedXml��XMapping_AbstractTypeMappingToNonAbstractType��BMapping_AllQueryViewAtCompileTime��XMapping_AlreadyMapped_StorageEntityContaineri�JMapping_CannotMapCLRTypeMultipleTimes��DMapping_ConditionValueTypeMismatch��HMapping_Default_OCMapping_Clr_Member4�JMapping_Default_OCMapping_Clr_Member2��XMapping_Default_OCMapping_Invalid_MemberType��ZMapping_Default_OCMapping_MemberKind_MismatchN�^Mapping_Default_OCMapping_Member_Count_Mismatch��\Mapping_Default_OCMapping_Member_Type_Mismatch_�\Mapping_Default_OCMapping_MultiplicityMismatch��@Mapping_DifferentEdmStoreVersionn�NMapping_DifferentMappingEdmStoreVersion��PMapping_DistinctFlagInReadWriteContainer$�\Mapping_Duplicate_CdmAssociationSet_StorageMap��ZMapping_Duplicate_PropertyMap_CaseInsensitive��,Mapping_Duplicate_TypeW�.Mapping_Empty_QueryView~�<Mapping_Empty_QueryView_OfType��DMapping_Empty_QueryView_OfTypeOnly��lMapping_EntitySetMismatchOnAssociationSetEnd_QueryViewG�HMapping_EnumTypeMappingToNonEnumType��.Mapping_Enum_EmptyValueZ�2Mapping_Enum_InvalidValue��JMapping_Enum_OCMapping_MemberMismatch��\Mapping_Enum_OCMapping_UnderlyingTypesMismatchk�hMapping_FunctionImport_CannotInferTargetFunctionKeys��bMapping_FunctionImport_ConditionValueTypeMismatch���Mapping_FunctionImport_EntityTypeMappingForFunctionNotReturningEntitySet�PMapping_FunctionImport_FunctionAmbiguousp�bMapping_FunctionImport_FunctionImportDoesNotExist��pMapping_FunctionImport_FunctionImportMappedMultipleTimes��vMapping_FunctionImport_ImplicitMappingForAbstractReturnType���Mapping_FunctionImport_ImportParameterHasNoCorrespondingTargetParameterH�hMapping_FunctionImport_IncompatibleEnumParameterType��`Mapping_FunctionImport_IncompatibleParameterMode��`Mapping_FunctionImport_IncompatibleParameterType��vMapping_FunctionImport_InvalidContentEntityTypeForEntitySetP�PMapping_FunctionImport_PropertyNotMapped���Mapping_FunctionImport_ResultMappingCountDoesNotMatchResultCount3�vMapping_FunctionImport_ResultMapping_InvalidCTypeCTExpected��vMapping_FunctionImport_ResultMapping_InvalidCTypeETExpected
�bMapping_FunctionImport_ResultMapping_InvalidSTypev��Mapping_FunctionImport_ResultMapping_MappedTypeDoesNotMatchReturnType��pMapping_FunctionImport_RowsAffectedParameterDoesNotExist:�pMapping_FunctionImport_RowsAffectedParameterHasWrongModet�pMapping_FunctionImport_RowsAffectedParameterHasWrongType��hMapping_FunctionImport_ScalarMappingToMulticolumnTVF �`Mapping_FunctionImport_ScalarMappingTypeMismatch��`Mapping_FunctionImport_StoreFunctionDoesNotExist!�jMapping_FunctionImport_TargetFunctionMustBeComposableB�pMapping_FunctionImport_TargetFunctionMustBeNonComposable���Mapping_FunctionImport_TargetParameterHasNoCorrespondingImportParameter~�TMapping_FunctionImport_UnreachableIsTypeOf��LMapping_FunctionImport_UnreachableType�LMapping_FunctionImport_UnsupportedType��*Mapping_General_Errorf�jMapping_InvalidContent_AbstractEntity_FunctionMapping�\Mapping_InvalidContent_AbstractEntity_IsOfType��TMapping_InvalidContent_AbstractEntity_Type
�^Mapping_InvalidContent_AssociationSet_ConditionK�LMapping_InvalidContent_Association_Set��NMapping_InvalidContent_Association_Type��ZMapping_InvalidContent_Association_Type_EmptyP�BMapping_InvalidContent_Cdm_Member��:Mapping_InvalidContent_Column�FMapping_InvalidContent_Complex_Typed�hMapping_InvalidContent_ConditionMapping_Both_Members��fMapping_InvalidContent_ConditionMapping_Both_Values��`Mapping_InvalidContent_ConditionMapping_Computed?�lMapping_InvalidContent_ConditionMapping_Either_Members��jMapping_InvalidContent_ConditionMapping_Either_Values��jMapping_InvalidContent_ConditionMapping_InvalidMember3��Mapping_InvalidContent_ConditionMapping_InvalidPrimitiveTypeKind`�bMapping_InvalidContent_ConditionMapping_NonScalar��VMapping_InvalidContent_Container_SubElement��VMapping_InvalidContent_Duplicate_Cdm_Member2�bMapping_InvalidContent_Duplicate_Condition_Member��HMapping_InvalidContent_Emtpty_SetMap��4Mapping_InvalidContent_End(�DMapping_InvalidContent_EndProperty{�LMapping_InvalidContent_EntityContainer�BMapping_InvalidContent_Entity_Seth�DMapping_InvalidContent_Entity_Type��bMapping_InvalidContent_Entity_Type_For_Entity_Set
�bMapping_InvalidContent_ForeignKey_Association_Setn�pMapping_InvalidContent_ForeignKey_Association_Set_PKtoPK��<Mapping_InvalidContent_General1�XMapping_InvalidContent_IsTypeOfNotTerminatedI�ZMapping_InvalidContent_StorageEntityContaineru�8Mapping_InvalidContent_Table��JMapping_InvalidContent_Table_Expected0�XMapping_InvalidContent_TypeMapping_QueryViewe�HMapping_InvalidMappingSchema_Parsing��NMapping_InvalidMappingSchema_validation�hMapping_Invalid_Association_Type_For_Association_Setz�HMapping_Invalid_CSRootElementMissing��HMapping_Invalid_CSide_ScalarProperty]�<Mapping_Invalid_Member_Mapping��2Mapping_Invalid_QueryView�4Mapping_Invalid_QueryView2n�<Mapping_Invalid_QueryView_Type��ZMapping_Invalid_Query_Views_MissingSetClosure:�fMapping_ItemWithSameNameExistsBothInCSpaceAndSSpace��\Mapping_ModificationFunction_AmbiguousFunction��fMapping_ModificationFunction_AmbiguousResultBinding��Mapping_ModificationFunction_AssociationEndMappingForeignKeyAssociationD��Mapping_ModificationFunction_AssociationEndMappingInvalidForEntityType��hMapping_ModificationFunction_AssociationSetAmbiguous�lMapping_ModificationFunction_AssociationSetCardinality��nMapping_ModificationFunction_AssociationSetDoesNotExist���Mapping_ModificationFunction_AssociationSetFromRoleIsNotEntitySetG��Mapping_ModificationFunction_AssociationSetNotMappedForOperation��vMapping_ModificationFunction_AssociationSetRoleDoesNotExist>�`Mapping_ModificationFunction_ComplexTypeNotFound��ZMapping_ModificationFunction_In_Table_Context�\Mapping_ModificationFunction_MissingEntityType�ZMapping_ModificationFunction_MissingParameter��\Mapping_ModificationFunction_MissingSetClosure�VMapping_ModificationFunction_MissingVersion�xMapping_ModificationFunction_MultipleEndsOfAssociationMapped�VMapping_ModificationFunction_Multiple_Types�ZMapping_ModificationFunction_NotValidFunction��lMapping_ModificationFunction_NotValidFunctionParameter�`Mapping_ModificationFunction_ParameterBoundTwice��\Mapping_ModificationFunction_ParameterNotFound��ZMapping_ModificationFunction_PropertyNotFound�VMapping_ModificationFunction_PropertyNotKey�tMapping_ModificationFunction_PropertyParameterTypeMismatch[�nMapping_ModificationFunction_RedundantEntityTypeMapping�XMapping_ModificationFunction_UnknownFunctionbMapping_ModificationFunction_VersionMustBeCurrentAdMapping_ModificationFunction_VersionMustBeOriginal�ZMapping_ModificationFunction_WrongComplexType�@Mapping_NotFound_EntityContainer�4Mapping_Object_InvalidType4>Mapping_ProviderReturnsNullTypejHMapping_Provider_WrongConnectionType�DMapping_Provider_WrongManifestType�NMapping_QueryViewMultipleTypeInTypeName�DMapping_QueryView_Duplicate_OfType;LMapping_QueryView_Duplicate_OfTypeOnly�>Mapping_QueryView_For_Base_Type�<Mapping_QueryView_PropertyMapsLMapping_QueryView_TypeName_Not_Definedp8Mapping_Storage_InvalidSpace�^Mapping_StoreTypeMismatch_ScalarPropertyMapping=6Mapping_TableName_QueryViewHMapping_TypeName_For_First_QueryViewxVMapping_UnsupportedExpressionKind_QueryView�RMapping_UnsupportedFunctionCall_QueryView-VMapping_UnsupportedInitialization_QueryView�RMapping_UnsupportedPropertyKind_QueryView3NMapping_UnsupportedScanTarget_QueryView�LMapping_Views_For_Extent_Not_Generated)JMaterializer_AddedEntityAlreadyExistsuTMaterializer_CannotReEnumerateQueryResults�@Materializer_InvalidCastNullable
	BMaterializer_InvalidCastReferencef	<Materializer_NullReferenceCast�	DMaterializer_PropertyIsNotNullableX
TMaterializer_PropertyIsNotNullableWithName~
8Materializer_RecyclingEntity�
8Materializer_SetInvalidValue]8Materializer_UnsupportedType�HMemberDoesNotBelongToEntityContainer*MemberInvalidIdentity[,Metadata_General_Error�8MethodInvocationNotSupported�.MinAndMaxMustBePositive�`MinAndMaxValueMustBeDifferentForNonConstantFacet
PMinAndMaxValueMustBeSameForConstantFacet
(MinMustBeLessThanMax�
dMismatchNumberOfPropertiesinRelationshipConstraintBFMissingConstraintOnRelationshipType�FMissingDefaultValueForConstantFacet�2MissingEntityContainerEnd<.MissingFacetDescription�MissingName2MissingNamespaceAttribute2<MoreThanOneItemMatchesIdentityf<MultipleDefinitionsOfParameter�:MultipleDefinitionsOfVariable�BMultisetElemsAreNotTypeCompatible2NamespaceAliasAlreadyUsedB0NamespaceAlreadyImported�ZNavigationPropertyRelationshipEndTypeMismatch�@NeedNotUseSystemNamespaceInUsingYLNestedAggregateCannotBeUsedInAggregate�.NestedClassNotSupported
@NewTypeConflictsWithExistingTypeY6NoAggrFunctionOverloadMatch�HNoCanonicalAggrFunctionOverloadMatch@NoCanonicalFunctionOverloadMatch�PNoCodeGenNamespaceInStructuralAnnotationl(NoCollectionForSpace�.NoFunctionOverloadMatch�*NoStoreTypeForEdmType*VNonComposableFunctionHasDisallowedAttribute~ZNonComposableFunctionMustNotDeclareReturnType�,NotAMemberOfCollection� NotAMemberOfType`$NotASuperOrSubType�2NotBinaryTypeForTypeUsage�BNotDateTimeOffsetTypeForTypeUsage6NotDateTimeTypeForTypeUsageL4NotDecimalTypeForTypeUsageu&NotInNamespaceAlias�*NotInNamespaceNoAlias�*NotNamespaceQualified
2NotStringTypeForTypeUsagez.NotTimeTypeForTypeUsage�"NotValidInputPath�\NullLiteralCannotBePromotedToCollectionOfNulls!PNullParameterForEdmRelationshipAttributeO^NullRelationshipNameforEdmRelationshipAttribute�HNumberOfTypeCtorIsLessThenFormalSpec�HNumberOfTypeCtorIsMoreThenFormalSpecJObjectContext_AcceptAllChangesFailure_`ObjectContext_CannotAttachEntityWithTemporaryKey�TObjectContext_CannotAttachEntityWithoutKeyBnObjectContext_CannotDeleteEntityNotInObjectStateManager�nObjectContext_CannotDetachEntityNotInObjectStateManager�nObjectContext_CannotExplicitlyLoadDetachedRelationshipsnObjectContext_CannotLoadReferencesUsingDifferentContext�VObjectContext_CannotSetDefaultContainerName�TObjectContext_ClientEntityRemovedFromStore9LObjectContext_CommitWithConceptualNull�jObjectContext_ContainerQualifiedEntitySetNameRequired�NObjectContext_EntitiesHaveDifferentType� jObjectContext_EntityAlreadyExistsInObjectStateManagerb!XObjectContext_EntityContainerNotFoundForName�!ZObjectContext_EntityMustBeUnchangedOrModified�!lObjectContext_EntityMustBeUnchangedOrModifiedOrDeleted�"RObjectContext_EntityNotInObjectSet_Delete#RObjectContext_EntityNotInObjectSet_Detacho$TObjectContext_EntityNotTrackedOrHasTempKey�%\ObjectContext_EntitySetNameOrEntityKeyRequired�&LObjectContext_EntitySetNotFoundForName*'rObjectContext_ExecuteCommandWithMixOfDbParameterAndValuesO'nObjectContext_ExecuteFunctionCalledWithNonQueryFunction�'hObjectContext_ExecuteFunctionCalledWithNullParameter(jObjectContext_ExecuteFunctionCalledWithScalarFunctionJ(RObjectContext_ExecuteFunctionTypeMismatch�(FObjectContext_InvalidCommandTimeout=)>ObjectContext_InvalidConnectiony)JObjectContext_InvalidConnectionString�)@ObjectContext_InvalidDataAdapter%*RObjectContext_InvalidDefaultContainerName�*VObjectContext_InvalidEntitySetForStoreQuery�*FObjectContext_InvalidEntitySetInKey,+VObjectContext_InvalidEntitySetInKeyFromName�+LObjectContext_InvalidEntitySetOnEntity,@ObjectContext_InvalidEntityStatet,\ObjectContext_InvalidObjectSetTypeForEntitySet�,LObjectContext_InvalidRelationshipStateH-LObjectContext_InvalidTypeForStoreQuery�-@ObjectContext_MetadataHasChangedC.hObjectContext_MultipleEntitySetsFoundInAllContainers�.lObjectContext_MultipleEntitySetsFoundInSingleContainer0JObjectContext_NoEntitySetFoundForType01HObjectContext_NoMappingForEntityType�1HObjectContext_NthElementInAddedState�1FObjectContext_NthElementIsDuplicatex2<ObjectContext_NthElementIsNull�2^ObjectContext_NthElementNotInObjectStateManager938ObjectContext_ObjectDisposed�38ObjectContext_ObjectNotFound4FObjectContext_QualfiedEntitySetNameM4RObjectContext_RequiredMetadataNotAvailble5dObjectContext_SelectorExpressionMustBeMemberAccess�5VObjectContext_StoreEntityNotPresentInClient�5ZObjectContext_TwoPropertiesMappedToSameColumn,6`ObjectParameterCollection_DuplicateParameterName�6`ObjectParameterCollection_ParameterAlreadyExists�6^ObjectParameterCollection_ParameterNameNotFoundM7TObjectParameterCollection_ParametersLocked�7HObjectParameter_InvalidParameterName	8HObjectParameter_InvalidParameterType�8:ObjectQuery_InvalidConnection
9:ObjectQuery_InvalidEmptyQuery?98ObjectQuery_InvalidQueryNamez9^ObjectQuery_QueryBuilder_InvalidFilterPredicate�9XObjectQuery_QueryBuilder_InvalidGroupKeyList$:\ObjectQuery_QueryBuilder_InvalidProjectionListY:ZObjectQuery_QueryBuilder_InvalidQueryArgument�:TObjectQuery_QueryBuilder_InvalidResultType�:RObjectQuery_QueryBuilder_InvalidSkipCountJ;VObjectQuery_QueryBuilder_InvalidSortKeyLists;PObjectQuery_QueryBuilder_InvalidTopCount�;^ObjectQuery_QueryBuilder_NotSupportedLinqSource�;pObjectQuery_Span_IncludeRequiresEntityOrEntityCollectionJ<4ObjectQuery_Span_NoNavProp�<HObjectQuery_Span_SpanPathSyntaxErrorV=>ObjectQuery_Span_WhiteSpacePath�=BObjectQuery_UnableToMapResultType�=jObjectQuery_UnableToMaterializeArbitaryProjectionType
>HObjectQuery_UnableToMaterializeArray�>VObjectStateEntry_CannotAccessKeyEntryValues.?NObjectStateEntry_CannotDeleteOnKeyEntry�?TObjectStateEntry_CannotModifyKeyEntryState�?PObjectStateEntry_CannotModifyKeyProperty"@bObjectStateEntry_CantModifyDetachedDeletedEntriest@PObjectStateEntry_CantModifyRelationState�@RObjectStateEntry_CantModifyRelationValues'ABObjectStateEntry_CantSetEntityKey�A`ObjectStateEntry_ChangeOnUnmappedComplexProperty�ARObjectStateEntry_ChangeOnUnmappedProperty@BhObjectStateEntry_ChangedInDifferentStateFromChanging�B^ObjectStateEntry_ComplexObjectUsedMultipleTimes�CTObjectStateEntry_CurrentValuesDoesNotExist]D~ObjectStateEntry_EntityMemberChangedWithoutEntityMemberChanging�D:ObjectStateEntry_InvalidState�EdObjectStateEntry_InvalidTypeForComplexTypeProperty<FpObjectStateEntry_NullOriginalValueForNonNullableProperty�FVObjectStateEntry_OriginalValuesDoesNotExistG�ObjectStateEntry_RelationshipAndKeyEntriesDoNotHaveRelationshipManagers|GZObjectStateEntry_SetModifiedOnInvalidPropertyHDObjectStateEntry_SetModifiedStateskHZObjectStateEntry_SetOriginalComplexProperties�HLObjectStateEntry_SetOriginalPrimaryKey�IXObjectStateEntry_UnableToEnumerateCollection�IfObjectStateManager_AcceptChangesEntityKeyIsNotValidXJvObjectStateManager_CannotChangeRelationshipStateEntityAddedKzObjectStateManager_CannotChangeRelationshipStateEntityDeleted�KpObjectStateManager_CannotChangeRelationshipStateKeyEntryLbObjectStateManager_CannotFixUpKeyToExistingValuesmL�ObjectStateManager_CannotGetRelationshipManagerForDetachedPocoEntity$M�ObjectStateManager_ChangeRelationshipStateNotSupportedForForeignKeyAssociations�MvObjectStateManager_ChangeStateFromAddedWithNullKeyIsInvalid1NvObjectStateManager_ConflictingChangesOfRelationshipDetectedO�ObjectStateManager_DetachedObjectStateEntriesDoesNotExistInObjectStateManagerOO�ObjectStateManager_DoesnotAllowToReAddUnchangedOrModifiedOrDeletedEntity�O\ObjectStateManager_EntityConflictsWithKeyEntryIPFObjectStateManager_EntityNotTracked�PpObjectStateManager_EntityTypeDoesnotMatchtoEntitySetType�QnObjectStateManager_GetEntityKeyRequiresObjectToHaveAKey�Q:ObjectStateManager_InvalidKeyRfObjectStateManager_KeyPropertyDoesntMatchValueInKey)RxObjectStateManager_KeyPropertyDoesntMatchValueInKeyForAttach<SVObjectStateManager_NoEntryExistForEntityKey�SRObjectStateManager_NoEntryExistsForObject�StObjectStateManager_ObjectStateManagerContainsThisEntityKey>TrObjectView_AddNewOperationNotAllowedOnAbstractBindingList�TLObjectView_CannotReplacetheEntityorRow.UHObjectView_CannotResolveTheEntitySetlU>ObjectView_IncompatibleArgument�URObjectView_IndexBasedInsertIsNotSupportedVpObjectView_WriteOperationNotAllowedOnReadOnlyBindingListFVVOfTypeExpressionElementTypeMustBeEntityType{VXOfTypeExpressionElementTypeMustBeNominalType�VLOfTypeOnlyTypeArgumentCannotBeAbstract$W:OnlyStoreConnectionsSupportedfW:OperationOnReadOnlyCollection�W.OperationOnReadOnlyItem�W<OrderByKeyIsNotOrderComparable
XHParameterNameAlreadyDefinedDuplicateBX2ParameterTypeNotSupported�X,ParameterWasNotDefined�X ParserFatalError�X ParserInputError0Y\PlaceholderExpressionMustBeCompatibleWithEdm64XYFPlaceholderExpressionMustBeConstant�YfPlaceholderExpressionMustBeGreaterThanOrEqualToZero�YRPlaceholderSetArgTypeIsNotEqualComparableZ:PlusLeftExpressionInvalidType�Z<PlusRightExpressionInvalidType�ZpPocoEntityWrapper_UnableToMaterializeArbitaryNavPropType![XPocoEntityWrapper_UnableToSetFieldOrProperty\jPocoEntityWrapper_UnexpectedTypeForNavigationPropertyl\>PrecisionMustBeGreaterThanScale�\&PrecisionOutOfRange�\FPropertyNameAlreadyDefinedDuplicate=]4PropertyTypeAlreadyDefined�]LProviderDidNotCreateACommandDefinition�]JProviderDidNotReturnAProviderManifest�]TProviderDidNotReturnAProviderManifestToken7^FProviderDidNotReturnSpatialServicesn^HProviderDoesNotSupportCreateDatabase�^TProviderDoesNotSupportCreateDatabaseScript�^HProviderDoesNotSupportDatabaseExists�^HProviderDoesNotSupportDeleteDatabase_4ProviderDoesNotSupportTypeE_LProviderEscapeLikeArgumentReturnedNullr_:ProviderManifestTokenNotFound�_@ProviderRequiresStoreCommandTree�_\ProviderReturnedNullForCreateCommandDefinitionQ`NProviderReturnedNullForGetDbInformation�`PProviderShouldOverrideEscapeLikeArgument�`.RefArgIsNotOfEntityType|aPRefTypeIdentifierMustSpecifyAnEntityType�a0ReferenceToNonEntityTypebTRelatedEndExprTypeMustBePromotoableToToEndRbBRelatedEndExprTypeMustBeReference�bHRelatedEnd_CannotAddToFixedSizeArray�b�RelatedEnd_CannotCreateRelationshipBetweenTrackedAndNoTrackedEntitiesc|RelatedEnd_CannotCreateRelationshipEntitiesInDifferentContexts�cRRelatedEnd_CannotRemoveFromFixedSizeArray8d4RelatedEnd_CannotSerializetddRelatedEnd_ConflictingChangeOfRelationshipDetectedeZRelatedEnd_EntitySetIsNotValidForRelationship�eTRelatedEnd_InvalidContainedType_CollectionfRRelatedEnd_InvalidContainedType_ReferencetfPRelatedEnd_InvalidEntityContextForAttach�fLRelatedEnd_InvalidEntityStateForAttach9gXRelatedEnd_InvalidNthElementContextForAttach�gRRelatedEnd_InvalidNthElementNullForAttach8hTRelatedEnd_InvalidNthElementStateForAttach�hJRelatedEnd_InvalidOwnerStateForAttachiVRelatedEnd_InvalidRelationshipFixupDetected�inRelatedEnd_LoadCalledOnAlreadyLoadedNoTrackedRelatedEnd9jdRelatedEnd_LoadCalledOnNonEmptyNoTrackedRelatedEnd�jLRelatedEnd_MismatchedMergeOptionOnLoad$k,RelatedEnd_OwnerIsNull�kRRelatedEnd_RelatedEndNotAttachedToContext�l:RelatedEnd_RelatedEndNotFound�l8RelatedEnd_UnableToAddEntitymfRelatedEnd_UnableToAddRelationshipWithDeletedEntity�m>RelatedEnd_UnableToRemoveEntityn:RelationshipFromEndIsAmbiguos�ntRelationshipManager_CannotGetRelatEndForDetachedPocoEntityo�RelationshipManager_CircularRelationshipsWithReferentialConstraints�o`RelationshipManager_CollectionAlreadyInitializedRpxRelationshipManager_CollectionInitializeIsForDeserializationzprRelationshipManager_CollectionRelationshipManagerAttached�p~RelationshipManager_InconsistentReferentialConstraintPropertiesvqdRelationshipManager_InitializeIsForDeserializationrfRelationshipManager_InvalidRelationshipManagerOwnerqrJRelationshipManager_InvalidTargetRole�r\RelationshipManager_NavigationPropertyNotFound�sPRelationshipManager_OwnerIsNotSourceType�s^RelationshipManager_ReferenceAlreadyInitializedPt^RelationshipManager_RelationshipManagerAttachedzttRelationshipManager_UnableToFindRelationshipTypeInMetadata�t�RelationshipManager_UnableToRetrieveReferentialConstraintProperties�uDRelationshipManager_UnexpectedNullnvRRelationshipManager_UnexpectedNullContext�vXRelationshipNameInNavigationPropertyNotValidww<RelationshipTargetMustBeUnique*x6RelationshipToEndIsAmbiguosTx0RelationshipTypeExpected�x(RequiredFacetMissing�xFResultingExpressionTypeCannotBeNull�xLRightSetExpressionArgsMustBeCollection/y^RoleTypeInEdmRelationshipAttributeIsInvalidTypegy4RowCtorElementCannotBeNull�y,RowTypeWithoutProperty-zFSameRoleNameOnRelationshipAttributeazNSameRoleReferredInReferentialConstraint�zScaleOutOfRange�{FSelectDistinctMustBeEqualComparable�{,SimilarRelationshipEnd.|`SourceTypeMustBePromotoableToFromEndRelationType} SourceUriUnknownf}JSpatialWithUseStrongSpatialTypesFalsev}lSpatial_GeographyValueNotCompatibleWithSpatialServices~jSpatial_GeometryValueNotCompatibleWithSpatialServicesT~jSpatial_ProviderValueNotCompatibleWithSpatialServices�~NSpatial_WellKnownGeographyValueNotValid�~LSpatial_WellKnownGeometryValueNotValid%|Spatial_WellKnownValueSerializationPropertyNotDirectlySettable|<SqlGen_ApplyNotSupportedOnSql8�\SqlGen_CanonicalFunctionNotSupportedPriorSql10R�PSqlGen_InvalidDatePartArgumentExpression��FSqlGen_InvalidDatePartArgumentValue܀VSqlGen_NiladicFunctionsCannotHaveParameters)�TSqlGen_ParameterForLimitNotSupportedOnSql8��RSqlGen_ParameterForSkipNotSupportedOnSql8E�TSqlGen_PrimitiveTypeNotSupportedPriorSql10�6SqlGen_TypedNaNNotSupportedP�PSqlGen_TypedNegativeInfinityNotSupported��PSqlGen_TypedPositiveInfinityNotSupported�bSqlProvider_CredentialsMissingForMasterConnection>�|SqlProvider_DdlGeneration_CannotDeleteDatabaseNoInitialCatalog�hSqlProvider_DdlGeneration_CannotTellIfDatabaseExists^�^SqlProvider_DdlGeneration_MissingInitialCatalog�TSqlProvider_GeographyValueNotSqlCompatibleb�RSqlProvider_GeometryValueNotSqlCompatible��HSqlProvider_IncompleteCreateDatabase�ZSqlProvider_IncompleteCreateDatabaseAggregate��DSqlProvider_InvalidGeographyColumn��BSqlProvider_InvalidGeometryColumn�:SqlProvider_NeedSqlDataReader>�JSqlProvider_Sql2008RequiredForSpatial��HSqlProvider_SqlTypesAssemblyNotFound�TSqlSpatialServices_ProviderValueNotSqlTypew�|SqlSpatialservices_CouldNotCreateWellKnownGeographyValueNoSridщ�SqlSpatialservices_CouldNotCreateWellKnownGeographyValueNoWkbOrWktM�zSqlSpatialservices_CouldNotCreateWellKnownGeometryValueNoSrid���SqlSpatialservices_CouldNotCreateWellKnownGeometryValueNoWkbOrWkt�*StackOverflowInParserg�~StorageEntityContainerNameMismatchWhileSpecifyingPartialMapping��LStoreItemCollectionMustHaveOneArtifact�4SystemNamespaceEncounteredI�HTVFReturnTypeRowHasNonScalarProperty��fTableAndSchemaAreMutuallyExclusiveWithDefiningQuery�TTargetRoleNameInNavigationPropertyNotValid�TextNotAllowed܏,TooManyAssociationEnds�0TopAndLimitCannotCoexistX�.TopAndSkipCannotCoexist��(TypeArgumentBelowMin�2TypeArgumentCountMismatch.�,TypeArgumentExceedsMaxz�,TypeArgumentIsNotValid��2TypeArgumentMustBeLiteral�BTypeDeclaredAsAttributeAndElement�.TypeDoesNotSupportFacetW�,TypeDoesNotSupportSpecx� TypeKindMismatch��BTypeMismatchRelationshipConstaint��$TypeMustBeDeclared�(TypeMustBeEntityType�2TypeMustBeInheritableType\�*TypeMustBeNominalType��>TypeNameAlreadyDefinedDuplicate�� TypeNameNotFound^�.TypeNotInAssociationSet̕$TypeNotInEntitySet0�FUnableToDetermineApplicationContext��:UnableToDetermineStoreVersionܖ2UnableToFindReflectedType.�(UnableToLoadResource[�.UnableToResolveAssembly��UnacceptableUri��*UnexpectedRootElement�@UnexpectedRootElementNoNamespaceh�4UnexpectedTypeInCollectionј,UnexpectedXmlAttribute�(UnexpectedXmlElement;�*UnexpectedXmlNodeTypef�6UnknownAstCommandExpression��0UnknownAstExpressionTypeϙ>UnknownBuiltInAstExpressionType�@UnknownExpressionResolutionClass>�4Update_AmbiguousForeignKey{�FUpdate_AmbiguousServerGenIdentifier�8Update_CircularRelationships��.Update_ConcurrencyErrorɛ,Update_ConstraintCycle��(Update_DuplicateKeys�2Update_ErrorLoadingRecord��@Update_GeneralExecutionExceptionܝ2Update_GeneratedDependent&�dUpdate_InsertingOrUpdatingReferenceToDeletedEntity��*Update_InvalidChanges۞,Update_MappingNotFoundJ�(Update_MissingEntityx�:Update_MissingFunctionMapping�8Update_MissingRequiredEntity0�NUpdate_MissingRequiredRelationshipValue��4Update_MissingResultColumnc�<Update_ModifyingIdentityColumn��HUpdate_NotSupportedComputedKeyColumn��>Update_NotSupportedIdentityType��>Update_NotSupportedServerGenKey)�TUpdate_NullReturnValueForNonNullableMember�� Update_NullValue�\Update_ReferentialConstraintIntegrityViolationP�bUpdate_RelationshipCardinalityConstraintViolation��xUpdate_RelationshipCardinalityConstraintViolationSingleValue �NUpdate_RelationshipCardinalityViolation��FUpdate_ReturnValueHasUnexpectedType�LUpdate_SqlEntitySetWithoutDmlFunctions��dUpdate_UnableToConvertRowsAffectedParameterToInt32�<Update_UnsupportedCastArgument]�@Update_UnsupportedExpressionKind�8Update_UnsupportedExtentTypeG�4Update_UnsupportedJoinTypeè8Update_UnsupportedProjectionA�0Update_WorkspaceMismatch��JValidator_BaseTypeHasMemberOfSameName�DValidator_CollectionHasNoTypeUsageE�VValidator_CollectionTypesCannotHaveBaseTypew�.Validator_EmptyIdentity��0Validator_FacetHasNoName��2Validator_FacetTypeIsNullتNValidator_ItemAttributeHasNullTypeUsage�2Validator_MemberHasNoNamea�HValidator_MemberHasNullDeclaringType{�@Validator_MemberHasNullTypeUsage��FValidator_MetadataPropertyHasNoName�,Validator_NoKeyMembers'�FValidator_NullableEntityKeyProperty��TValidator_OSpace_ComplexPropertyNotComplexf�XValidator_OSpace_Convention_AmbiguousClrType��nValidator_OSpace_Convention_AttributeAssemblyReferenced��`Validator_OSpace_Convention_BaseTypeIncompatibleR�ZValidator_OSpace_Convention_BaseTypeNotLoaded��ZValidator_OSpace_Convention_MissingOSpaceTypeݯfValidator_OSpace_Convention_MissingRequiredProperty$�jValidator_OSpace_Convention_MultipleTypesWithSameNameW�lValidator_OSpace_Convention_NonMatchingUnderlyingTypes/�hValidator_OSpace_Convention_NonPrimitiveTypeProperty|�bValidator_OSpace_Convention_RelationshipNotLoadedڱhValidator_OSpace_Convention_SSpaceOSpaceTypeMismatch�~Validator_OSpace_Convention_ScalarPropertyMissginGetterOrSetter��DValidator_OSpace_Convention_Struct"�RValidator_OSpace_InvalidNavPropReturnType��VValidator_OSpace_ScalarPropertyNotPrimitive>�DValidator_RefTypeHasNullEntityType�HValidator_RefTypesCannotHaveBaseType!�.Validator_TypeHasNoNameG�8Validator_TypeHasNoNamespace^�BValidator_TypeUsageHasNullEdmType{�NValidator_UnsupportedEnumUnderlyingTypeõ$ValueNotUnderstood��ViewGen_AND�RViewGen_AssociationEndShouldBeMappedToKey�BViewGen_AssociationSetKey_MissingöFViewGen_AssociationSet_AsUserString�VViewGen_AssociationSet_AsUserString_NegatedM�6ViewGen_CQ_DomainConstraint��<ViewGen_CQ_PartitionConstraint��RViewGen_Cannot_Disambiguate_MultiConstant�BViewGen_Cannot_Recover_Attributes*�8ViewGen_Cannot_Recover_Types[�$ViewGen_CommaBlank��BViewGen_Concurrency_Derived_Class��JViewGen_Concurrency_Invalid_Condition�:ViewGen_Duplicate_CProperties1�LViewGen_Duplicate_CProperties_IsMapped�� ViewGen_Entities��6ViewGen_EntityInstanceToken��8ViewGen_EntitySetKey_Missing��<ViewGen_EntitySet_AsUserString�LViewGen_EntitySet_AsUserString_Negated�ViewGen_Error1� ViewGen_ErrorLog9�"ViewGen_ErrorLog2h�ViewGen_Extent��&ViewGen_Foreign_Key��RViewGen_Foreign_Key_ColumnOrder_Incorrect�PViewGen_Foreign_Key_LowerBound_MustBeOne�`ViewGen_Foreign_Key_Missing_Relationship_MappingN�RViewGen_Foreign_Key_Missing_Table_Mapping߼VViewGen_Foreign_Key_Not_Guaranteed_InCSpace�\ViewGen_Foreign_Key_ParentTable_NotMappedToEnd��PViewGen_Foreign_Key_UpperBound_MustBeOneR�RViewGen_HashOnMappingClosure_Not_Matchingľ0ViewGen_InvalidCondition9�jViewGen_KeyConstraint_Update_Violation_AssociationSetp�`ViewGen_KeyConstraint_Update_Violation_EntitySet�>ViewGen_KeyConstraint_ViolationR�6ViewGen_Missing_Set_Mapping�8ViewGen_Missing_Sets_MappingZ�8ViewGen_Missing_Type_Mapping��6ViewGen_NegatedCellConstant�0ViewGen_No_Default_Value�TViewGen_No_Default_Value_For_ConfigurationK�`ViewGen_NonKeyProjectedWithOverlappingPartitions��ViewGen_NotNull��BViewGen_NotNull_No_Projected_Slot	�ViewGen_NullD�8ViewGen_OneOfConst_IsEqualToJ�@ViewGen_OneOfConst_IsNonNullableT�>ViewGen_OneOfConst_IsNotEqualToh�:ViewGen_OneOfConst_IsNotOneOf{�4ViewGen_OneOfConst_IsOneOf��>ViewGen_OneOfConst_IsOneOfTypes��@ViewGen_OneOfConst_MustBeEqualTo��HViewGen_OneOfConst_MustBeNonNullable�:ViewGen_OneOfConst_MustBeNull�<ViewGen_OneOfConst_MustBeOneOf/�FViewGen_OneOfConst_MustNotBeEqualToR�BViewGen_OneOfConst_MustNotBeOneOfk�0ViewGen_TableKey_Missing��ViewGen_Tuples��`Viewgen_CannotGenerateQueryViewUnderNoValidation��:Viewgen_ConfigurationErrorMsgB�XViewgen_ErrorPattern_ConditionMemberIsMapped��XViewgen_ErrorPattern_DuplicateConditionValue�vViewgen_ErrorPattern_NotNullConditionMappedToNullableMember3�LViewgen_ErrorPattern_Partition_Disj_Eq��PViewgen_ErrorPattern_Partition_Disj_Subs^�XViewgen_ErrorPattern_Partition_Disj_Subs_Ref�NViewgen_ErrorPattern_Partition_Disj_Unk��LViewgen_ErrorPattern_Partition_Eq_Disj��LViewgen_ErrorPattern_Partition_Eq_SubsB�TViewgen_ErrorPattern_Partition_Eq_Subs_Ref��JViewgen_ErrorPattern_Partition_Eq_Unk��bViewgen_ErrorPattern_Partition_Eq_Unk_AssociationC��Viewgen_ErrorPattern_Partition_MultipleTypesMappedToSameTable_WithoutCondition��NViewgen_ErrorPattern_Partition_Sub_Disjo�JViewgen_ErrorPattern_Partition_Sub_Eq �RViewgen_ErrorPattern_Partition_Sub_Eq_Ref��LViewgen_ErrorPattern_Partition_Sub_Unk��XViewgen_ErrorPattern_TableMappedToMultipleES��nViewgen_MultipleFragmentsBetweenCandSExtentWithDistinct�*Viewgen_NoJoinKeyOrFK��VViewgen_NullableMappingForNonNullableColumnG�8Viewgen_QV_RewritingNotFound��8Viewgen_RightSideNotDisjoint��<WildcardEnumeratorReturnedNull��6所嘗試的作業無效。資料讀取器已關閉。0集合參數 '{0}' 中的元素不可為 Null。:集合參數 '{0}' 中的元素不可為 Null 或空白。D初始化字串的格式從索引 {0} 處開始即與規格不符。@在資料讀取器關閉時呼叫 '{0}' 不是有效的作業。"不支援 GetSchemaTable 方法。~所嘗試的作業無效。巢狀資料讀取器已隱含關閉,因為它的父資料讀取器已經讀取過或已關閉。1內部 .NET Framework Data Provider 錯誤 {0}。Y緩衝區位移 '{1}' 加上可用的位元組 '{0}' 大於緩衝區中傳遞的長度。索引鍵 '{0}' 的值無效。)DataDirectory 替代項目不是字串。資料長度 '{0}' 小於 0。P資料讀取器有多個欄位。多欄位對 EDM 基本或列舉型別無效。�資料讀取器與指定的 '{0}' 不相容。該型別的成員 '{1}' 在相同名稱的資料讀取器中沒有對應的資料行。V資料讀取器與函式對應 '{1}' 不相容。名為 '{0}' 的資料行不存在。o資料讀取器與指定的函式對應不相容,而且無法判斷資料列的型別來進行型別對應。\無法為 '{1}' 型別的屬性 '{0}' 建立值。只支援基本或列舉型別的屬性。"{0} 的參數資料型別無效。1目的緩衝區無效 ({0} 的大小) 位移: {1}{0} 的列舉值 {1} 無效。7逸出分隔符號 '[' 或 ']' 的使用方式無效。B參數 Size 的值 '{0}' 無效,該值必須大於或等於 0。1來源緩衝區無效 ({0} 的大小) 位移: {1}X此查詢嘗試透過巢狀查詢呼叫 '{0}',但是 '{0}' 沒有適當的索引鍵。*此巢狀查詢沒有適當的索引鍵。不支援關鍵字: '{0}'。I必須指定此命令物件的 CommandBehavior.SequentialAccess 屬性。9不支援巢狀查詢。Operation1='{0}' Operation2='{1}'*曾經嘗試讀取,但是沒有資料。8沒有所指定集合 '{0}.{1}' 的查詢對應檢視。�在 dataOffset '{0}' {2} 的嘗試無效。使用 CommandBehavior.SequentialAccess 時,您只能從大於或等於 dataOffset '{1}' 的位置讀取。�嘗試從資料行序數 '{0}' 讀取無效。使用 CommandBehavior.SequentialAccess 時,您只能從大於或等於資料行序數 '{1}' 的位置讀取。A您所使用的 ADO.NET Data Provider 不支援標準命令樹。5無法處理 Type {1} 傳回的未知 TypeCode {0}。"別名 '{0}' 已經被使用了。m結構描述中的每個別名都必須是唯一的。別名 '{0}' 在此結構描述中已經被使用了。j所有 SSDL 成品必須以同一個提供者為目標。Provider '{0}' 與先前遇到的 '{1}' 不同。w所有 SSDL 成品必須以同一個提供者為目標。ProviderManifestToken '{0}' 與先前遇到的 '{1}' 不同。A結構描述中的所有元素必須包含在 Schema 元素中。�未指定 AssociationSet '{1}' 中 End '{0}' 的 EntitySet,而且無法推斷,因為 EntitySet 模稜兩可。可能使用了一個以上 EntitySet; 必須指定具有 EntitySet 屬性的明確 End 元素。O函式 '{0}' 及 {1} 空間型別 '{0}' 不能有相同的完整限定名稱。l無法解析這個函式呼叫,因為有一個或多個傳遞的引數符合一個以上的函式多載。k已經存在具有相同 {1} 空間型別參數的函式 '{0}'。請確認函式多載是否模稜兩可。�名稱 '{0}' 模稜兩可。名稱 '{0}' 同時定義於 '{1}' 命名空間和 '{2}' 命名空間。若要釐清,請使用完整名稱或定義命名空間別名。6此函式的引數必須是概念結構描述型別。)此函式的引數必須是 CLR 型別。{0} 超出範圍。&值 {0} 無效。必須是非負值。5引數型別 '{0}' 和 '{1}' 與此作業不相容。T目的陣列長度不足。請檢查 arrayIndex 和長度,以及陣列的下限。1指定的組件 '{0}' 不存在組件列舉中。A至少需要一個 SSDL 成品才能建立 StoreItemCollection。'未知的命名空間或別名 ({0})。�NavigationProperty '{0}' 無效。AssociationType '{3}' 中 FromRole '{2}' 的型別 '{1}' 必須明確符合宣告此 NavigationProperty 的型別 '{4}'。6NavigationProperty 無效。{0} 不是 Relationship。9NavigationProperty 無效。FromRole 與 ToRole 相同。KNavigationProperty 無效。角色 {0} 未在 Relationship {1} 中定義。�在結構描述 '{2}' 中,函式 '{1}' 中參數 {0} 的參數方向 {3} 無效。有效的參數方向為 In、Out 和 InOut。x在結構描述 '{2}' 中,函式 '{1}' 中參數 {0} 的參數方向 {3} 無效。此參數唯一的有效值為 In。WPrecision 和 Scale 組合無效。Precision ({0}) 必須大於或等於 Scale ({1})。CBETWEEN 運算式的上限和下限不可為不具型別的 Null。@BETWEEN 的下限型別 '{0}' 與上限型別 '{1}' 不相容。IBETWEEN 的下限型別 '{0}' 無法與上限型別 '{1}' 比較順序。LBETWEEN 的值型別 '{0}' 無法與限制一般型別 '{1}' 比較順序。c必須提供型別 '{1}' 中 '{0}' 的最大值和最小值,因為 '{0}' 不是指定為常數。d根據資料型別 'http://www.w3.org/2001/XMLSchema:long',計算列舉型別成員的值無效。v函式或函式匯入 '{0}' 不可組合。您無法在查詢運算式中呼叫不可組合的函式或函式匯入。C無法將常值 '{0}' 轉換為 '{1}'。數值常值規格無效。無法建立空的多重集。'不具型別 NULL 的多重集無效。<'{0}' 無法具現化,因為它是定義為抽象型別。U所有載入 ItemCollection 的成品都必須是相同版本。發現多個版本。1無法將 '{0}' 解析為有效型別或函式。Q'{0}' 是系統命名空間,不可用來當做 Alias。請使用其他 Alias。.引數 '{0}' 無效。集合包含 Null 值。+類別 '{0}' 沒有無參數建構函式。實值型別不支援屬性。不支援索引的屬性。不支援靜態屬性。屬性 getter 不存在。屬性 setter 不存在。B不支援套用 StrongNameIdentityPermissionAttribute 的屬性。0此屬性有未預期的傳回型別或參數。$此屬性使用不支援的型別。�來自關聯性 '{1}' 角色名稱為 '{0}' 的 RelatedEnd 已經載入了。使用 NoTracking 合併選項時就可能發生這種情況。請在查詢相關物件時嘗試使用不同的合併選項。�無法對關聯性 '{2}' 中角色名稱 '{1}' 傳回 {0} 物件的 EntityCollection。Make sure that 請確認定義此關聯性的 EdmRelationshipAttribute 是否有此角色名稱的正確 RelationshipMultiplicity。如需詳細資訊,請參閱 Entity Framework 文件。ELoad 方法無法在相關物件處於已刪除狀態時傳回 {0}。�當相關物件處於已加入狀態或已卸離狀態,而且原先不是使用 NoTracking 合併選項擷取的,就無法傳回此 EntityCollection 或 EntityReference 的來源查詢。C關聯性 '{0}' 不符合概念模型中定義的任何關聯性。�如果現有的 EntityCollection 包含新 EntityCollection 中所沒有的項目,就無法變更傳回 EntityCollection 的導覽屬性。B函式宣告命令文字不可同時宣告存放區函式名稱。'無法撰寫函式宣告命令文字。f型別 '{1}' 之指定參數 '{0}' 無效。只支援純量參數 (例如 Int32、Decimal 和 Guid)。q已編譯查詢中的 LINQ to Entities 不支援使用參數 '{0}' 的特定用法來產生型別 '{1}' 的值。_指定的參數型別 '{0}' 無效。只支援純量參數 (例如 Int32、Decimal 和 Guid)。�屬性 '{0}' 不可回報為變更。發生這種情況是因為使用了非複雜屬性的屬性名稱呼叫 EntityComplexMemberChanging。如需詳細資訊,請參閱 Entity Framework 文件。3這個複雜物件已經附加到另一個物件。Q不支援可為 Null 的複雜類型。複雜屬性 '{0}' 必須不允許 Null。S函式匯入 '{0}' 不能同時指定 ComplexType ReturnType '{1}' 和 EntitySet。~不支援函式 '{2}' 的 ReturnType '{1}' 中的巢狀 ComplexType 屬性 '{0}',請考慮簡維巢狀 ComplexType 屬性。?可以撰寫的函式和函式匯入必須宣告傳回型別。A目前提供者中沒有對字串上 '+' 運算的基礎支援。�型別 '{0}' 是衍生自型別 '{1}',而後者是 EntitySet '{2}' 的型別。型別 '{0}' 定義了新的並行需求,而這是基底 EntitySet 型別的子型別所不允許的。+必須對型別 '{1}' 指定 Facet '{0}'。�在目前的範圍或內容中無法解析 '{0}'。請確認所有參考的變數是否都在範圍內、必要的結構描述是否已載入、參考命名空間是否正確。指定的彙總函式無效。7DbAndExpression 需要一般 Boolean 型別的引數。KDbApplyExpression 的輸入和套用引數不能有相同的變數名稱。=無正負號型別 '{0}' 不可提升為有正負號型別。ADbArithmeticExpression 的引數必須有數值的一般型別。5{0} 需要具有相容集合 ResultTypes 的引數。GDbExpressionBinding 需要具有集合 ResultType 的輸入運算式。<指定的變數名稱無效。變數名稱不可為空白。P無法從所指定 'Then' 運算式的 ResultTypes 推斷有效的 ResultType。HDbCaseExpression 必須有相同數目的 'When' 和 'Then' 運算式。F不允許所要求的轉型: 從 '{0}' 型別轉型為 '{1}' 型別。DataSpace 無效。%指定的參數名稱無效: '{0}'。8DbComparisonExpression 需要可比較型別的引數。I型別 '{0}' 不符合 EDM 列舉型別 '{1}' 或其基礎型別 '{2}'。�只有列舉或 PrimitiveTypes 可當做常數實值型別使用。無法使用 '{0}' 型別的執行個體建立 DbConstantExpression。6指定的值不是有效常數型別的執行個體。1指定的值不是 '{0}' 型別的執行個體。f名為 '{0}' 的關聯性端點不是由關聯性類型 '{1}' 從目的 MetadataWorkspace 宣告的。B在目的 MetadataWorkspace 中找不到 EntityContainer '{0}'。 @在目的 MetadataWorkspace 中找不到 EntitySet '{0}.{1}'。 7在目的 MetadataWorkspace 中找不到函式 '{0}'。[名為 '{0}' 的導覽屬性不是由型別 '{1}' 從目的 MetadataWorkspace 所宣告。 U名為 '{0}' 的屬性不是由型別 '{1}' 從目的 MetadataWorkspace 宣告的。 1目的 MetadataWorkspace 不包含型別 '{0}'。1DbCrossJoinExpression 至少要有兩個輸入。�指定的 DbCrossJoinExpression 輸入包含具有重複變數名稱 '{2}' 的運算式繫結。第一次出現是在索引 {0},第二次是在索引 {1} 的位置。 0DbDerefExpression 需要參考型別的引數。F'Distinct' 運算無法套用到所指定引數的集合 ResultType。�指定了 unwrapSingleProperty 時,引數必須有下列 ResultType: 具有結構化元素型別且明確宣告一個屬性的 CollectionType。 指定的命令樹無效。所指定運算式的 ResultType 與要求的型別不相容。運算式 ResultType 是 '{0}',但要求的型別是 '{1}'。 *運算式清單的元素數目不正確。B指定的關聯性端點不是由相同關聯性類型定義的。�對這個方法引數不支援方法結果型別 '{0}'。必須是產生 DbExpression 衍生型別執行個體的方法,或具有 DbExpression 衍生屬性的匿名型別。指定的元素運算式不可包含在同一集合中,因為無法從它們的 ResultTypes 推斷出共同的元素型別。2型別 '{1}' 未宣告名稱為 '{0}' 的屬性。9指定的關聯性類型未定義所指定名稱的端點J指定的引數結果型別符合函式 'Edm.{0}' 一個以上的多載。D找不到名稱為 'Edm.{0}' 且具有指定引數型別的函式。NDbFunctionExpression 中使用的函式中繼資料不可包含命令文字。�DbFunctionExpression 中使用的函式中繼資料必須允撰寫。運算式中不允許包含命令文字且不可組合的函式。這種函式只能單獨執行。QDbFunctionExpression 中使用的函式中繼資料不能有 void 傳回型別。?指定的中繼資料無法使用,因為它不是唯讀的。C目前的提供者不支援任何與 Edm.Boolean 相容的型別。A目前的提供者不支援任何與 Edm.Int32 相容的型別。B目前的提供者不支援任何與 Edm.String 相容的型別。U{0} 需要多型結果型別的運算式引數,而且必須與型別引數相容。&指定的型別不是多型: '{0}'。 )運算式 '{0}' 不是支援的型別。 4DbEntityRefExpression 需要 EntityType 的引數。1DbRefKeyExpression 需要參考型別的引數。FDbGroupExpressionBinding 需要具有 ResultType 的輸入運算式。H指定的群組變數名稱無效。群組變數名稱不可為空白。g無法使用名稱為 '{0}' 的彙總,因為指定的群組索引鍵包含相同名稱的索引鍵。-至少要有一個群組索引鍵或彙總。a指定的群組索引鍵無效,因為無法在它的 ResultType 上執行相等比較: '{0}'。Y在 DbGroupByExpression 的彙總清單中,最多只能指定一個 DbGroupAggregate。,'{0}' 的集合不是 {1} 的有效引數。FDbIsNullExpression 的引數不能有 ResultType 的 CollectionType。UDbIsNullExpression 的引數必須參考基本型別、列舉型別或參考型別。JDbJoinExpression 的左邊和右邊引數不能有相同的變數名稱。J限制必須是 DbConstantExpression 或 DbParameterReferenceExpression。#限制必須有整數 ResultType。限制必須有非負值。X指定的成員未與此命令樹的同一個 MetadataWorkspace 或資料空間關聯。O指定的 EntitySet 無效,因為它的 EntityContainer 屬性有 Null 值。]指定的 EntitySet 未與此命令樹的同一個 MetadataWorkspace 或資料模型關聯。H指定的 EntityType 無效,因為它的 KeyMembers 集合是空的。K指定的 EntityType 無效,因為它的 KeyMembers 屬性有 Null 值。X指定的函式未與此命令樹的同一個 MetadataWorkspace 或資料空間關聯。^指定的函式參數未與此命令樹的同一個 MetadataWorkspace 或資料模型關聯。J指定的函式無效,因為它的 ReturnParameter 屬性有 Null 值。U指定的型別未與命令樹的同一個 MetadataWorkspace 或資料模型關聯。IDbNewInstanceExpression 無法建立抽象型別 '{0}' 的執行個體。LDbNewInstanceExpression 無法建立無成員型別 '{0}' 的執行個體。必須有 CollectionType。�指定的相關實體與這個新的執行個體建構函式不相容。所建構的執行個體不是相關實體來源端點所需 EntityType 的執行個體。-必須有集合、實體或資料列型別。1DbNotExpression 需要 Boolean 型別的引數。6DbOrExpression 需要一般 Boolean 型別的引數。E執行個體屬性必須有 DbExpression 型別的 Instance 屬性。hDbRefExpression 需要來自與所參考之 EntitySet 的 EntityType 相同階層架構的 EntityType。!不支援巡覽複合關聯性。=指定的巡覽需要與 '{0}' 相容型別的巡覽來源。g指定的目標關聯性 End 不是由所指定來源關聯性 End 相同的關聯性類型宣告的。T這個引數需要具有 'One' 或 'ZeroOrOne' 之多重性的目標關聯性 End。=指定的目標關聯性 End 與來源關聯性 End 相同。�指定的目標實體參考運算式無效,因為它不會產生相同型別實體的參考,或指定目標 End 所參考 EntityType 的子型別。8目標實體參考運算式必須有參考 ResultType。J計數必須是 DbConstantExpression 或 DbParameterReferenceExpression。#Count 必須有整數 ResultType。Count 必須有非負值。9定序規範不可為空白或僅由空白字元組成。?定序規範只對字串 ResultType 的排序索引鍵有效。:DbSortClause 運算式必須有可比較順序的型別。X準備函式 '{0}' 的定義時發生錯誤。詳細資訊請參閱內部例外狀況。i在函式 '{1}' 的宣告中指定的結果型別 '{0}' 和函式定義的結果型別 '{2}' 不相符。[函式 '{0}' 的定義包含直接或間接的自我參考。不支援遞迴函式定義。g函式 '{0}' 沒有定義運算式。使用者定義函式需要定義運算式,才能成功執行。{0} 需要集合引數。h名稱 '{2}' 指定了兩次,分別在索引 {0} 和索引 {1} 的位置。不允許重複的名稱。-空白清單不是這個引數的有效值。a指定的運算式包含對參數 '{0}' 的多個參考。這些參考有不同的結果型別。T指定的運算式包含來自目標 '{1}' 以外資料空間的 {0} 中繼資料。Y指定的運算式包含來自目標工作空間以外工作空間的 {0} 中繼資料。7所參考的變數 '{0}' 未在目前範圍中定義。^所參考變數 '{0}' 的 ResultType 與此變數參考運算式中指定的型別不相符。WCREATEREF 型別 '{0}' 不是 EntitySet EntityType '{1}' 的子型別或超級型別。PThe CREATEREF 型別必須指定 EntityType。型別規格 '{0}' 代表 '{1}'。別名運算式別名命名空間匯入邏輯 AND 運算式ANYELEMENT 運算式APPLY 子句BETWEEN 運算式CASE 運算式CASE/ELSE 運算式CASE/WHEN/THEN 運算式CAST 運算式校對 ORDER BY 子句項目集合型別定義命令運算式CREATEREF 運算式DEREF 運算式除法運算ELEMENT 運算式等於運算式逸出識別項EXCEPT 運算式EXISTS 運算式運算式清單FLATTEN 運算式FROM/APPLY 子句FROM 子句FROM 子句項目FROM 子句清單FROM/JOIN 子句函式 '{0}()'函式定義大於運算式大於或等於運算式GROUP BY 子句GROUPPARTITION 運算式
HAVING 述詞	識別項IN 設定運算式INTERSECT 運算式IS NOT NULL 運算式IS NOT OF 運算式IS NULL 運算式IS OF 運算式JOIN 子句JOIN/ON 子句
KEY 運算式小於運算式小於或等於運算式LIKE 運算式ORDER BY/LIMIT 次子句常數常值成員存取運算式$函式、方法或型別建構函式減法運算模數運算乘法運算式MULTISET 建構函式命名空間匯入命名空間匯入清單NAVIGATE 運算式邏輯 NOT 運算式NOT BETWEEN 運算式不等於運算式NOT IN 設定運算式NOT LIKE 運算式NULL 常值OFTYPE 運算式OFTYPE ONLY 運算式邏輯 OR 運算式ORDER BY 子句ORDER BY 子句項目OVERLAPS 運算式括號運算式加法運算式查詢運算式查詢陳述式
REF 運算式參考型別定義RELATIONSHIP 運算式RELATIONSHIP 運算式清單ROW 建構函式資料列型別定義
SELECT 子句SELECT VALUE 子句
SET 運算式簡單識別項ORDER BY/SKIP 次子句
TOP 次子句TREAT 運算式型別 '{0}' 建構函式型別名稱'含有型別規格引數的型別名稱一元減號運算一元加號運算UNION 運算式UNION ALL 運算式WHERE 述詞4在 '{0}' 的型別階層架構中偵測到循環。資料更新!輸入、輸出或雙向參數。7可變長度資料型別 (字串和陣列) 的大小。�由 DataAdapter.Update 使用時,用來尋找 ColumnMappings 中 DataSetColumn 名稱的來源資料行名稱。這是要複製參數與資料列之間的值。m由 DataAdapter.Update 使用時 (僅限 UpdateCommand),用來更新資料來源的 DataRow 值的版本。FDEREF 引數必須是參考型別。傳遞的引數是 '{0}' 型別。-只有非空間基本型別允許預設值。�{0} 無法向 MetadataWorkspace 註冊,因為它的版本 ('{1}') 不同於已與 MetadataWorkspace 相關聯的版本 ('{2}')。&註解 '{0}' 已在 '{1}' 中定義。"End Name {0} 已經定義過了。nEntityContainer 中的每一個成員名稱都必須是唯一的。名為 '{0}' 的成員已經定義過了。�具有結構描述 '{1}' 和資料表 '{2}' 的 EntitySet '{0}' 已經定義過了。每一個 EntitySet 都必須參考唯一的結構描述和資料表。*列舉成員必須具有唯一的名稱。]無法在類別 {1} 中定義名為 {0} 的成員。它已經定義在祖系類別 {2} 中。�EntityContainer 中的每一個成員都必須是唯一的。成員 '{0}' 已經在 EntityContainer '{1}' 中定義過了。由於 EntityContainer '{2}' 會擴充 EntityContainer '{1}',所以在 EntityContainer '{2}' 中不可有相同名稱的成員。k在 EntityType '{0}' 中指定的 Key 無效。屬性 '{1}' 在此 Key 元素中被參考了一次以上。�函式 '{0}' 的參數被轉換成概念端型別 '{1}',但是已經有具有相同概念端型別參數的函式。請確認函式多載是否模稜兩可。d已經有具有相同參數的內嵌函式 '{0}' 存在。請確認函式多載是否模稜兩可。,每一關聯性只允許一個 {0} 元素。匿名型別結束型別[不支援在 LINQ to Entities 查詢結果上呼叫 CreateOrderedEnumerable 泛型方法。'在 LINQ 運算式中偵測到循環。�在 '{1}' 型別上指定的方法 '{0}' 無法轉譯成 LINQ to Entities 存放區運算式,因為這個方法的 EdmFunction 屬性上的參數 {2} 是空的。�在 '{1}' 型別上指定的方法 '{0}' 無法轉譯成 LINQ to Entities 存放區運算式,因為這個方法的傳回型別和它的 EdmFunction 屬性指定的函式的傳回型別不相符。0這個函式只能由 LINQ to Entities 叫用。YLINQ to Entities 查詢運算式只能從實作 IQueryable 介面的執行個體建構。u'{0}' 不是型別篩選作業的有效中繼資料型別。型別篩選只在實體類型和複雜類型上有效。`這個方法支援 LINQ to Entities 基礎結構,目的並非直接由您的程式碼使用。%成員 '{0}' 不是屬性或欄位。/LINQ to Entities 中不支援屬性索引子。�只對 LINQ to Entities 中的已排序輸入支援 'Skip' 方法。必須先呼叫 'OrderBy' 方法,然後再呼叫 'Skip' 方法。TThenBy 方法必須跟在 OrderBy 方法或另一個 ThenBy 方法呼叫的後面。I參數 '{0}' 未在指定的 LINQ to Entities 查詢運算式中繫結。i型別 '{0}' 的導覽屬性無效。必須是 '{1}' 或 '{2}' 的單實作,但找到的卻是 '{3}'。(未知的型別 '{0}' 的 LINQ 繫結。+未知的型別 '{0}' 的 LINQ 運算式。}LINQ to Entities 中不支援所指定的型別成員 '{0}'。僅支援初始設定式、實體成員和實體導覽屬性。[指定的 '{0}' 型別 LINQ 運算式無法轉譯成 LINQ to Entities 存放區運算式。_在 '{1}' 型別上指定的成員 '{0}' 無法轉譯成 LINQ to Entities 存放區運算式。_在 '{1}' 型別上指定的方法 '{0}' 無法轉譯成 LINQ to Entities 存放區運算式。�在 '{1}' 型別上指定的方法 '{0}' 無法轉譯成 LINQ to Entities 存放區運算式,因為傳遞的一個或多個引數符合一個以上的函式多載。�在 '{1}' 型別上的指定方法 '{0}' 無法轉譯成 LINQ to Entities 存放區運算式,因為沒有多載符合傳遞的引數。指定的 '{0}' 型別的 LINQ 運算式無法轉譯成有效的提供者專屬 LINQ to Entities 存放區運算式對應項。�在 '{1}' 型別上指定的成員 '{0}' 無法轉譯成有效的提供者專屬 LINQ to Entities 存放區運算式對應項。]只有當引數為字串變數或常值時,在 LINQ to Entities 中才支援方法 '{0}'。b在建構函式和初始設定式中,LINQ to Entities 中僅支援屬性或欄位參數繫結。l無法將 '{0}' 型別轉型為 '{1}' 型別。LINQ to Entities 僅支援轉型 EDM 基本或列舉型別。vLINQ to Entities 查詢中不支援轉型為 Decimal,因為無法推斷所需的有效位數和小數位數資訊。[無法比較 '{0}' 型別的元素。僅支援基本型別、列舉型別和實體類型。[無法建立 '{0}' 型別的常數值。這個內容僅支援基本型別或列舉型別。GLINQ to Entities 中僅支援無參數建構函式和初始設定式。E指定的 LINQ 運算式包含與不同內容關聯的查詢參考。R實作 IEnumerable '{0}' 的型別無法在 LINQ to Entities 查詢中初始化。ALINQ to Entities 中不支援 LINQ 運算式節點型別 '{0}'。�型別 '{0}' 出現在單一 LINQ to Entities 查詢中兩個結構不相容的初始設定中。型別在同一查詢中可以在兩個地方初始化,但是在這兩個地方必須設定相同的屬性,而且這些屬性必須是以相同的順序設定。L當引數為字串常數時,LINQ to Entities 才支援 'Include' 方法。Q在 LINQ to Entities 中,只支援單一元素的清單初始設定式元素。�不支援具有型別 '{1}' 的輸入及型別 '{2}' 的檢查的 '{0}' 運算式。LINQ to Entities 查詢中僅支援實體類型和複雜類型。[呼叫 '{0}' 方法的索引鍵選擇器型別與基礎存放區提供者中的不相容。X只有當引數為 MergeOption 常數時,LINQ to Entities 才支援方法 'MergeAs'。iLINQ to Entities 無法辨識方法 '{0}' 方法,而且這個方法無法轉譯成存放區運算式。a方法 '{0}' 無法轉譯成 LINQ to Entities 存放區運算式。請考慮改用方法 '{1}'。e方法 'First' 只能用來做為最終查詢作業。在此請考慮改用方法 'FirstOrDefault'。�方法 'Single' 和 'SingleOrDefault' 只能當做最終查詢作業使用。在這個執行個體中請考慮改用方法 'FirstOrDefault'。DLINQ to Entities 查詢中無法建構實體或複雜類型 '{0}'。p無法建立 '{0}' 型別的 Null 常數值。這個內容僅支援實體類型、列舉型別或基本型別。@在型別 '{1}' 執行個體上呼叫時不支援方法 '{0}'。0對具體化的查詢結果不支援此方法。d無法比較參考型別 '{0}' 和 '{1}' 的 EntityKeys,因為它們沒有共同的超級型別。K無法比較 '{0}'。僅支援基本型別、列舉型別和實體類型。成員 '{0}' 屬於 型別 '{0}'i只有在引數 '{1}' 為非負值整數常數的情況下,LINQ to Entities 中才支援方法 '{0}'。e只有在未指定修剪字元當做引數的情況下,LINQ to Entities 中才支援方法 '{0}'。B無法處理型別 '{0}',因為它沒有值層的已知對應。V在已編譯查詢中,ObjectContext 參數 ('{0}') 只能當做查詢來源使用。O當引數 '{1}' 有 '{2}' 值時,LINQ to Entities 中不支援方法 '{0}'。Z只有在引數 '{1}' 為常數的情況下,LINQ to Entities 中才支援方法 '{0}'。^為中繼資料參數指定的 TypeUsage 物件型別與 EdmMember 所屬的型別不相容。b項目集合 {0} 的 EDMVersion 不是執行階段支援的 EDMVersion。支援的版本為 {1}。]這個版本的 Entity Framework 不支援 ELEMENT 運算子。它是保留供未來使用。OCommandText 元素是空的。請將命令文字加入到 CommandText 元素。SDefiningQuery 元素是空的。請將查詢文字加入到 DefiningQuery 元素。]{0} 未包含結構描述定義,或者所提供的 XmlReader 是在檔案的結尾開始。
{0} 無效。S來源 XmlReader 未包含結構描述定義,或者是在檔案的結尾開始。`關聯性中的每一個 Name 和 PluralName 都必須是唯一的。'{0}' 已經定義過了。�關聯性 '{1}' 上的 End '{0}' 不能指定作業,因為它的多重性是 '*'。具有多重性 '*' 的端點上不能指定作業。8關聯性 '{1}' 的端點 '{0}' 必須指定多重性。T無法複製這個存放區命令,因為基礎存放區提供者不支援複製。R無法依據為 EntityParameter.DbType 屬性設定的值推斷正確的 DbType。L無法擷取 CommandText 屬性值,因為 CommandTree 屬性不是 Null。L無法擷取 CommandTree 屬性值,因為 CommandText 屬性不是 Null。連接未關閉。�這個 EntityCommand 是以備製命令定義為基礎,無法重新備製。若要使用其他的參數建立對應的命令,請建立新的命令定義,並呼叫它的 CreateCommand 方法。L無法設定 CommandText 屬性值,因為 CommandTree 屬性不是 Null。L無法設定 CommandTree 屬性值,因為 CommandText 屬性不是 Null。?無法執行更新作業,因為配接器的連接未開啟。Q執行此命令定義時發生錯誤。詳細資訊請參閱內部例外狀況。Z準備此命令定義時發生錯誤。請參閱內部例外狀況以取得詳細資訊。T執行此命令時發生錯誤。請參閱內部例外狀況以取得詳細資訊。Q無法執行此命令,因為連接中繼資料與命令中繼資料不相容。:EntityConnection 只能以關閉的 DbConnection 建構。連接未開啟。	已中斷	已關閉N連接字串遺漏了某些必要資訊。'{0}' 關鍵字永遠是必要項。E必須先在連接上設定連接字串,然後再嘗試此作業。�此命令仍然與開啟的資料讀取器關聯。無法在此命令上進行變更,也無法執行此命令,直到資料讀取器關閉為止。6DbConnection 參數 '{0}' 未包含 ProviderFactory。|存放區提供者 Factory 型別 '{0}' 不實作 IServiceProvider 介面。請使用實作此介面的存放區提供者。Q參數必須有唯一的 ParameterName。發現第二個 '{0}' 的執行個體。�EntityParameterCollection 中的其中一個參數為 Null 或空白。名稱必須以字母開頭,而且只能包含字母、數字和底線。 #EdmType '{0}' 不是純量型別。>EdmType '{0}' 與提供給參數 '{1}' 的 DbType 不一致。`在此提供者連接上開始交易時發生錯誤。詳細資訊請參閱內部例外狀況。T關閉此提供者連接時發生錯誤。詳細資訊請參閱內部例外狀況。U執行此命令需要開啟而且可用的連接。此連接目前的狀態為 {0}。>已指定 'Name' 關鍵字時,就不允許其他關鍵字。e存放區資料提供者無法傳回 {0} 要求的資訊。詳細資訊請參閱內部例外狀況。H未對 StoredProcedure EntityCommand 指定 EntityCommand.CommandText。^函式匯入 '{0}' 可組合。只有不可組合的函式匯入可當做預存程序執行。O宣告的導覽屬性 {0}.{1} 的型別與所指定巡覽的結果不相容。 h指定的具名連接在此組態中找不到、不應使用於 EntityClient 提供者,或者無效。�參數 '{0}' 不是輸入專用參數。當 CommandType 屬性設定為 CommandText 時,EntityClient 提供者只允許輸入專用參數。v參數名稱 '{0}' 無效。有效的參數名稱必須以字母開頭,而且只能包含字母、數字和底線。E指定的存放區提供者在此組態中找不到,或是無效。�EntityCommand.CommandText 的值對 StoredProcedure 命令無效。EntityCommand.CommandText 值必須是 'ContainerName.FunctionImportName' 格式。<此交易未與目前的連接關聯,或是已經完成。+MetadataWorkspace 必須預先註冊 {0}。不支援 '{0}' 關鍵字。N具名連接 '{0}' 的連接字串不可在組態中包含 'Name' 關鍵字。2EntityCommand.CommandText 屬性尚未初始化。6無法執行此作業,因為配接器沒有連接。6無法執行此作業,因為此命令沒有連接。]無法執行更新作業,因為配接器的連接不是與有效的存放區連接關聯。基礎提供者失敗。 基礎提供者在 {0} 失敗。D無法使用 EntityClient 由存放區命令樹建立命令定義。�呼叫 '{1}' 型別存放區提供者執行個體上的 '{0}' 方法後傳回了 Null。存放區提供者可能未正常運作。p藉由開啟連接或以 MetadataWorkspace 建構連接註冊中繼資料後,不允許對連接進行修改。i從存放區提供者的資料讀取器讀取時發生錯誤。詳細資訊請參閱內部例外狀況。c存放區資料提供者傳回的資料讀取器沒有足夠資料行可供要求的查詢使用。^此連接已經在交易中,無法參與其他交易。EntityClient 不支援平行交易。1容器 '{0}' 中找不到 FunctionImport '{1}'。I目前的工作區中找不到為 FunctionImport 指定的容器 '{0}'。�EntityParameter '{0}' 必須有可以推斷出 DbType 的值,或者 DbType 必須設定為 EntityParameter.DbType 屬性的值。N無法執行 FunctionImport '{0}',因為它並未對應到存放區函式。bEntityClient 提供者唯一支援的 EntityCommand.CommandType 值是 Text 和 StoredProcedure。JDbType '{0}' 對 '{1}' 物件上的 EntityParameter.DbType 屬性無效。指定的值不是字串。'連接字串中的中繼資料位置。!連接字串中的連接名稱。3連接字串中的基礎提供者非變異名稱。'連接字串中的內部連接字串。dEntityContainer 名稱必須是唯一的。名稱為 '{0}' 的 EntityContainer 已經定義過了。]EntityContainer '{0}' 不可擴充它自己。請指定一些其他 EntityContainer 名稱。內容具名 ConnectionString來源vEntityType '{1}' 中的屬性 '{0}' 無效。所有不屬於 EntityKey 的屬性都必須是列舉或 PrimitiveType。`EntityType '{1}' 中的屬性 '{0}' 無效。目前不支援 '{2}' 型別的 EntityKey 屬性。�EntityType '{1}' 中的屬性 '{0}' 無效。此屬性的型別 '{2}' 對應到 '{3}',而且目前不支援 '{4}' 型別的 EntityKey 屬性。+EntityKey 值設定之後即無法變更。9提供的 IExtendedDataRecord 必須代表實體物件。v無法完成所要求的作業,因為從 '{0}' 型別物件上的 EntityKey 屬性傳回了不相符的 EntityKey。4EntityKey 至少要有一個索引鍵名稱和值。f從中繼資料工作空間取得的 EntitySet '{0}' 與此 EntityKey 要求的 EntitySet 不相容。^由 IExtendedDataRecord '{0}' 代表的物件與 EntitySet ('{1}') 的 EntityType 不相容。�提供的索引鍵-值組清單包含的項目數目不正確。型別 '{0}' 上定義了 {1} 個索引鍵欄位,但是提供的是 {2} 個。a索引鍵欄位 '{0}' 的型別應該是 '{1}',但是所提供的值實際上是型別 '{2}'。%名稱 '{0}' 包含無效的字元。oEntitySet 名稱不可為 Null 或空白,而且必須以非 Null 或空白的 EntityContainer 名稱限定。0EntityKey 未包含有效的 EntitySet 名稱。s提供的輸入中找不到所需項目 '{0}'。在型別 '{1}' 上定義的索引鍵欄位必須有這個項目。g針對概念層中型別為 '{1}' 的索引鍵欄位 '{0}',找不到任何對應的物件層型別。?定義 EntityKey 的索引鍵-值組不可為 Null 或空白。p索引鍵欄位 '{0}' 的值不能是 Null。在型別 '{1}' 上定義的索引鍵欄位需要非 Null 的值。U無法完成所要求的作業,因為此物件傳回了 Null EntityKey 屬性值。O這個具有 {1} 個元素之 EntityParameterCollection 的索引 {0} 無效。Y這個 EntityParameterCollection 不包含 ParameterName 為 '{0}' 的 EntityParameter。O已嘗試移除這個 EntityParameterCollection 不包含的 EntityParameter。C另一個 EntityParameterCollection 已經包含 EntityParameter。OEntityParameterCollection 只接受非 Null 的 EntityParameter 型別物件。c無法設定型別 '{1}' 上的屬性 '{0}',因為這個集合已經設定為 EntityCollection。�物件層型別 '{0}' 已經有產生的 Proxy 型別。當相同的物件層型別由 AppDomain 中兩個以上的模型對應時,就會發生這個問題。C儲存在 Proxy 中的實體包裝函式未參考相同的 Proxy。�沒有可供 '{0}' 的 proxy 型別使用的中繼資料資訊。當實體的 proxy 型別由 ObjectContext 卸離時,可能導致這個例外狀況。請參閱 InnerException 以取得詳細資料。U違反多重性限制式。關聯性 '{1}' 的角色 '{0}' 多重性為 1 或 0..1。�發生參考完整性條件約束違規: 當相依物件為 Unchanged 時,屬於參考完整性條件約束一部分的主索引鍵屬性無法變更,除非這個主索引鍵屬性是設定為關聯的主體物件。主體物件必須受到追蹤,且未被標示為刪除。XEntityKey 屬性不可設定為 EntityNotValidKey、NoEntitySetKey 或暫時索引鍵。~此物件無法加入或附加,因為它的 EntityReference 有與此物件的 EntityKey 不相符的 EntityKey 屬性值。�無法對關聯性 '{2}' 中角色名稱 '{1}' 傳回 '{0}' 型別的 EntityReference。請確認定義此關聯性的 EdmRelationshipAttribute 是否有此角色名稱的正確 RelationshipMultiplicity。如需詳細資訊,請參閱 Entity Framework 文件。�發生關聯性多重性限制式違規: EntityReference 至少應有一個相關物件,但此查詢未從資料存放區傳回任何相關物件。�發生關聯性多重性限制式違規: EntityReference 不能有超過一個以上的相關物件,但查詢傳回一個以上的相關物件。這是無法復原的錯誤。DEntitySet 已經有 EntityContainer,無法將它加入此集合。5傳入的 EntitySet '{0}' 不屬於此概念模型。@EntitySet {0} 是以未定義索引鍵的型別 {1} 為基礎。Q為中繼資料參數指定的 EntityType 與所指定的 EntitySet 不相容。 O一個實體物件不能被多個 IEntityChangeTracker 的執行個體參考。E列舉型別成員 '{1}' 的值 '{0}' 無法轉換為 '{2}' 型別。>CREATEREF 運算子中的運算式不是有效的 EntitySet。#指定的運算式不可為 NULL。-指定的運算式必須是 CollectionType。*指定的運算式必須是數字型別。-指定的運算式必須是 Boolean 型別。={0} 必須參考 EntityType。傳遞的型別是 {1} '{2}'。0指定的運算式型別必須同樣可比較。>{0} 必須參考名義型別。傳遞的型別是 {1} '{2}'。-指定的運算式不可為 CollectionType。1下列資訊可能有助於解決先前的錯誤:'Facet 宣告需要型別屬性宣告。)型別 {1} 的屬性不允許{0} Facet。.不能對非純量型別 '{0}' 指定 Facet。(找不到 '{0}' 的概念模型型別。!找不到 '{0}' 的 CLR 型別。!找不到 '{0}' 的 CLR 型別。*無法解析此處的彙總函式 '{0}'。$無法擷取提供者資訊清單。v函式匯入 '{0}' 具有集合或參考類型的參數。函式匯入中不允許有集合或參考類型的參數。�函式匯入 '{0}' 已宣告為可組合且具有副作用。函式匯入可為可組合或具有副作用,但不可同時為兩者。y函式匯入 '{0}' 會指定實體集及實體集路徑。函式匯入只能指定其中一個值,不可同時指定。cFunctionImport '{0}' 會傳回不可存在所宣告之 EntitySet '{2}' 中的 '{1}' 型別實體。j函式匯入 '{0}' 有不允許為 NULL 的參數。函式匯入中僅允許有允許為 NULL 的參數。FFunctionImport '{0}' 會傳回實體,但是不會指定 EntitySet。BFunctionImport '{0}' 會指定 EntitySet 但不傳回 EntitySet。WEntitySet '{0}' 在 FunctionImport '{1}' 中無效。找不到此名稱的 EntitySet。rFunctionImport '{0}' 中的傳回型別無效。FunctionImport 必須傳回純量值的集合或實體的集合。nFunctionImport '{0}' 中的傳回型別無效。FunctionImport 必須傳回 Scalar、Entity 或 ComplexType。�FunctionImport '{0}' 中的傳回型別無效。FunctionImport 不能有傳回型別,或傳回純量值的集合、複雜類型的集合或實體集合。w函式 '{1}' 中的型別 '{0}' 無效。此函式必須具有以概念端基本型別表示的傳回型別和參數。n函式 '{1}' 中的型別 '{0}' 無效。此函式必須具有以基本型別表示的傳回型別和參數。I處理此查詢時發生 '{0}' 例外狀況。請參閱內部例外狀況一般查詢錯誤f包含所產生檢視 '{0}' 的型別應該衍生自 System.Data.Mapping.EntityViewContainer 型別。G檢視的內容或 EntitySet 基底名稱已經不同於設計階段。C在此工作區找不到指定此檢視的目標 EntitySet '{0}'。錯誤未知警告查詢語法無效。TEdmComplexTypeAttribute 和 EdmEntityTypeAttribute 無法用於泛型型別 '{0}'。HGROUPPARTITION 運算子只允許出現在查詢運算式的內容中。G內部錯誤: 群組變數必須出現在現有範圍的其中一個。BGROUP BY 子句的索引鍵運算式型別必須同樣可比較。/HAVING 子句前面必須有 GROUP BY 子句。HCREATEREF 索引鍵運算式型別與 EntityKey 元素型別不相容。<CREATEREF 索引鍵運算式與 EntityKey 結構不相容。在目前的 FROM 子句中在 GROUP BY 子句中,做為 ROW 建構函式中的資料行名稱在 SELECT 預測清單中!提供者資訊清單不正確。�在 EntityContainer '{4}' 中,未提供 AssociationSet '{1}' 中具有 EntitySet '{0}' 之 End 的 Role,並且在關聯性 '{2}' 中有一個以上的 End 符合型別 '{3}'。請提供 Role 屬性,以釐清 End。�在 EntityContainer '{4}' 中,未提供 AssociationSet '{1}' 中具有 EntitySet '{0}' 之 End 的 Role,而在 Relationship '{2}' 中沒有任何 Ends 符合型別 '{3}'。�未提供 AssociationSet {1} 中具有 EntitySet {0} 之 End 的 Role,而且找到的 End 與已經定義過的相符。請將 EntitySet 變更為具有不同 Relationship End 的型別。*INNER JOIN 運算式必須有 ON 述詞。W無法辨認 {1} 上的 Action {0}。有效的動作為: None、Cascade 和 Restrict。]'{0}' 是保留的關鍵字,除非是加上逸出符號,否則不可當做別名使用。2內部錯誤: 引數型別對彙總函式無效。+UNION 運算式中不支援 '{0}' 型別。IBaseType ({0}) 無效。{1} 的 BaseType 必須是另一個 EntityType。JBaseType ({0}) 無效。{1} 的 BaseType 必須是另一個 ComplexType。MBaseType ({0}) 無效。{1} 的 BaseType 必須是另一個結構化型別。%THEN/ELSE 運算式型別不相容。QCASE/WHEN/THEN 運算式無效,因為產生的所有運算式都不具型別。UCAST 運算式無效。沒有從 '{0}' 型別轉型到型別 '{1}' 的有效轉換。,CAST 引數運算式必須是純量型別。)CAST 型別引數必須是純量型別。_ItemCollection 無效。對於 '{0}' 空間,CollectionType 應該是 MappingItemCollection。�'{0}' 的項目集合無效。請確認 StorageMappingItemCollection 是不是使用對概念模型和儲存體模型註冊的相同項目集合執行個體建構的。型別 '{1}' 中的複雜成員 '{0}' 和型別 '{3}' 中的複雜成員 '{2}' 不相容,因為它們的成員數目不同。7CREATEREF 索引鍵運算式必須是資料列型別。E引數型別 '{0}' 與型式型別 '{2}' 的屬性 '{1}' 不相容。�在型別 '{0}' 上使用型別建構函式無效。這個型別必須是下列其中一個建構函式: Entity、ComplexType 或 RelationType。ADateTimeOffset 常值 '{0}' 超過 DateTimeOffset 值的範圍。3日期 '{0}' 在 DateTime 常值 '{1}' 中無效。C日期 '{0}' 對 DateTime 常值 '{2}' 中的月份 '{1}' 無效。`'{0}' 不是型別 '{1}' 的成員。型別 '{1}' 是取值型別 '{2}' 之運算式的結果。u預設值 ({0}) 對 Binary 無效。值必須是 0x123 格式,其中 123 代表十六進位數字的非空序列。C預設值 ({0}) 對 Boolean 無效。值必須是 true 或 false。B預設值 ({0}) 對 DateTime 無效。值必須是 '{1}' 格式。H預設值 ({0}) 對 DateTimeOffset 無效。值必須是 '{1}' 格式。�預設值 ({0}) 與針對 Decimal 指定的 Facet 不相容。值必須是小數位數小於或等於 {1} 且有效位數小於或等於 {2} 的十進位數字。M預設值 ({0}) 無效。值必須是介於 {1} 到 {2} 之間的浮點數。s預設值 ({0}) 對 GUID 無效。值必須括在單引號中,格式為 'dddddddd-dddd-dddd-dddd-dddddddddddd'。G預設值 ({0}) 無效。應該是介於 {1} 到 {2} 之間的整數。>預設值 ({0}) 對 Time 無效。值必須是 '{1}' 格式。4DISTINCT/ALL 引數在型別建構函式中無效。1DISTINCT/ALL 引數對群組彙總函式無效。cDocumentation 內容無效。Documentation 元素只能包含 Summary 和 LongDescription 元素。'執行階段不支援 EDM 版本 {0}。!逸出識別項不可為空白。7查詢文字只能包含註解及/或泛空白字元。3查詢文字為空白或僅包含泛空白字元。4End {0} 的 Type 不同於 EntitySet 所參考的。R關聯性 '{1}' 中沒有名稱為 '{0}' 的 Role。請檢查然後再試一次。/找不到名稱為 '{0}' 的 EntityContainer。0End {0} 不符合 {1} 型別中的任何 Ends。oEntityParameterCollection 只接受非 Null 的 EntityParameter 型別物件,不接受 {0} 型別的物件。XEntityType 物件 '{0}' 和 '{1}' 不相容,因為它們沒有共同的超級型別。DEntityContainer 中沒有所指定名稱 '{0}' 的 EntitySet with。I包含 EntityContainer 中找不到 End {1} 所參考的 EntitySet {0}。`EntitySet 不能是型別 {0}。此屬性型別必須是 EntityType 或 AssociationEntityType。y型別 '{1}' 中的實體 '{0}' 與型別 '{3}' 中的實體 '{2}' 不相容,因為它們沒有共同的超級型別。?指定的型別無法當做列舉型別的基礎型別使用。逸出識別項 '{0}' 無效。Z逸出識別項 '{0}' 的開始分隔符號 ('[') 和結束分隔符號 (']') 不相符。+運算式已分類為 {0}; 必須是 {1}。N所指定檔案 '{0}' 的副檔名 '{1}' 無效。有效的副檔名為 {2}。2FLATTEN 引數必須是由集合組成的集合。�Principal Role {0} 參考的屬性必須與 Relationship {2} 的關聯性限制式中 Principal Role 參考的 EntityType {1} 的索引鍵完全相同。請確認在 Principal Role 中是否指定了所有索引鍵屬性。k識別項 '{0}' 無效,因為它不是包含在彙總函式中,也不是包含在 GROUP BY 子句中。3小時 '{0}' 在 DateTime 常值 '{1}' 中無效。3在關聯性 '{0}' 中無法推斷 'from' 端點。1在關聯性 '{0}' 中無法推斷 'to' 端點。o元素型別 '{0}' 和 CollectionType '{1}' 不相容。IN 運算式僅支援實體、純量和參考型別。 ,JOIN 子句中不允許左方相互關聯。FKEY 引數運算式必須是參考型別。傳遞的型別是 '{0}'。z索引鍵使用方式無效。{0} 不可定義索引鍵,因為它的其中一個基底類別 ({1}) 會定義索引鍵。;指定的索引鍵 Member '{0}' 不在 Members 集合中。:索引鍵: {0} 無效。{1} 不是有效的屬性名稱。[索引鍵部分: 型別 {1} 的 '{0}' 無效。索引鍵的所有部分都不可為 Null。VCOLLATE 只能配合字串型別的排序索引鍵使用。傳遞的型別是 '{0}'。{0} 常值 '{1}' 無效。MaxLength 必須大於零。^名稱 {0} 不可使用在型別 {1} 中。成員名稱不可與它們的封入型別相同。('{0}' 已解析為 {1}; 必須是 {2}。f命名空間、型別或函式名稱必須是單一名稱,或以點分隔之名稱的任何數目。�指定的中繼資料路徑無效。有效的路徑必須是現有目錄、副檔名為 '.csdl'、'.ssdl' 或 '.msl' 的現有檔案,或是識別內嵌資源的 URI。3分鐘 '{0}' 在 DateTime 常值 '{1}' 中無效。I只有在定義唯讀檢視查詢時才支援 WITH RELATIONSHIP 子句。3月份 '{0}' 在 DateTime 常值 '{1}' 中無效。�多重性和關聯性 '{1}' 中的 Role '{0}' 中的參考限制式衝突。由於 Dependent Role 中的一個/所有屬性不可為 Null,Principal Role 的多重性必須是 '1'。�多重性和關聯性 '{1}' 中的 Role '{0}' 中的參考限制式衝突。由於Dependent Role 中的所有屬性都不可為 Null,Principal Role 的多重性必須是 '1'。�多重性在關聯性 '{1}' 中的 Role '{0}' 中無效。由於 Dependent Role 中的所有屬性都可為 Null,Principal Role 的多重性必須是 '0..1'。�在關聯性 '{1}' 中,角色 '{0}' 中的 Multiplicity 無效。對 Principal Role 有效的 Multiplicity 值為 '0..1' 或 '1'。\在關聯性 '{1}' 中,Role '{0}' 中的多重性無效。多重性的下限必須是 0。�在關聯性 '{1}' 中,Role '{0}' 中的 Multiplicity 無效。因為 Dependent Role 屬性不是索引鍵屬性,所以 Dependent Role 的多重性上限必須是 *。�在關聯性 '{1}' 中,Role '{0}' 中的 Multiplicity 無效。因為 Dependent Role 要參考索引鍵屬性,所以 Dependent Role 的多重性上限必須是 1。{1} ({0}) 無效。命名空間別名無效。�找不到具有 '{0}' 命名空間的結構描述。請確認此命名空間是否正確,或者是否指定了定義此命名空間的結構描述。~'{0}' 不是有效的命名空間或別名名稱。您必須使用目前的結構描述命名空間或別名來限定型別。6不具型別 NULL 引數在算術運算式中無效。6不具型別 NULL 引數在比較運算式中無效。J型別 '{1}' 的不可為 Null 成員 '{0}' 不可用 NULL 值初始化。L函式 '{0}' 中發生錯誤。彙總函式只能接受一個輸入參數。X只能在 Association 的一個 End 上指定 OnDelete、OnLock 和其他類似元素。運算子符號無效。#命令參數語法 '@{0}' 無效。b函式 '{1}' 中參數 '{0}' 的型別無效。彙總函式參數型別必須是 CollectionType。V{0} 成員 '{1}' 與 {2} 成員 '{3}' 不相容,因為它們沒有共同的型別。}型別 '{2}' 中的 {0} 成員 '{1}' 與型別 '{5}' 中的 {3} 成員 '{4}' 不相容,因為它們沒有共同的型別。iScale Facet 的最大值 '{0}' 必須小於或等於 '{2}' 型別中Precision Facet 的最大值 '{1}'。*CROSS JOIN 子句中不允許 ON 述詞。.值 '{0}' 不是有效的 PrimitiveTypeKind。BRole '{1}' 參考的型別中未定義名稱為 '{0}' 的屬性。b屬性不可為 {0} 型別。此屬性型別必須是內嵌型別、純量型別或列舉型別。標點符號無效。E此查詢無效,因為它包含不可預測的關聯型別 '{0}'。^Relationship {0} 無效。多重性 ({1}) 無效。多重性必須是: '*'、'0..1' 或 '1'。URelationship {0} 無效。End 型別 ({1}) 無效。End 型別必須是 EntityType。/'{0}' 不是 '{1}' 關聯性的有效成員。 EEntityContainer 中沒有所指定名稱 '{0}' 的 RelationshipSet。NRelationshipSet 不可為型別 {0}。此屬性型別必須是 Relationship。Y複雜類型 '{0}' 與複雜類型 '{1}' 不相容,因為它們的成員數目不同。b資料列型別 '{0}' 與資料列型別 '{1}' 不相容,因為它們的資料行數目不同。�型別 '{1}' 中的資料列成員 '{0}' 與型別 '{3}' 中的資料列成員 '{2}' 不相容,因為它們的資料行數目不同。 內部錯誤: 儲存點無效。)指定的結構描述無效。錯誤: {0}#內部錯誤: 範圍索引無效。3秒鐘 '{0}' 在 DateTime 常值 '{1}' 中無效。�在這個內容中,SELECT VALUE 運算式不能有別名。只有當您指定 ORDER BY 時,SELECT VALUE 運算式才能有別名。:SELECT VALUE 在預測清單中只能有一個運算式。簡單識別項 '{0}' 無效。s簡單識別項 '{0}' 只能包含基本拉丁字元。如果要使用 UNICODE 字元,請使用逸出識別項。TMaxLength '{0}' 無效。'{3}' 型別的長度必須介於 '{1}' 到 '{2}' 之間。4參數 '{0}' 無效。字串引數不可為空白。LSRID '{0}' 無效。'{3}' 型別的值必須介於 '{1}' 到 '{2}' 之間。�Dependent Role {0} 參考的屬性必須是 Relationship {2} 參考條件約束中 Dependent Role 所參考 EntityType {1} 的索引鍵子集。<WITH RELATIONSHIP 子句僅支援實體類型建構函式。''{0}' 引數必須是 CollectionType。=無正負號型別 '{0}' 不可提升為有正負號型別。N在 ASP.NET 內部執行時,'{0}' 在中繼資料檔案路徑中才有效。�值 {0} 對 ParameterTypeSemantics 屬性無效。有效值為 'ExactMatchOnly'、'AllowImplicitPromotion' 或 'AllowImplicitConversion'。2多重性 '{1}' 對關聯性端點 '{0}' 無效。3年份 '{0}' 在 DateTime 常值 '{1}' 中無效。-在 GroupBy 方法之外遇到 AggregateOp。未預期的 VarDefOp未預期的 VarDefListOp'指定的 Op 是不支援的型別: {0}JIS [NOT] NULL 運算式必須是實體、參考、列舉或基本型別。4'{0}' 空間的 ItemCollection 已經註冊過了。4中繼資料集合中有識別為 '{0}' 的項目。7中繼資料集合中沒有識別為 '{0}' 的成員。MEntityType '{0}' 未定義索引鍵。請定義此 EntityType 的索引鍵。I索引鍵運算式 '{0}' 至少要有一個即時輸入範圍的參考。9設定運算式的左邊引數必須是 CollectionType。#LIKE 引數必須是字串型別。3沒有對應到常值型別 '{0}' 的 EDM 型別。,內部錯誤: 不支援常值型別 '{0}'。集合	資料行複雜實體實體容器列舉成員函式查詢內嵌函式	關鍵字左行命名空間、型別或函式命名空間接近基本參考右	資料列詞彙型別值運算式6指定的常值有格式不正確的單引號裝載。9指定的常值有格式不正確的字串常值裝載。KXML 格式不正確。開始於 ({0},{1}) 的元素沒有結結尾標記。�概念端中的型別 '{0}' 無法對應到物件端上的型別 '{1}'。這兩個型別都必須是抽象,或者兩者都必須是具象型別。�在 EntityContainer '{0}' 的 EntityContainerMapping 中的 EntitySetMapping 必須只包含對應片段而沒有查詢檢視。此 EntitySetMapping 只包含查詢檢視,將不會產生此 EntityContainerMapping 的檢視。>儲存體模型的 EntityContainer '{0}' 已經對應過了。QEdmType 不可多次對應到 CLR 類別。EdmType '{0}' 對應了一次以上。6對此條件指定的值與成員的型別不相容。J概念模型型別 '{1}' 中的成員 '{0}' 不在 CLR 型別 '{2}' 中。OCLR 型別 '{1}' 中的成員 '{0}' 不存在於概念模型型別 '{2}' 中。{概念端型別 '{2}' 中成員 '{1}' 的型別 '{0}' 與物件端型別 '{5}' 上成員 '{4}' 的型別 '{3}' 不相符。�概念模型型別 '{1}' 上的 '{0}' 屬性為型別 '{2}'。CLR 型別 '{4}' 上的屬性 '{3}' 為型別 '{5}'。屬性型別必須相符。}概念型別 '{0}' 中的成員數目與物件端型別 '{1}' 上的成員數目不符。請確認成員數目是否相同。�概念型別 '{3}' 中成員 '{2}' 的型別 '{0}'('{1}') 與物件端型別 '{7}' 上成員 '{6}' 的型別 '{4}'('{5}') 不符。�概念端 Association '{2}' 中 End '{1}' 的多重性 '{0}' 與物件端 Association '{5}' 上 End '{4}' 的多重性 '{3}' 不符。HEdmItemCollection 的版本必須符合 StoreItemCollection 的版本。j載入之對應檔的版本必須與載入之 EdmItemCollection 和 StoreItemCollection 的版本相同。�MakeColumnsDistinct 旗標只能放置於不會產生更新檢視的容器內。請在 EntityContainerMapping 內將 GenerateUpdateViews 屬性標記為 'false'。1概念 AssociationSet '{0}' 不可對應多次。X使用不區分大小寫的搜尋時,找到一個以上屬性 '{0}' 的屬性對應。%型別 '{0}' 對應了一次以上。5為 EntitySet '{0}' 指定的查詢檢視是空的。D為 EntitySet '{1}' 指定的 IsTypeOf({0}) 查詢檢視是空的。J為 EntityType '{1}' 的 EntitySet '{0}' 指定的查詢檢視是空的。�用於建立 Ref 運算式的 EntitySet '{0}' 和在 AssociationSet '{3}' 的 AssociationSetEnd '{2}' 上宣告的 EntitySet '{1}' 不相符。概念模型中定義的型別 '{0}' 無法對應至物件層中的型別 '{1}'。列舉型別無法對應至非列舉型別。@必須為列舉 '{0}' 的條件對應指定非空白列舉值。1條件對應中指定的列舉值 '{0}' 無效。�物件層中定義的列舉型別 '{0}' 沒有對應至成員 '{1}' 的成員,該成員的值為概念模型中定義之列舉型別 '{3}' 的 '{2}'。�概念模型中定義之列舉型別 '{1}' 的基礎型別 '{0}' 不符合物件層中定義之列舉型別 '{3}' 的基礎型別 '{2}'。�函式匯入 '{0}' 傳回之所有實體類型的索引鍵屬性都必須對應至儲存函式傳回之不可為 Null 的相同資料行。x為 {0} 指定的條件值與儲存體提供者傳回的型別不相容。資料行名稱: '{1}',ResultType: '{2}'。 n{0} 元素只能對宣告 EntitySet 的 FunctionImport 宣告。FunctionImport '{1}' 並未宣告 EntitySet。.無法解析為函式 '{0}' 的特定多載。.FunctionImport '{0}' 不在容器 '{1}' 中。*FunctionImport '{0}' 已經對應過了。J函式匯入 '{1}' 的傳回型別 '{0}' 為抽象,無法隱含對應。N匯入函式有參數 '{0}',但是儲存函式中卻沒有對應的參數。�型別 '{1}' 的儲存函式參數 '{0}' 不符合基礎型別為 '{3}' 之列舉型別 '{2}' 的對應 FunctionImport 參數。概念模型中定義之函式的列舉參數的基礎型別必須符合對應的儲存函式參數型別。_參數 '{0}' 在儲存函式中為模式 '{1}',但在 FunctionImport 中卻是模式 '{2}'。f參數 '{0}' 在此儲存體中為型別 '{1}',與 FunctionImport 宣告的型別 '{2}' 不相容。�指定的 EntityType '{0}' 不是宣告的型別 '{1}',也不是 FunctionImport '{3}' 的 EntitySet '{2}' 的型別所衍生。]未對函式匯入 '{2}' 結果對應中之型別 '{1}' 的概念屬性 '{0}' 指定對應。gFunctionImport '{0}'  之 ResultMapping 元素的數目不符合指定之 ReturnType 元素的數目。l函式匯入 '{0}' 的對應無效。ComplexTypeMapping 僅支援傳回 ComplexType 集合的函式匯入。j函式匯入 '{0}' 的對應無效。EntityTypeMapping 僅支援傳回 EntityType 集合的函式匯入。[函式匯入 '{0}' 的對應無效。儲存函式傳回型別必須是資料列的集合。e函式匯入 '{0}' 的對應無效。對應的型別 '{1}' 與函式匯入的傳回型別不相容。8受影響資料列參數 '{0}' 不在函式 '{1}' 中。V受影響資料列參數 '{0}' 有模式 '{1}'。必須具備模式 '{2}' 或 '{3}'。R受影響資料列參數 '{0}' 屬於型別 '{1}'。必須是整數數字型別。�函式匯入 '{0}' 只能對應至傳回單一資料行之資料列的存放區函式。此存放區函式 '{1}' 會傳回多個資料行的資料列。d函式匯入 '{1}' 的傳回型別 '{0}' 與存放區函式 '{3}' 的傳回型別 '{2}' 不相容。儲存函式 '{0}' 不存在。�可組合的 FunctionImport '{0}' 對應到不可組合的存放區函式 '{1}'。可組合的 FunctionImport 只能對應到可組合的資料表值存放區函式。�不可組合的 FunctionImport '{0}' 對應到可組合的存放區函式 '{1}'。不可組合的 FunctionImport 只能對應到預存程序。U儲存函式有參數 '{0}',但是在 FunctionImport 中找不到對應的參數。�函式匯入對應無法產生來自 '{0}' 型別階層架構的實體。請確認條件沒有明確隱含此階層架構中的一些型別。請參閱第 '{1}' 行。}函式匯入對應無法產生型別 '{0}' 的實體。請確認條件沒有明確隱含此型別。請參閱第 '{1}' 行。f儲存體提供者傳回的型別不支援型別條件。資料行名稱: '{0}',ResultType: '{1}'。"對應無效的錯誤"AEntityType '{0}' 是抽象,無法使用函式對應來對應。F使用於 IsTypeOf 中的 EntityType '{0}' 沒有任何具象子代。?EntityType '{0}' 是 Abstract,只能使用 IsTypeOf 對應。TAssociationSet '{0}' 不能有 Condition,因為它不提供 End 元素的對應。U指定為此 MSL 之一部分的 AssociationSet '{0}' 不在 MetadataWorkspace 中。V指定為此 MSL 之一部分的 AssociationType '{0}' 不在 MetadataWorkspace 中。L提供函式對應或 End 屬性對應時應指定 AssociationType 名稱。s內容無效。指定為這個 MSL 之一部分的概念端成員或屬性 '{0}' 不存在 MetadataWorkspace 中。O指定為此 MSL 之一部分的資料行 '{0}' 不在 MetadataWorkspace 中。R指定為此 MSL 之一部分的複雜類型 '{0}' 不在 MetadataWorkspace 中。E概念模型和資料行成員兩者都不可對條件對應指定。>Value 和 IsNull 屬性兩者都不可對條件對應指定。z無法對資料行成員 '{0}' 指定條件,因為它已經用 'Computed' 或 'Identity' StoreGeneratedPattern 標記。<必須對條件對應指定概念模型或資料行成員。8必須對條件對應指定 Value 或 IsNullAttribute。+條件中指定的成員 '{0}' 不存在。O無法針對成員 '{0}' 的值指定條件。值條件不支援型別 '{1}'。'複雜值成員上不可指定條件。V只應為 EntitySetMapping、AssociationSetMapping 或 FunctionImportMapping 元素。^概念端成員或屬性 '{0}' 具有多個指定為相同對應片段之一部分的對應。U成員或屬性 '{0}' 具有多個指定為相同對應片段之一部分的條件。=至少要有一個屬性在 '{0}' 的集合對應中對應。Q指定為此 MSL 之一部分的 End 屬性 '{0}' 不在 MetadataWorkspace 中。�屬性 '{0}' 不是 EntityType 的索引鍵成員。只有索引鍵成員可以做為 EndProperty 對應的一部分進行對應。e指定為此 MSL 之一部分的概念模型的 EntityContainer '{0}' 不在 MetadataWorkspace 中。P指定為此 MSL 之一部分的 EntitySet '{0}' 不在 MetadataWorkspace 中。Q指定為此 MSL 之一部分的 EntityType '{0}' 不在 MetadataWorkspace 中。_指定的 EntityType '{0}' 不是宣告的型別 '{1}',或 EntitySet '{2}' 型別的衍生。IAssociationType '{0}' 具有參考完整性條件約束,無法對應。vAssociationType '{0}' 具有主索引鍵參考完整性條件約束的主索引鍵。系統將忽略其任何對應。MSL 的內容無效。*IsOfType 宣告中有未封閉的括號。h指定為此 MSL 之一部分的儲存體模型的 EntityContainer '{0}' 不在 MetadataWorkspace 中。O指定為此 MSL 之一部分的資料表 '{0}' 不在 MetadataWorkspace 中。3應該有資料表對應元素,但是找不到。eEntitySetMapping 上未指定 EntityType 名稱時只允許 EntityTypeMapping 和 QueryView 元素。O針對對應結構描述的 XML 剖析失敗。結構描述錯誤資訊: {0}。[針對對應結構描述的 XML 結構描述驗證失敗。結構描述錯誤資訊: {0}。T指定的 AssociationType '{0}' 不是 AssociationSet '{2}' 宣告的型別 '{1}'。�在對應檔中找到無效的根元素。請確定根元素的本機名稱為 'Mapping',而 namespaceURI 為 '{0}'、'{1}' 或 '{2}'。.概念端的屬性 '{0}' 不是純量屬性。�指定的成員對應無效。型別 '{2}' 中成員 '{1}' 的型別 '{0}' 與型別 '{5}' 中成員 '{4}' 的 '{3}' 不相容。[為 EntitySet '{0}' 產生的查詢檢視無效。查詢剖析器擲回下列錯誤: {1}。[為 EntitySet '{0}' 指定的查詢檢視無效。查詢剖析器擲回下列錯誤: {1}。m為 EntitySet '{0}' 指定的查詢檢視運算式的 ResultType 無法指派給 EntitySet 的元素型別。�如果 EntitySet 或 AssociationSet 包括查詢檢視,EntityContainer 中的所有相關實體和關聯集也必須定義查詢檢視。下列集合必須有查詢檢視: {0}。�概念模型和儲存體模型中都有名稱為 '{0}' 的 GlobalItem。請確認概念模型和儲存體模型中的每一個項目都有唯一的名稱。O對應函式繫結指定了具有一個以上多載模稜兩可的函式 {0}。a函式對應包括單一屬性的多個結果繫結。屬性名稱: {0}。資料行名稱: {1}。P不允許 'to' 角色 {0} 的函式對應,因為這是外部索引鍵關聯。UEntityType '{0}' 包括需要型別 '{2}' 之 AssociationSet '{1}' 的函式對應。�AssociationSet 執行個體只能使用一個 EntitySetMapping 或 AssociationSetMapping 中的函式對應。下列 AssociationSet 執行個體在多個位置中對應: {0}。[關聯 End 對應有多重性大於一的 'to' Role {0}。支援的最大多重性為一。H關聯 End 對應指定了不在目前容器中的 AssociationSet {0}。L關聯 End 對應定義了未繫結到目前 EntitySet 的來源 Role {0}。�EntitySet '{0}' 包括 AssociationSet '{1}' 的函式對應,但是都不在型別 '{3}' 的元素中 '{2}'。AssociationSets 對所有運算必須一致地對應。H關聯 End 對應指定了不在目前 AssociationSet 中的 Role {0}。>在目前的 MetadataWorkspace 中找不到 ComplexType {0}。G包含函式對應的 EntityType 對應不可指定 TableName 屬性。如果 EntitySet 對應包括函式繫結,對所有型別也必須包括函式繫結。下列型別沒有函式繫結: {0}。Q對應函式繫結指定了函式 {0},但是未對應下列函式參數: {1}。�如果部分 EntitySet 或 AssociationSet 對應至相同的存放區 EntitySet,且這些集合之一包含函式對應,則 EntityContainer 中的所有相關實體和 AssociationSets 都必須也定義函式對應。下列集合需要函式對應: {0}。$無法判斷參數繫結的版本。�函式對應包括同一個 AssociationSet 的兩個不同 Ends 的參數繫結。在單一函式對應內只能對應一個特定 AssociationSet 的 End。End 角色: {0}, {1}. AssociationSet: {2}。�EntityType 對應函式繫結不可對應多個型別。只能對單一型別的 EntityType 對應指定函式對應 -- 不可使用 'IsTypeOf' 修飾詞或指定多個型別。U對應函式繫結指定了不支援的函式 {0}。僅支援不可撰寫的函式。�對應函式繫結指定的函式 {0} 具有不支援的參數: {1}。輸出參數只能透過 {2} 屬性對應。請使用結果繫結從函式引動過程傳回值。參數 {0} 繫結了多次。.函式參數 {0} 未在函式 {1} 中定義。"屬性 {0} 不在型別 {1} 中。T屬性 {0} 不是 {1} 的索引鍵。關聯 End 對應只能包括索引鍵屬性。�指定的參數對應無效。型別 '{2}' 中成員 '{1}' 的型別 '{0}' 與函式 '{5}' 中參數 '{4}' 的 '{3}' 不相容。-EntityType {0} 對應到函式一次以上。1對應函式繫結指定了未知的函式 {0}。=此函式對應只能包含 '目前' 屬性版本的繫結。=此函式對應只能包含 '原始' 屬性版本的繫結。7複雜類型 {0} 與目前屬性 {1} 的型別不符。:在 Workspace 找不到 EntityContainer '{0}' 的對應。4找不到識別為 '{0}' 的型別的物件對應。6存放區提供者未傳回 '{0}' 的有效 EdmType。此連接不是 '{0}' 型別。4指定的提供者資訊清單不是 '{0}' 型別。@對 EntitySet {0} 中的多個型別定義了單一 QueryView。NIsTypeOf( ) QueryView 已經對 EntitySet {0} 和 TypeName {1} 定義過了。BQueryView 已經對 EntitySet {0} 和 TypeName {1} 定義過了。J對 {1} EntitySet 的元素型別 {0} 應指定 IsTypeOf({0}) QueryView。S無法對 EntitySet '{0}' 指定屬性對應,因為已經指定了查詢檢視。a必須對 EntitySet {0} 的對應中第一個之外的所有 QueryViews 定義 TypeName 屬性。h只能從概念模型中的型別查閱儲存體對應。不可從下列空間中的型別查閱: {0}。�概念端屬性 '{0}' 已經對應到型別 '{1}' 的儲存體屬性。如果概念端屬性對應到儲存體模型中的多個屬性,請確認儲存體模型中的所有型別是否為相同型別。k不可在集合 '{0}' 的 Set 對應上指定儲存體 EntitySet 名稱,因為將要指定查詢檢視。N第一個 QueryView 不可因型別而異。請嘗試移除 TypeName 屬性。c對 '{0}' EntitySet 的型別 '{1}' 指定的查詢檢視包含不支援的運算式種類 '{2}'。o為 EntitySet '{0}' 指定的查詢檢視包含函式 '{1}' 的呼叫。查詢檢視只能參考儲存函式。�對 EntitySet '{0}' 指定的查詢檢視會初始化型別 '{1}' 的執行個體。只允許可以指派給 EntitySet 之元素型別的型別。p對 EntitySet '{0}' 指定的查詢檢視包含種類 '{2}' 之成員 '{1}' 的參考。只能參考資料行。�對 EntitySet '{0}' 指定的查詢檢視包括 '{1}' EntitySet 的掃描。在查詢檢視中只能參考儲存體 EntitySets。J在組件中找不到檢視,或無法為 {0} '{1}' 產生任何檢視。g已經有索引鍵值為 '{0}' 的物件處於已加入狀態。處於此狀態的物件不可合併。*查詢的結果不可列舉一次以上。Z指定的轉型 (從具體化 '{0}' 型別轉型為可為 Null 的 '{1}' 型別) 無效。K指定的轉型 (從具體化 '{0}' 型別轉型為 '{1}' 型別) 無效。�轉型為 '{0}' 型別失敗,因為具體化的值為 Null。此結果型別的泛型參數或此查詢,兩者中必須有一個使用可為 Null 的型別。$此屬性不可設定成 Null 值。(屬性 '{0}' 不可設定成 Null 值。�EntitySet '{0}' 中的所有物件都必須有唯一的主索引鍵。但是型別 '{1}' 的執行個體和型別 '{2}' 的執行個體兩者有相同的主索引鍵值 '{3}'。 s'{1}' 上的 '{2}' 屬性不可設定成 '{3}' 值。您必須將此屬性設定成 '{0}' 型別的非 Null 值。 B只有基本型別、實體類型和複雜類型可以具體化。C未在實體容器 '{1}' 中定義實體集或函式匯入 '{0}'。1成員集合中沒有識別為 '{0}' 的成員。中繼資料不一致的錯誤不支援方法引動過程。J型別 '{1}' 中 '{0}' 的最小值和最大值必須大於或等於零。c型別 '{1}' 中 '{0}' 的最小值和最大值不可相同,因為 '{0}' 不是指定為常數。c不可指定型別 '{1}' 中 '{0}' 的最小值和最大值,因為 '{0}' 已經指定為常數。\對型別 '{2} 中 '{1}' 指定的最小值 '{0}' 無效。最小值必須小於最大值。W關聯性限制式中 Dependent 和 Principal Role 的屬性數目必須完全相同。7關聯性 '{0}' 未包含必要的參考條件約束。f型別 '{1}' 中遺漏 '{0}' 的預設值。必須指定預設值,因為 '{0}' 已指定為常數。�未指定 AssociationSet '{1}' 中 End '{0}' 的 EntitySet,而且也無法推斷,因為沒有任何 EntitySet 元素是正確的型別。G型別 '{0}' 是必須有 Facet 描述 {2} 的 PrimitiveTypeKind {1}。名稱遺漏或者無效。2結構描述必須指定 Namespace 屬性的值。?中繼資料集合中有一個以上項目符合識別 '{0}'。:參數 '{0}' 在此參數集合中定義了一次以上。:變數 '{0}' 在此變數集合中定義了一次以上。!多重集元素型別不相容。J命名空間別名 '{0}' 已在前面的 USING 指示詞中使用過了。"命名空間 '{0}' 已經匯入。�宣告 NavigationProperty '{1}' 的 EntityType '{0}' 不是此 NavigationProperty 所代表之 RelationshipType '{2}' 的端點 '{3}' 參考的相同型別 '{4}'。|命名空間 '{0}' 是系統命名空間且由每個結構描述隱含參考。不可指定此命名空間的明確參考。4巢狀彙總 {0} 無法在彙總 {1} 內部使用。J組件 '{1}' 中的型別 '{0}' 是巢狀類別。不支援巢狀類別。n要載入的型別 '{0}' 與已經載入的型別 '{1}' 衝突,因為它們和命名空間和名稱相同。Q沒有任何彙總函式 '{0}.{1}' 的多載與 '{2}' 中的引數型別相容。�沒有任何標準彙總函式 '{0}.{1}' 的多載與 '{2}' 中的引數型別相容。請參閱具有類似功能之存放區函式的提供者專屬函式文件。�沒有任何標準函式 '{0}.{1}' 的多載與 '{2}' 中的引數型別相容。請參閱具有類似功能之可能存放區函式的提供者專屬函式文件。H'{0}' 命名空間已預留給 Entity Framework 程式碼產生使用。%空間 '{0}' 沒有關聯的集合。K沒有任何函式 '{0}.{1}' 的多載與 '{2}' 中的引數型別相容。R沒有對應到 PrimitiveType '{1}' 之概念端型別 '{0}' 的存放區型別。?無法撰寫的函式不可設定彙總或內建函式屬性。0無法撰寫的函式不可宣告傳回型別。m'{0}' 不是 '{1}' 的成員。如果要擷取集合元素的屬性,請使用子查詢反覆查看集合。C'{0}' 不是目前所載入結構描述中型別 '{1}' 的成員。G型別 '{0}' 不是 '{1}' 的子型別、也不是它的超級型別。&PrimitiveType 不是二進位型別。4指定的基本型別不是 DateTimeOffset 型別。'PrimitiveType 不是 DateTime 型別。&PrimitiveType 不是 Decimal 型別。;型別 {0} 未在命名空間 {1} (別名={2}) 中定義。.型別 {0} 未在命名空間 {1} 中定義。n型別 {0} 未以命名空間或別名限定。只有 PrimitiveType 可以在不加限定的情況下使用。#PrimitiveType 不是字串型別。*指定的基本型別不是 Time 型別。T至少有一個輸入路徑無效,因為它可能太長,或者格式不正確。,NULL 常值不可提升為 CollectionType。E關聯性 '{1}' 的 EdmRelationshipAttribute 有 Null 參數 '{0}'。P組件 '{0}' 中 EdmRelationshipAttribute 的 RelationshipName 參數為 Null。'遺漏型別建構函式引數 '{0}'。L傳遞給型別 '{0}' 建構函式的引數數目超過它的型式規格。�對資料庫的變更認可成功,但是在更新物件內容時發生錯誤。ObjectContext 可能處於不一致的狀態。內部例外狀況訊息: {0}A具有暫時 EntityKey 值的物件不可附加到物件內容。@具有 Null EntityKey 值的物件不可附加到物件內容。D無法刪除此物件,因為在 ObjectStateManager 中找不到。F無法卸離此物件,因為它並未附加到 ObjectStateManager。s無法針對卸離的實體明確載入 {0}。使用 NoTracking 合併選項載入的物件永遠為卸離狀態。C無法使用載入物件使用的內容以外的內容載入 {0}。k已經設定了此 ObjectContext 的 DefaultContainerName 屬性。此屬性設定之後即無法變更。 G下列物件尚未重新整理,因為在存放區中找不到: {0}。�作業失敗: 由於一個或多個外部索引鍵屬性不可為 Null,因此無法變更關聯性。關聯性變更時,相關的外部索引鍵屬性會設為 Null 值。如果外部索引鍵不支援 Null 值,則必須定義新的關聯性、必須為外部索引鍵屬性指派另一個非 Null 的值,或者必須刪除無關的物件。�無法判斷 EntityContainer 名稱。提供的 EntitySet 名稱必須以 EntityContainer 名稱限定,例如 'EntityContainerName.EntitySetName',或者必須設定 ObjectContext 的 DefaultContainerName 屬性。�ObjectContext 中的物件是 '{0}' 型別,但是提供的已修改物件是 '{1}' 型別。這兩個物件必須是相同的 EntityType 才能套用變更。 p無法附加此物件,因為它已經在物件內容中。物件處於未變更狀態時無法重新附加。 )找不到 EntityContainer 名稱 '{0}'。�ObjectContext 中的現有物件是處於 {0} 狀態。現有物件必須是處於未變更或已修改狀態才能套用變更。�ObjectContext 中現有的物件處於 {0} 狀態。當現有物件處於未變更、未修改或已刪除的狀態時,則可以變更原始值。�無法由 ObjectSet 刪除指定的實體,因為這個實體為 EntitySet '{0}.{1}' 的成員,而非 ObjectSet 參考的 EntitySet '{2}.{3}' 的成員。請使用包含這個實體的 ObjectSet 上的 DeleteObject 方法,或者如果您想要刪除實體而不驗證它的 EntitySet,則使用 ObjectContext.DeleteObject 方法。�指定的實體無法由 ObjectSet 卸離,因為實體為 EntitySet '{0}.{1}' 的成員,而非 ObjectSet 所參考的 EntitySet '{2}.{3}' 的成員。請使用包含這個實體的 ObjectSet 上的 Detach 方法,或者如果您想要刪除實體而不驗證它的 EntitySet,則使用 ObjectContext.Detach 方法。�在 ObjectStateManager 中找不到其索引鍵和提供之物件的索引鍵相符的物件。請確認必須套用變更的物件並非處於 Added 狀態,且它的索引鍵值符合提供的物件的索引鍵值。�無法判斷 EntitySet 名稱。如果要附加物件,請提供有效的 EntitySet 名稱,並且確認此物件是否擁有有效的 EntityKey。#找不到 EntitySet 名稱 '{0}'。9執行命令時,參數僅能是資料庫參數或值。�預存程序函式或函式 '{0}' 沒有傳回型別。ExecuteFunction 僅支援有傳回型別的預存程序函式和函式。 :參數陣列中位於索引 {0} 位置的參數為 Null。�預存程序或函式 '{1}' 傳回了型別 '{0}'。ExecuteFunction 僅支援傳回實體物件集合或複雜物件集合的預存程序和函式。 XExecuteFunction 中的型別參數 '{0}' 與此函式傳回的型別 '{1}' 不相容。 :指定的 CommandTimeout 值無效。它必須是正數。Q提供的連接無效,因為它包含不充分的對應或中繼資料資訊。W提供的連接字串無效,因為它包含不充分的對應或中繼資料資訊。kDbConnection.ProviderFactory.CreateDataAdapter() 傳回的 DbDataAdapter 必須實作 IEntityDataAdapter。V對應和中繼資料資訊中找不到指定的預設 EntityContainer 名稱 '{0}'。@指定的 EntitySet '{0}.{1}' 不包含型別 '{2}' 的結果。m來自物件之 EntityKey 的 EntitySet 名稱 '{0}.{1}' 與預期的 EntitySet 名稱 '{2}.{3}' 不相符。�來自實體之 EntityKey 的 EntitySet 名稱 '{0}.{1}' 與預期來自 '{4}' 參數的 EntitySet 名稱 '{2}.{3}' 不相符。T來自實體之 EntityKey 的 EntitySet, '{0}' 與實體的型別 '{1}' 不相符。�傳遞給實體的 EntityState 值無效。EntityState 值必須為下列之一: Added、Deleted、Detached、Modified 或 Unchanged。H指定的實體型別 '{0}' 不符合 EntitySet '{2}' 的型別 '{1}'。�傳遞給關聯性的 EntityState 值無效。EntityState 值必須是下列之一: Added、Deleted、Detached 或 Unchanged。關聯性無法設定為 Modified 狀態。L結果型別 '{0}' 不能為抽象,而且必須包含預設建構函式。�ObjectContext 儲存的中繼資料與 ObjectContext 的連接儲存的中繼資料不同。如果在建立 ObjectContext 之後變更連接字串,就會發生這種情況。�無法判斷指定之實體型別 '{0}' 的 EntitySet,因為中繼資料的多個 EntityContainers 中為這個型別定義一個以上的 EntitySet。如果您想要使用 TEntity 型別和特定的 EntitySet,請使用接受字串參數之 CreateObjectSet<TEntity>() 方法的多載。�無法判斷指定之實體型別 '{0}' 的 EntitySet,因為 EntityContainer '{1}' 中為這個型別定義一個以上的 EntitySet。如果您想要使用 TEntity 型別和特定的 EntitySet,請使用接受字串參數之 CreateObjectSet<TEntity>() 方法的多載。v未針對指定的實體型別 '{0}' 定義任何 EntitySets。如果 '{0}' 是衍生型別,則改用基底型別。<找不到 EntityType '{0}' 的對應和中繼資料資訊。�在要重新整理的物件集合中,位於索引 {0} 位置的元素是處於已加入狀態。處於此狀態的物件無法重新整理。q在要重新整理的物件集合中,位於索引 {0} 位置的元素與已經在此集合中的物件重複。L在要重新整理的集合中,位於索引 {0} 位置的元素為 Null。�在要重新整理的集合中,位於索引 {0} 位置的元素有 Null EntityKey 屬性值,或是未附加到此 ObjectStateManager。SObjectContext 執行個體已被處置,無法再使用於需要連接的作業。/找不到具有指定 EntityKey 值的物件。�提供的 EntitySet 名稱必須以 EntityContainer 名稱限定,例如 'EntityContainerName.EntitySetName',或者必須設定 ObjectContext 的 DefaultContainerName 屬性。�無法完成此作業,因為找不到所需的中繼資料。請確認 ObjectContext 使用的連接是否已開啟,然後再嘗試此作業。DLoadProperty 的選擇器運算式必須是屬性的 MemberAccess。K重新整理嘗試已失敗,因為資料來源傳回未預期的實體。c'{0}' 資料行對應至多個屬性 '{1}'。請確認每個屬性都有個別的資料行存在。d參數集合中已經有名為 '{0}' 的參數。參數名稱在參數集合中必須是唯一的。T參數集合中已經有參數 '{0}'。參數在參數集合中必須是唯一的。1參數集合中找不到名為 '{0}' 的參數。�無法從參數集合加入或移除參數,而且在查詢經評估後或追蹤字串經擷取後,就無法清除參數集合。  v指定的參數名稱 '{0}' 無效。參數名稱必須以字母開頭,而且只能包含字母、數字和底線。�指定的參數型別 '{0}' 無效。僅支援純量型別,例如 System.Int32、System.Decimal、System.DateTime 和 System.Guid。3必須先指定連接,然後才能執行查詢。9ObjectQuery 執行個體的命令文字不可為空白。v指定的查詢名稱 '{0}' 無效。查詢名稱必須以字母開頭,而且只能包含字母、數字和底線。0您必須指定篩選結果用的有效述詞。3您必須指定群組結果用的有效索引鍵。'您必須指定有效的預測清單。[指定的 ObjectQuery 對此作業無效,因為它是與另一個 ObjectContext 關聯。i'{0}' 不是型別篩選作業的有效型別。型別篩選只在實體類型和複雜類型上有效。'您必須指定有效的略過計數。9您必須指定排序結果用的有效索引鍵清單。'您必須指定有效的結果計數。qLINQ to Entities 查詢不支援查詢產生器方法。如需詳細資訊,請參閱 Entity Framework 文件。�查詢的結果型別既不是 EntityType,也不是具有實體元素型別的 CollectionType。具有這兩者其中一種型別的查詢才能指定 Include 路徑。]指定的 Include 路徑無效。EntityType '{0}' 未宣告名稱為 '{1}' 的導覽屬性。B剖析 Include 路徑時發生錯誤。找到空白導覽屬性。路徑只包含空白字元。N無法判斷此查詢的結果型別,因為遺漏了所需的中繼資料。�投影中的集合屬於型別 '{0}'。對於要具體化為投影的集合,必須是型別 ICollection<T>、IList<T>、ISet<T> 或屬於實作 ICollection<T> 且具有無參數建構函式的具象型別。N無法在查詢結果中初始化陣列型別 '{0}'。請考慮改用 '{1}'。VObjectStateEntry 是索引鍵項目,而且無法存取它的目前值和原始值。QObjectStateEntry 是索引鍵項目。不可在索引鍵項目上呼叫 Delete。GObjectStateEntry 是索引鍵項目,而且無法修改它的狀態。P屬性 '{0}' 是此物件之索引鍵資訊的一部分,而且無法修改。 b此物件是處於已卸離或已刪除狀態。無法修改處於此狀態的 ObjectStateEntry。MObjectStateEntry 是關聯性項目。無法修改關聯性項目的狀態。\ObjectStateEntry 是關聯性項目。無法修改關聯性項目的目前值和原始值。A只能在屬性的目前值為 Null 時設定 EntityKey 屬性。v屬性 '{0}' 在複雜類型上沒有有效的實體對應。如需詳細資訊,請參閱 Entity Framework 文件。v屬性 '{0}' 在實體物件上沒有有效的實體對應。如需詳細資訊,請參閱 Entity Framework 文件。�無法追蹤變更,因為從上次呼叫 EntityMemberChanging 或 EntityComplexMemberChanging 之後,物件狀態在具有相同屬性名稱的相同變更追蹤器上已從 '{0}' 變更為 '{1}'。如果需要正確報告變更的相關資訊,請參閱 Entity Framework 文件。 �型別 '{0}' 的實體參考型別 '{1}' 的相同複雜物件一次以上。複雜物件不能由同樣的實體參考多次。f此 ObjectStateEntry 沒有目前值。處於已刪除或已卸離狀態的物件不可有目前值。�在具有相同屬性名稱的相同變更追蹤器上呼叫 EntityMemberChanged 或 EntityComplexMemberChanged 之前未先呼叫 EntityMemberChanging 或 EntityComplexMemberChanging。如果需要正確報告變更的相關資訊,請參閱 Entity Framework 文件。 c此物件是處於已卸離狀態。物件卸離後無法在 ObjectStateEntry 上執行此作業。c無法設定複雜屬性的值。複雜屬性必須設定為實作 IExtendedDataRecord 的物件。p無法將屬性 '{0}' 的原始值設定為 null,因為實體型別 '{2}' 上的 '{1}' 成員不可為 null。g此 ObjectStateEntry 沒有原始值。處於已加入或已卸離狀態的物件不可有原始值。 �無法對這個 ObjectStateEntry 執行個體傳回 RelationshipManager 物件。只有代表實體的 ObjectStateEntry 具有關聯的 RelationshipManager。L屬性 '{0}' 不是此 ObjectStateEntry 所參考物件上的有效屬性。S無法呼叫 {0} ,因為這個物件不是處於已修改或未變更的狀態。�無法設定屬性 '{0}' 的原始值,因為它是複雜屬性。如果先從實體的原始值取得複雜型別做為 OriginalValueRecord,則可以在型別上設定個別純量屬性。U無法設定屬性 '{0}' 的原始值,因為屬性是實體索引鍵的一部分。|型別 '{1}' 的實體上的導覽屬性 '{0}' 必須實作 IEnumerable,Entity Framework 才能追蹤集合中的變更。�AcceptChanges 無法繼續,因為此物件的 EntityKey 值不是 Null 或不是暫時索引鍵。當物件處於已加入狀態時修改 EntityKey 屬性就會發生這種情況。�如果來源或目標實體處於已加入狀態,則無法將關聯性的狀態變更為已加入或已卸離以外的狀態。�如果來源或目標實體處於已刪除狀態,則無法將關聯性的狀態變更為已刪除或已卸離以外的狀態。Q如果關聯性的其中一端為 KeyEntry,則無法變更關聯性的狀態。�AcceptChanges 無法繼續,因為此物件的索引鍵值與 ObjectStateManager 中的另一個物件衝突。請確認索引鍵值是唯一的,然後再呼叫 AcceptChanges。�無法為這個物件傳回 RelationshipManager。只能針對 ObjectStateManager 追蹤的物件,或實作 IEntityWithRelationships 的物件傳回 RelationshipManager。[對使用外部索引鍵值定義的關聯性,不支援 ChangeRelationshipState 方法。�無法變更物件狀態。這個例外狀況可能是一或多個主索引鍵屬性設定為 Null 所造成。未加入的物件不可具有 Null 主索引鍵值。如需詳細資訊,請參閱內部例外狀況。A偵測到對關聯性 '{1}' 的角色 '{0}' 有衝突的變更。=ObjectStateManager 中沒有處於已卸離狀態的物件。�ObjectStateManager 中已經有具有相同索引鍵的物件。現有物件是處於 {0} 狀態。必須是處於已加入狀態的物件才可以再次加入到 ObjectStateManager。�此物件無法加入到物件內容。此物件的 EntityKey 具有表示此物件已經參與另一關聯性的 ObjectStateEntry。�在 ObjectStateManager 中找不到其索引鍵和提供之物件的索引鍵相符的物件。請確認提供物件的索引鍵值,和必須套用變更的物件的索引鍵值相符。.EntityType '{0}' 不在 EntitySet '{1}' 中。B型別 '{0}' 的物件必須有非 Null 的對應 EntityKey 值。#此物件的 EntityKey 值無效。�屬於物件索引鍵的一個屬性值和儲存於 ObjectContext 中的對應屬性值不相符。如果屬於索引鍵的屬性傳回不一致或不正確的值,或者對屬於索引鍵的屬性做過變更後,未呼叫 DetectChanges,則可能發生這種情況。g無法附加物件,因為屬於 EntityKey 的一個屬性值和 EntityKey 中的對應值不相符。C提供的 EntityKey 在 ObjectStateManager 中沒有對應項目。RObjectStateManager 未包含具有 '{0}' 型別物件參考的 ObjectStateEntry。�ObjectStateManager 中已經有具有相同索引鍵的物件。ObjectStateManager 無法追蹤多個具有相同索引鍵的物件。e繫結到抽象型別的集合時不支援 IBindingList.AddNew 方法。請改用 IList.Add 方法。<無法取代此資料繫結介面上的物件或資料列。_無法將物件加入到繫結的集合。無法判斷 '{0}' 型別物件的特定 EntitySet。B要加入之物件的型別與此繫結集合的型別不相容。3此資料繫結介面不支援索引插入作業。3無法在唯讀資料繫結介面上執行更新。ROFTYPE 集合元素型別必須參考 EntityType。傳遞的型別是 {0} '{1}'。SOFTYPE 集合元素型別必須參考名義型別。傳遞的型別是 {0} '{1}'。@OFTYPE ONLY 型別引數無效,因為 '{0}' 是抽象型別。2不支援實體連接; 僅支援儲存體連接。6無法執行此作業,因為此集合是唯讀的。6無法執行此作業,因為此項目是唯讀的。6ORDER BY 排序索引鍵型別必須可比較順序。a函式中的每一個參數名稱都必須是唯一的。參數名稱 '{0}' 已經定義過了。.不支援型別 '{1}' 的命令參數 '{0}'。命令參數 '{0}' 未定義。8內部錯誤: 剖析器發現錯誤,無法再繼續。&內部錯誤: 輸入資料流無效。T{0} 運算式型別必須可提升為 Edm.Int64 型別。傳遞的型別是 '{1}'。4{0} 運算式必須是命令參數或整數常值。+{0} 運算式值必須大於或等於零。�{1} 的 {0} 運算元無效,因為其型別 '{2}' 無法針對相等進行比較。只有基本、列舉、實體、資料列和參考型別可以針對相等進行比較。-左運算式必須是數字或字串型別。-右運算式必須是數字或字串型別。�型別 '{1}' 的集合導覽屬性 '{0}' 傳回 null。對於要自動初始化的集合,必須是型別 ICollection<T>、IList<T>、ISet<T> 或屬於實作 ICollection<T> 且具有無參數建構函式的具象型別。h無法在實體型別 {1} 上設定欄位/屬性 {0}。請參閱 InnerException 以取得詳細資料。8型別 '{0}' 的導覽屬性不是 '{1}' 的單實作。6整數位數 '{0}' 必須大於小數位數 '{1}'。  ]有效位數 '{0}' 無效。'{3}' 型別的有效位數必須介於 '{1}' 到 '{2}' 之間。a型別中的每一個屬性名稱都必須是唯一的。屬性名稱 '{0}' 已經定義過了。4{0} 屬性無效。已為此屬性定義過型別。'提供者未建立 CommandDefinition。6此提供者未傳回 ProviderManifest 執行個體。5此提供者未傳回 ProviderManifestToken 字串。7此提供者未傳回 DbSpatialServices 執行個體。$提供者不支援 CreateDatabase。*提供者不支援 CreateDatabaseScript。$提供者不支援 DatabaseExists。$提供者不支援 DeleteDatabase。+此基礎提供者不支援 '{0}' 型別。>嘗試逸出指定的字串時,基礎提供者傳回 null。-無法取得儲存體提供者資訊清單。n這個提供者不支援指定的命令樹。應該使用 EntityClient 由這個命令樹建立命令定義。9此提供者從 CreateCommandDefinition 傳回了 Null。7此提供者對 informationType '{0}' 傳回了 Null。�由於基礎提供者已將 DbProviderManifest.SupportsEscapingLikeArgument 覆寫為傳回 true,因此,提供者也必須實作 DbProviderManifest.EscapeLikeArgument 方法。<REF 引數必須是 EntityType。傳遞的型別是 '{0}'。FREF 引數必須指定 EntityType。型別規格 '{0}' 代表 '{1}'。NReferenceType 元素只能參考 EntityType。'{0}' 未宣告為 EntityType。R相關的端點運算式型別 '{0}' 必須可提升為 'to' 端點型別 '{1}'。0相關的端點運算式必須是參考型別。<無法在固定大小的型別 '{0}' Array中加入項目。�'{0}' 角色中的物件無法自動加入到此內容,因為它是使用 NoTracking 合併選項擷取的。請將實體明確附加到 ObjectContext 然後再定義關聯性。i無法定義這兩個物件之間的關聯性,因為它們是附加到不同的 ObjectContext 物件。:無法由固定大小的型別 '{0}' Array 移除項目。�無法序列化 {0} 物件。當 RelationshipManager 屬於不會實作 IEntityWithRelationships 的實體物件時,無法序列化這種型別的物件。|加入的關聯性和現有的關聯性衝突。請考慮刪除先前的關聯性,並呼叫 ObjectContext.DetectChanges。s無法定義關聯性,因為 EntitySet 名稱 '{0}.{1}' 對關聯集名稱 '{3}.{4}' 中的角色 '{2}' 無效。k無法針對包含 '{1}' 型別物件的 EntityCollection 加入、附加或移除 '{0}' 型別的物件。e無法針對型別 '{1}' 的 EntityReference 的 Value 屬性設定或移除型別 '{0}' 的物件。\要附加到來源物件的物件,並非附加到來源物件的同一個 ObjectContext。l要附加的物件是處於已加入或已刪除狀態。無法對處於此狀態的物件建立關聯性。�在所指定物件集合中位於索引 {0} 位置的物件,並非附加到此 EntityCollection 之來源物件的同一個 ObjectContext。F在所指定物件集合中位於索引 {0} 位置的物件為 Null。�在所指定物件集合中位於索引 {0} 位置的物件是處於已加入或已刪除狀態。無法對處於此狀態的物件建立關聯性。�與此相關端點關聯的來源物件如果不是處於已加入、已刪除或已卸離狀態,附加就不是有效的作業。使用 NoTracking 合併選項載入的物件永遠是卸離。Y在型別 '{1}' 的實體的導覽屬性 '{0}' 中,偵測到無效的關聯性修復。h使用 NoTracking 合併選項傳回物件時,如果 IsLoaded 屬性為 true,就不可呼叫 Load。使用 NoTracking 合併選項傳回物件時,只能在 EntityCollection 或 EntityReference 不包含物件時呼叫 Load。�相關物件不可使用 {0} 合併選項載入。如果一個物件是使用 NoTracking 合併選項擷取的,而另一個物件是使用其他合併選項擷取的,這種情況就無法建立關聯性。�當此 RelatedEnd 的擁有者為 Null 時,不許所要求的作業。以預設建構函式建立的 RelatedEnd 物件,只能在序列化的時候用來當做容器。<無法載入 {0},因為它並未附加到 ObjectContext。6此關聯性中至少有一個相關端點找不到。�此物件無法加入到 EntityCollection 或 EntityReference。附加到 ObjectContext 的物件不可加入到不是與來源物件關聯的 EntityCollection 或 EntityReference。 B不允許加入具有處於 Deleted 狀態的實體的關聯性。�無法從 EntityCollection 或 EntityReference 移除此物件。無法從不是與來源物件關聯的 EntityCollection 或 EntityReference 移除附加到 ObjectContext 的物件。8此關聯性的 'from' 端點在此顯得模稜兩可。�這個 RelationshipManager 無法傳回 RelatedEnd。只有受到 ObjectStateManager 追蹤或實作 IEntityWithRelationships 的物件,可以由 RelationshipManager 傳回 RelatedEnd。�強制執行參考完整性限制式時偵測到循環關聯性路徑。無法在循環關聯性上強制執行參考完整性。&EntityCollection 已經初始化。{0}y只能在物件圖形還原序列化期間呼叫 InitializeRelatedCollection 方法來初始化新的 EntityCollection。無法初始化 EntityCollection,因為 EntityCollection 所屬物件的關聯性管理員已經附加到 ObjectContext。{0}�發生參考完整性限制式違規: 定義參考條件約束的屬性值在關聯性中的主體物件和相依物件之間不一致。mInitializeRelatedReference 只應在實體物件還原序列化期間用來初始化新的 EntityReference。k由實作 IEntityWithRelationships 之物件提供的關聯性管理員不是預期的關聯性管理員。�關聯性 '{0}' 未包含角色 '{1}'。請確認定義此關聯性的 EdmRelationshipAttribute 是否有正確的角色名稱。如需詳細資訊,請參閱 Entity Framework 文件。%找不到指定的導覽屬性 {0}。�關聯性管理員是以 '{0}' 型別的擁有者定義的,與所指定關聯性 '{3}' 中來源角色 '{2}' 的型別 '{1}' 不相容。(EntityReference 已經初始化了。{0}{EntityReference 無法初始化,因為此實體參考所屬物件的關聯性管理員已經附加到 ObjectContext。{0}�無法擷取關聯性 '{0}' 的中繼資料資訊。如果使用對應屬性,請確認已在組件中定義關聯性的 EdmRelationshipAttribute。使用以慣例為基礎的對應時,無法判斷已卸離實體間的關聯性的中繼資料資訊。t發生參考完整性限制式違規: 無法從相關實體擷取定義參考完整性限制式的所有屬性值。�無法完成所要求的作業,因為實作 IEntityWithRelationships 的物件從 RelationshipManager 屬性傳回了 Null 值。�無法完成此作業,因為關聯性管理員所屬的物件是在關聯性管理員具現化之前附加到 ObjectContext。�EntityType '{1}' 中 NavigationProperty '{0}' 上的 EdmRelationshipNavigationPropertyAttribute 有無效的 RelationshipName '{2}'。請確認 RelationshipName 是否有效。(目標端點 '{0}' 必須是唯一的。6此關聯性的 'to' 端點在此顯得模稜兩可。1指定的型別 '{0}' 必須是關聯性型別。4對 '{1}' 型別的屬性必須指定 Facet '{0}'。8查詢產生的運算式不可為不具型別的 NULL。6設定運算式的右引數必須是 CollectionType。�關聯性 '{0}' 的屬性包含的 Role '{1}' 具有對此關聯性 End 無效的型別 '{2}'。請將 End Role 變更為 EntityType。:ROW 建構函式不能有不具型別的 NULL 資料行。2RowType 元素必須有至少一個屬性元素。�關聯性 '{0}' 的 EdmRelationshipAttribute 上的兩個 Ends 有相同的 Role 名稱 '{1}'。關聯性類型的端點必須有不同的 Role 名稱。�在 relationship '{0}' 中,參考條件約束的 Principal 和 Dependent Role 參考了此 relationship 類型中的同一個 Role。]小數位數 '{0}' 無效。'{3}' 型別的小數位數必須介於 '{1}' 到 '{2}' 之間。F預測運算式型別配合 DISTINCT 使用時必須同樣可比較。�在 EntityContainer '{4}' 中,'{1}' and '{2}' AssociationSet 中的 Role '{0}' 參考了同一個 EntitySet '{3}'。請確認是否有多個 AssociationSet 參考同一個 AssociationType;端點不可參考同一個 EntitySet。K關聯性來源型別 '{0}' 必須可提升為 'from' 端點型別 '{1}'。<檔案不明>�目前,只有在具有 UseStrongSpatialTypes 附註的 CSDL 檔案中使用,而且其根結構描述元素的值為 false 時,才支援空間型別。=指定的 DbGeography 值與此空間服務實作不相容。<指定的 DbGeometry 值與此空間服務實作不相容。9指定的提供者值與此空間服務實作不相容。V指定的 DbWellKnownGeographyValue 不包含 Well-Known Text 或 Well-Known Binary。U指定的 DbWellKnownGeometryValue 不包含 Well-Known Text 或 Well-Known Binary。WWellKnownValue 屬性是要支援序列化和還原序列化,不應該直接設定。{執行這項查詢需要有 APPLY 運算子,而 SQL Server 2005 之前的 SQL Server 版本皆不支援這個運算子。KSQL Server 2008 之前的 SQL Server 版本皆不支援 EDM 函式 '{0}'。;'{0}.{1}' 函式的 DATEPART 引數必須是常值字串。K對 '{1}.{2}' 函式中的 DATEPART 引數而言,'{0}' 不是有效值。i列於提供者資訊清單中且具有 NiladicFunction='true' 屬性的函式,不能有參數宣告。�SQL Server 2005 之前的 SQL Server 版本不支援參數在查詢中做為 TOP 次子句和 LIMIT 次子句的引數,或在命令樹中做為 LimitExpression 的引數。�SQL Server 2005 之前的 SQL Server 版本不支援參數在查詢中做為 SKIP 次子句的引數,或在命令樹中做為 SkipExpression 的引數。k在 SQL Server 2008 之前的 SQL Server 版本中,沒有對應至 EDM 型別 '{0}' 的存放區型別。BSQL Server 不支援具有 NaN 值的 {0} 型別常數運算式。SSQL Server 不支援具有 {1}.NegativeInfinity 值的 {0} 型別常數運算式。SSQL Server 不支援具有 {1}.PositiveInfinity 值的 {0} 型別常數運算式。�這個作業需要 'master' 資料庫的連接。無法建立 'master' 資料庫的連接,因為原始資料庫連接已經開啟,而且認證已自連接字串中移除。請提供未開啟的連接。M無法刪除資料庫。沒有資料庫對應至指定的 AttachDBFilename。�無法開啟與指定資料庫的連線。請參閱 InnerException 取得詳細資訊。但是有個資料庫註冊的伺服器與指定 AttachDbFilename 相對應。Y無法完成作業。提供的 SqlConnection 未指定初始目錄或 AttachDBFilename。C指定的 DbGeography 值無法轉換成 SQL Server 相容的值。B指定的 DbGeometry 值無法轉換成 SQL Server 相容的值。�資料庫建立已成功,但是資料庫物件的建立失敗。卸除資料庫的後續嘗試也失敗。請參閱 InnerException 取得詳細資訊。1如需詳細資訊,請參閱 InnerExceptions。G必須是一個地理位置的值,找到的是型別為 {0} 的值。8必須是幾何的值,找到的是型別 {0} 的值。j您只能從 SqlDataReader 型別的讀取器產生空間讀取器。已提供的讀取器型別為 {0}。G只有 SQL Server 2008 或更新版本才支援空間型別和函式。�空間型別和函式不適用於此提供者,因為找不到版本 10 或更新版本的組件 'Microsoft.SqlServer.Types'。 X指定的提供者值與此空間服務實作不相容。必要的值為 '{0}' 型別。z無法從指定的 DbGeography 值中擷取空間參考系統識別碼 (Spatial Reference System Identifier,SRID) 值。N指定的 DbGeography 值並未提供 Well-Known Binary 或 Well-Known Text。y無法從指定的 DbGeometry 值中擷取空間參考系統識別碼 (Spatial Reference System Identifier,SRID) 值。M指定的 DbGeometry 值並未提供 Well-Known Binary 或 Well-Known Text。5內部錯誤: 查詢剖析器中發生堆疊溢位。�此對應結構描述中指定的儲存體 EntityContainer 名稱 '{0}' 與此概念模型中先前在 EntityContainer '{2}' 對應結構描述中指定的儲存體 EntityContainer 名稱 '{1}' 不符。請確認您是否只對每一個 EntityContainer 指定一個對應;如果要指定部分對應,請將它們對應到同一個儲存體 EntityContainer。<引數 '{0}' 無效。至少要提供一個 .ssdl 成品。 s命名空間 '{0}' 是系統命名空間,不可由其他結構描述使用。請選擇其他命名空間名稱。W存放區定義函式傳回之資料列型別的所有屬性都必須是純量屬性。�EntitySet '{0}' 同時具有 Table 或 Schema 屬性及 DefiningQuery 元素。EntitySet 上的 Table 和 Schema 屬性會與 DefiningQuery 元素互斥。只可使用 Table 和 Schema 屬性或 DefiningQuery 元素其中一種。�在 EntityType '{1}' 中,NavigationProperty '{0}' 上 RelationshipType '{3}' 的 EdmRelationshipNavigationPropertyAttribute 有無效的 TargetRole 名稱 '{2}'。請確認 TargetRole 名稱是否為有效名稱。 3目前的結構描述元素不支援文字 ({0})。EAssociation {0} 無效。Association 只能包含兩個 End 元素。K在同一個查詢運算式中不可同時使用 TOP 和 LIMIT 次子句。d在同一個查詢運算式中不可同時使用 TOP 和 SKIP 次子句。請用 LIMIT 代替 TOP。!'{0}' 小於支援的最小值。J型別規格的引數數目不正確。'{0}' 型別具有 {1} 個參數。!'{0}' 大於支援的最大值。E型別引數不是有效的常數常值,或超出預期的範圍。*型別規格引數必須是常數常值。E型別必須透過屬性或子元素宣告,但不能同時宣告。'{0}' 不支援 '{1}' 規格。'{0}' 不支援型別規格。b{0} 成員 '{1}' 和 {2} 成員 '{3}' 對此作業不相容,因為它們不是同類的型別。�在參考條件約束中,Dependent Role 中所有屬性的型別必須與 Principal Role 中的對應屬性型別相同。實體 '{1}' 上屬性 '{0}' 的型別與參考條件約束 '{4}' 中實體 '{3}' 上的屬性 '{2}' 型別不相符。元素遺漏型別宣告。K'{0}' 型別引數必須指定 EntityType。傳遞的型別是 {1} '{2}'。F此運算式型別必須是 EntityType、ComplexType 或 ReferenceTypeO'{0}' 型別引數必須指定名義型別,但傳遞的型別是 {1} '{2}'。g結構描述中的每一個型別名稱都必須是唯一的。型別名稱 '{0}' 已經定義過了。l找不到型別 '{0}'。請確認是否已載入所需的結構描述,及命名空間是否正確匯入。b指定的型別 '{0}' 不是宣告的型別 '{1}',或 AssociationSet '{2}' 之型別的衍生。]指定的型別 '{0}' 不是宣告的型別 '{1}',或 EntitySet '{2}' 之型別的衍生。K無法判斷應用程式內容。無法解析 ASP.NET 應用程式路徑。P無法判斷儲存體版本; 必須有有效的儲存體連接或版本提示。+在組件 '{1}' 中找不到型別 '{0}'。*無法載入指定的中繼資料資源。無法解析組件 '{0}'。BURI {0} 無法接受。URI 必須為絕對或指定某個檔案。~命名空間 {0} 中的元素 {1} 不是根元素所預期。在下列其中一個命名空間中的預期結構描述: {2}。g元素 {1} 不是根元素所預期。在下列其中一個命名空間中的預期結構描述: {2}。=在索引 {1} 的位置發現非預期型別 {0} 的元素。)無法辨認的結構描述屬性: {0}。)無法辨認的結構描述元素: {0}。#未預期的 XmlNode 型別: {0}。B內部錯誤: Ast 運算式不是有效的命令運算式型別。0內部錯誤: Ast 運算式有未知的型別。;內部錯誤: 指定的內建 Ast 運算式型別不明。 ;內部錯誤: 運算式解析具有未知的類別 '{0}'。j無法判斷 '{0}' 關聯性的主要端點。可能有多個加入的實體有相同的主要索引鍵。�在一個以上的位置產生了在各實體或關聯間共用的值。請檢查對應是否將一個 EntityKey 分割成多個由存放區產生的資料行。<偵測到具有參考完整性限制式的循環關聯性。�存放區更新、插入或刪除陳述式影響到非預期數目的資料列 ({0})。這些實體載入之後可能被修改或刪除了。請重新整理 ObjectStateManager 實體。�無法判斷相依作業的有效順序。可能因為外部索引鍵限制式、模型需求或存放區產生的值而存在相依性。l偵測到衝突的變更。嘗試以相同的索引鍵插入多個實體時,可能會發生這種情況。Z從 ObjectStateEntry 擷取值時發生錯誤。詳細資料請參閱內部例外狀況。H更新實體時發生錯誤。詳細資訊請參閱內部例外狀況。bReferentialConstraint 中的相依屬性對應到存放區產生的資料行。資料行: '{0}'。O無法插入或更新實體,因為 '{0}' 關聯性的主要端點已刪除。m遇到無效的資料。遺漏必要的關聯性。請檢查 StateEntries,判斷限制式違規的來源。,找不到 EntitySet '{0}' 的更新對應。u如果要更新 AssociationSet '{0}',ObjectStateManager 中必須有來自 EntitySet '{1}' 的可用對應實體。?在對應檔案中找不到 {1} '{2}' 的 {0}FunctionMapping。�'{0}' AssociationSet 的一個關聯性處於 '{1}' 狀態。對於多重性限制式,對應的 '{2}' 也必須處於 '{1}' 狀態。�EntitySet '{0}' 的函式對應必須載入 AssociationSet '{1}' 中的對應 Associations。請載入此 AssociationSet,然後再將變更儲存到此 EntitySet。B函式對應指定了結果集未包含的結果資料行 '{0}'。Q不支援以 '{0}' 模式修改資料行。資料行: '{1}'。資料表: '{2}'。�不支援修改主索引鍵資料行之屬性 '{0}' 設定成 '{1}' 的資料表。請改用 '{2}' 模式。索引鍵資料行: '{3}'。資料表: '{4}'。�僅針對識別資料行支援存放區產生的索引鍵。索引鍵資料行 '{0}' 型別為 '{1}',不是識別資料行的有效型別。�僅針對識別資料行支援存放區產生的索引鍵。資料表 '{0}' 中有一個以上的索引鍵資料行標記為由伺服器產生。S對型別 '{1}' 不可為 Null 的成員 '{0}' 傳回 Null 的存放區產生值。<Null 值使用於不可為 Null 的成員。成員: '{0}'。T參考完整性限制式違規。Dependent Role 有多個具有不同值的主體。x'{0}' 中的實體參與了 '{1}' 關聯性。找到 '{2}' 相關的 '{3}'。應該是介於 {4} 和 {5} '{3}' 之間。a'{0}' 中的實體參與了 '{1}' 關聯性。找到 {2} 相關的 '{3}'。應該是 {4} '{3}'。�對於從 End '{3}' 到 End '{4}' 之執行個體的 '{2}' 關聯性,'{0}' 關聯性至多可處於 '{1}' 狀態。找到 '{5}' 執行個體。m型別為 '{0}' 的存放區產生值無法轉換成型別 '{3}' 的成員 '{2}' 所需的型別 '{1}' 值。�無法更新 EntitySet '{0}',因為它有 DefiningQuery,但是在 <{2}> 元素中沒有 <{1}> 元素來支援目前的作業。O無法判斷受影響的資料列。參數 '{0}' 的值無法轉換成 '{1}'。�內部錯誤。使用了不支援的型別 ({0}) 當做引數來轉型更新對應檢視中的運算式。此引數必須是純量。`內部錯誤。({1}) 造訪者在更新對應檢視中遇到不支援的運算式種類 ({0})。z內部錯誤。EntitySet ({0}) 有不支援的型別 ({1})。此更新管線只能處理 EntitySets 和 AssociationSets。|內部錯誤。更新對應檢視 ({0}) 中有不支援的聯結型別。僅支援二進位內部聯結或左外部聯結。y內部錯誤。不支援的預測運算式型別 ({0})。更新對應檢視中僅支援 DBNewInstanceExpression 預測。R實體用戶端的 MetadataWorkspace 與狀態管理員參考的工作區不同。3BaseType 中已經定義了相同名稱的成員。0CollectionType 有 Null 型別的使用情況。*CollectionType 物件沒有基底類型。項目有空白識別。此 Facet 沒有名稱。C此 Facet 物件對 FacetType 有 Null。Null 對此屬性無效。B此項目屬性對 TypeUsage 有 Null。Null 對此屬性無效。此成員沒有名稱。@此成員對 DeclaringType 有 Null。Null 對此屬性無效。B此成員對 MemberTypeUsage 有 Null。Null 對此屬性無效。$此中繼資料屬性沒有名稱。�此型別 '{0}' 沒有任何索引鍵成員。RelationshipType 或 EntityType 必須有索引鍵成員或具有索引鍵成員的 BaseType。�在型別 '{1}' 上,EntityKeyProperty 和 IsNullable 在屬性 '{0}' 的 EdmScalarPropertyAttribute 中不可同時為 true。此索引鍵包含的屬性不可為 Null。�型別 '{1}' 上的屬性 '{0}' 是用 EdmComplexPropertyAttribute 賦予屬性,但是傳回了型別 '{2}',這不是可辨識的 ComplexType。�將 CLR 型別對應至 EDM 型別模稜兩可,因為有多個 CLR 型別符合 EDM 型別 '{0}'。先前找到的 CLR 型別為 '{1}',新找到的 CLR 型別為 '{2}'。�無法載入組件 '{0}' 中的型別,因為組件包含 EdmSchemaAttribute,而且型別結尾是以名稱載入。不允許同時以名稱和屬性載入。G型別 '{1}' 的基底型別 '{0}' 不符合模型基底型別 '{2}'。@未載入型別 '{0}',因為基底型別 '{1}' 無法使用。E針對概念型別 '{0}',找不到任何對應的物件層型別。1型別 '{1}' 上不存在必要的屬性 '{0}'。�在 EdmItemCollection 中,有多個名稱為 '{0}' 的型別存在於不同的命名空間中。以慣例為基礎的對應必須有唯一的名稱,不論存在於 EdmItemCollection 中的哪個命名空間。KCLR 列舉型別的基礎型別不符合 EDM 列舉型別的基礎型別。\型別 '{1}' 上的屬性 '{0}' 具有無法對應至 PrimitiveType 的屬性型別 '{2}'。<未載入關聯性 '{0}',因為無法使用型別 '{1}'。�物件層中定義的型別 '{0}' 與概念模型中定義的型別 '{1}' 不相容。列舉型別無法對應至非列舉型別。�無法使用組件 '{2}' 中的 '{1}' 型別屬性 '{0}' 做為純量屬性,因為其中並未同時存在 getter 和 setter。�無法依照慣例將 EntityType 或 ComplexType '{0}' 對應至值型別 '{1}'。不允許將值型別對應至 EntityTypes 或 ComplexTypes。�型別 '{1}' 上的屬性 '{0}' 有傳回型別 '{2}',這不是可辨識的 EntityType 或 EntityType 執行個體的列舉型別。�型別 '{1}' 上的屬性 '{0}' 是用 EdmScalarPropertyAttribute 賦予屬性,但是傳回了不是 PrimitiveType 或可辨識之列舉型別的型別 '{2}'。<RefType 對 EntityType 有 Null。Null 對此屬性無效。$參考型別不可有基底類型。型別沒有名稱。型別沒有命名空間。F此型別使用物件對 EdmType 有 Null。Null 對此屬性無效。7型別 '{0}' 不是列舉型別的支援基礎型別。不了解 {1} 值 ({0})。AND �就 Association End Member {0} 的基數而言,它應該要對應至資料表 {1} 的索引鍵資料行。請修正對應,或變更這個端點的多重性。U必須對 Relationship {2} 中 End {1} 的所有索引鍵屬性 ({0}) 指定對應。1{0} 在 AssociationSet '{2}' 中扮演 Role '{1}'7{0} 在 AssociationSet '{2}' 中不是扮演 Role '{1}'{0} 中可能有資料遺失。D資料表 {0} 中可能有資料遺失或索引鍵限制式違規。;不充分的對應: {1} 個中可能有 {0} 個未對應。/未對 {1} {2} 中的屬性 {0} 指定對應。3必須對 {0} {1} 中的所有型別指定對應。, Z不可在 EntitySet {2} 的衍生類別 {1} 中定義新的並行語彙基元成員 {0}。?EntitySet {1} 中的並行語彙基元 [{0}] 必須有條件。N資料表 {0} 中的每一個下列資料行都對應到多個概念端屬性:{0} 是對應到 <{1}>實體實體F必須對 EntitySet {1} 的所有索引鍵屬性 ({0}) 指定對應。{0} 是在 '{1}' EntitySet 中{0} 不在 '{1}' EntitySet 中錯誤-對應片段中從第 {0} 行開始有問題:-對應片段中從第 {0} 行開始有問題:集合M外部索引鍵限制式 '{0}' 從資料表 {1} ({2}) 到資料表 {3} ({4}):�複合索引鍵資料行對應不正確。資料表 {2} 中的 {0} 資料行 ({1}) 是對應到 {4} 中的屬性 ({3}),而資料表 {6} 中的資料行 ({5}) 是對應到 {8} 中的屬性 ({7})。經過對應的資料行順序不會保留。h{0} 是對應到 AssociationSet {1} - 如果要讓此對應正確,{2} 的多重性下限必須是 1。�{0}: 不充分的對應: 外部索引鍵必須對應到概念端上外部索引鍵關聯中,某些參與的 AssociationSet 或 EntitySets。>遺漏資料表對應: {0} 未對資料表 {1} 指定對應。x'{0}' 外部索引鍵未在此模型中強制執行。必須建立關聯或繼承關係才能強制執行此限制式。�{0} 資料表 {1} 的資料行是對應到 AssociationSet {2} 的 End {3},但是資料表 {4} 的索引鍵資料行不是對應到與此 End 對應的 EntitySet {5} 的索引鍵。p{0} 是對應到 AssociationSet  {1} - 如果要讓此對應正確,端點 {2} 的多重性上限必須是 1。sEntityContainer '{0}' 的對應和中繼資料資訊與用來建立預先產生之檢視的資訊已不再相符。5不允許此片段中成員 {0} 上指定的條件。p至少要有一個 AssociationSet {0} 的索引鍵屬性對應到資料表 {2} 的所有索引鍵屬性 ({1})。nEntitySet {1} 的所有索引鍵屬性 ({0}) 都必須對應到資料表 {3} 的所有索引鍵屬性 ({2})。�資料表 {0} 的索引鍵 ({2}) 可能發生執行階段違規: 資料行 ({1}) 對應到概念端上 EntitySet {3} 的屬性 ({4}),但這些屬性並非構成 EntitySet 的索引鍵屬性 ({5})。;未對下列 EntitySet/AssociationSet 指定對應 - {0}。Z未對 EntityContainer {0} 中 EntitySet 和 AssociationSet 的執行個體指定對應。'未對下列型別指定對應 - {0}。[{0}] 以外的值V資料表 {0} 的資料行 {1} 必須對應: 它沒有預設值而且不可為 Null。d資料行 {0} 沒有預設值而且不可為 Null。必須有資料行值才能儲存實體資料。L資料行 [{0}] 在兩個片段中同時對應至不同的概念端屬性。NOT_NULL9具有 'IsNull=false' 條件的屬性 {0} 必須對應。NULL{0} ={1}{0} 不可為 Null{0} 不等於 {1}{0} 不是 {1} 的其中一個{0} 是 {1} 的其中一個1,(例如,是下列型別的其中一個: {0}){0} 必須等於 {1}{0} 必須不可為 Null{0} 必須是 Null!{0} 必須是 {1} 的其中一個{0} 必須不等於 {1}${0} 必須不是 {1} 的其中一個E必須對資料表 {1} 的所有索引鍵屬性 ({0}) 指定對應。	資料列]對應不充分或衝突。在下列情況中,不能對 {0} 中的實體產生查詢檢視:D有下列狀況時將不會反覆存取索引鍵為 ({0}) 的實體:~對應了具有 'IsNull=False' 以外條件的條件成員 '{0}'。請移除 {0} 上的條件,或將它從對應中移除。)條件成員 {0} 有重複的條件值。{資料行 {0} 用於 Not Null 條件,但卻對應於可為 Null 的屬性 {1}。請考慮讓這個屬性不可為 Null。�實體對應到相同資料表中的不同資料列。請確定這兩個對應片段不會將索引鍵相同的兩個實體群組對應到兩個不同的資料列群組。�實體對應到相同資料表中的不同資料列。請確定這兩個對應片段不會將索引鍵重疊的兩個實體群組對應到兩個不同的資料列群組。�相同索引鍵的兩個實體對應到相同資料表中的不同資料列。請確定這兩個對應片段不會將索引鍵重疊的兩個實體群組對應到兩個不同的資料列群組。�索引鍵可能相同的兩個實體對應到相同資料表中的不同資料列。請確定這兩個對應片段不會將兩個不相關的 EntitySet 對應到兩個不同的資料列群組。�不同索引鍵的兩個實體對應到相同資料列。請確定這兩個對應片段不會將不同索引鍵的兩個實體群組對應到同一個資料列群組。�不同索引鍵的兩個實體對應到相同資料列。請確定這兩個對應片段不會將索引鍵重疊的兩個實體群組對應到同一個資料列群組。�不同索引鍵的兩個實體對應到相同資料列。請確定這兩個對應片段不會將索引鍵重疊的兩個 EntitySets 對應到同一個資料列群組。�索引鍵可能不同的兩個實體對應到相同資料列。請確定這兩個對應片段不會將兩個不相關的 EntitySets 對應到同一個資料列群組。�兩個可能具有不同索引鍵的實體對應至相同的資料列。請確認這兩個對應片段都將 AssociationSet 的兩個端點對應至對應的資料行。~EntityTypes {0} 對應至資料表 {1} 中相同的資料列。對應條件可以用於辨別這些型別對應的資料列。�不同索引鍵的兩個實體對應到相同資料列。請確定這兩個對應片段不會將不同索引鍵的兩個實體群組對應到兩個重疊的資料列群組。�不同主索引鍵的兩個資料列對應到相同實體。請確定這兩個對應片段不會將索引鍵相同的兩個實體群組對應到兩個重疊的資料列群組。�不同主索引鍵的兩個資料列對應到透過參考完整性限制式而具有相同索引鍵的兩個實體。請確定這兩個對應片段不會將索引鍵相同的兩個 EntitySets 對應到兩個重疊的資料列群組。�一個 EntitySet 中的實體對應到某資料列,但該資料列也對應到另一個索引鍵可能不同之 EntitySets 中的實體。請確定這兩個對應片段不會將兩個不相關的 EntitySet 對應到兩個重疊的資料列群組。_EntitySet '{1}' 和 '{2}' 都對應到資料表 '{0}'。它們的主索引鍵可能相衝突。�當 EntitySet '{0}' 和資料表 '{1}' 間有對應片段,且 MakeColumnsDistinct 屬性標記為 'true',則 '{0}' 和 '{1}' 之間不能有額外的對應片段。{無法聯結對應片段。請確認每個對應片段和其他應該聯結的對應片段之一,都有索引鍵對應。X資料表 {0} 中不可為 Null 的資料行 {1} 對應到可為 Null 的實體屬性。�無法驗證 EntitySet {0} 的對應。請檢查此對應限制式在有存放區端限制式的情況下是否可能。例如,在不可為 Null 的資料行對應中有 'IsNull=True' 條件,就是不可能的限制式。u確認 EntitySet {0} 的對應片段不會將主索引鍵相同的實體對應到相同資料表的不同資料列。/萬用字元組件列舉值函式傳回 Null。úg��z��z�th0��0����R�?�$NTH�I��_Xah3�$�1��,����x��DS��{	֒9u�]gH�T薮}h�K<K�u�5R(��S��+9I�ڽ�L���/�u�o��J���)BSJBv4.0.30319lx#~��#Stringst#US|#GUID�#Blob�%3m�
'/Xx�u���Ucr���d�,l D�u��B͔wm��@0�b}�TS�8xa�a�f�A����� 2�5H<Module>System.Data.Entity.resourceszh-HANTSystem.Data.Resources.SqlClient.SqlProviderServices.ProviderManifest.xmlSystem.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMappingVersion3.mslSystem.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMapping.mslSystem.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinitionVersion3_Sql8.ssdlSystem.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinition_Sql8.ssdlSystem.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinitionVersion3.ssdlSystem.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinition.ssdlSystem.Data.Resources.DbProviderServices.ConceptualSchemaDefinitionVersion3.csdlSystem.Data.Resources.DbProviderServices.ConceptualSchemaDefinition.csdlSystem.Data.Resources.ProviderServices.ProviderManifest.xsdSystem.Data.Resources.EntityStoreSchemaGenerator.xsdSystem.Data.Resources.SSDLSchema_3.xsdSystem.Data.Resources.SSDLSchema_2.xsdSystem.Data.Resources.SSDLSchema.xsdSystem.Data.Resources.CSDLSchema_3.xsdSystem.Data.Resources.CSDLSchema_2.xsdSystem.Data.Resources.CSDLSchema_1_1.xsdSystem.Data.Resources.CSDLSchema_1.xsdSystem.Data.Resources.CodeGenerationSchema.xsdSystem.Data.Resources.CSMSL_3.xsdSystem.Data.Resources.CSMSL_2.xsdSystem.Data.Resources.CSMSL_1.xsdSystem.Data.Resources.AnnotationSchema.xsdSystem.Data.Entity.zh-HANT.resourcesSystem.Data.Entity.resources.dll ��G�<-E�¬g)���p��� ��_CorDllMainmscoree.dll�% @�0�	HX4VS_VERSION_INFO��M#ovDVarFileInfo$Translation�pStringFileInfoL040404b04CommentsFlavor=RetailLCompanyNameMicrosoft CorporationFFileDescription.NET Framework` FileVersion4.8.9037.0 built by: NET481REL1b!InternalNameSystem.Data.Entity.resources.dllv)LegalCopyright� Microsoft Corporation.  W�\O
k@b	g�&N�OYuNR
k)R0j!OriginalFilenameSystem.Data.Entity.resources.dllTProductNameMicrosoft� .NET Framework:ProductVersion4.8.9037.04
PrivateBuildDDBLD297A��5�'0�'�	*�H��
��'�0�'}10
	`�He0\
+�7�N0L0
+�70	���010
	`�He ��B4��D�N�.�o��.��\�1�t+!`Q��
�0��0��3R�3����9�R0
	*�H��
0~10	UUS10U
Washington10URedmond10U
Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20110
210902183259Z
220901183259Z0t10	UUS10U
Washington10URedmond10U
Microsoft Corporation10UMicrosoft Corporation0�"0
	*�H��
�0�
���Ϗ���ۯ��#���4��Ԫ�B���Wq�%�:�/�LJȢ툱�'��_5@���⇾-����q���M �A��CPb�"{6���B5}oN/���E�sl�������4�/ĭ��N��]/�J|��D��]���
y�\���l�Y�z2��S�
n����Ⱦ`Du$��T�㋯�hFrGh��͑)�3��3N�0�m�l�8{c!S�P>r?~g+¼��G�|����t|@�IA*~�N��WM��~0�z0U%0
+�7L+0U5�ZA��k���N�|Fy�0PUI0G�E0C1)0'U Microsoft Operations Puerto Rico10U
230012+4675970U#0�Hnd�Pӂ�77"�m��u�0TUM0K0I�G�E�Chttp://www.microsoft.com/pkiops/crl/MicCodSigPCA2011_2011-07-08.crl0a+U0S0Q+0�Ehttp://www.microsoft.com/pkiops/certs/MicCodSigPCA2011_2011-07-08.crt0U�00
	*�H��
�I7�,dL@a��@��b��,g`_Z��GY1��)��R-tL�]A��Gҿ��)��\_팘K��	CG�K�
��#�=W��coɢN�dS��3�4ѧ��;�IS�8E�O�h�:����zQ�4��������0�Y �Ҳ�ٮ�v/.L�*��o1c�������Jg>�wQ����)�\��]L� އ��"j�����ʣ�yD��1�8/���&.�v�[K�X����&٦��b�n��wv&=��bj��uj�A�Z��Az�8`�+���3Y�����3�u�4k��¹f�eu8k�YӠ(���*��1+����8^������T\ڟ폪IN��KB�G�7q#�۬����܇�j3�����~�^2�
[>MX�����ډ[��%�$23�+=�F�%�R�2a�v/�U:�k��z���c'�t�����E��9!Dzd�vP�[���l�]rM�w2��8�6�O����."��y�<I�2��i0�z0�b�
a��0
	*�H��
0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1200U)Microsoft Root Certificate Authority 20110
110708205909Z
260708210909Z0~10	UUS10U
Washington10URedmond10U
Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20110�"0
	*�H��
�0�
���r.��n��M4��X!�B*k�ZP��8I���7k���8™��9�1BӉ
yd�~�`$l��I��h^�ߛS�
,ï٩+�z	�זY�`�fv�2R&/�PϳD�]��.u�h��m�:\��F��8d�nd5x��c-�@����
�\y�I)�
��w��=��+ZMV(�zr�:�I^���C���{�{��>��]�O��/Y�;-�3Xŷ>�2ӳ=����8~ҝ�,�NV�!5%�9ndS���#������_��R������!t%_(��'(8%�9J6�|���#��f�aj�(I�_��%]�!K>RĵW?$��z[/�#�p]QFw��Ἤ�_����UK�9��#I��D|E��rz�r�$߿F����Wۃ��MI0�����[���ݰf��{���K�I)�(��}g��bx_�/��W�\�w((��m�(�,�@7O��D��	L�ԥC/t��n�x X,]`��>O3�ڰ�ޞN�F�l���ֈ����0��0	+�70UHnd�Pӂ�77"�m��u�0	+�7
SubCA0U�0U�0�0U#0�r-:1�C�N���1�#�40ZUS0Q0O�M�K�Ihttp://crl.microsoft.com/pki/crl/products/MicRooCerAut2011_2011_03_22.crl0^+R0P0N+0�Bhttp://www.microsoft.com/pki/certs/MicRooCerAut2011_2011_03_22.crt0��U ��0��0��	+�7.0��0?+3http://www.microsoft.com/pkiops/docs/primarycps.htm0@+042 Legal_policy_statement. 0
	*�H��
�g򆥘�Ty.��tg"���c��B�}�y��e_.,>��r�m���?�
�;�G���i�c�"5��]e��}�FPU��|�K�<B�Rа�k�>.)��=�Եw�9��d�D=xz#�}��t����&F*Š�����h�h.��*?*kXIc	inZ�����F+�;н5�n%��'������(��M=����2���-�[��I9
�
�ƭ�����QEX82q'��'��,: i��Y�hno��t�@�*(>�?Mf��M��o}E�v�@*e��]Rb��c6��������'�ͥ���]cA�[��>w��u�aa������A�(��e/��\��֡F�Y�	KH���)ű��?Ew5�Ң��zz"�H���G#�����k�K���ux��7�yK�ֳ#hu������i;��0�L���umc�=ѝVNO��W"�x2!z�A
�?��̤]����WqVNHE�Bɛv[
�Hk�y���mmj�Rs
zP�1��0�~0��0~10	UUS10U
Washington10URedmond10U
Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20113R�3����9�R0
	`�He���0	*�H��
	1
+�70
+�710
+�70/	*�H��
	1" �?��L���#���*��G�X,��6���c�0B
+�71402��Microsoft��http://www.microsoft.com0
	*�H��
���<G�t)3Gg@0�,	*�X�r,��� v���THN��姘���*�!�[�d���2��ؿ&�?��p�z`�����Uء�T1�*�q��
};
"�z��`ie"z1��˭��(�=�P
���3��/	҅���Z�cbʵ��Ih�S�_nT��K��pKc�p���Iַ��Ud��5���w��ˡ{f�^[;/m`5�ꉯ�ٲ�=w��c�a��y'u9�Qy�~RN��N�D��'�!����.�硂0�
+�71��0��	*�H��
���0��10
	`�He0�U*�H��
	��D�@0�<
+�Y
010
	`�He "R�O��D	#��޴�ՠ��:�!�͔��b�+ׅ�20220625024431.084Z0��Ԥ��0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1)0'U Microsoft Operations Puerto Rico1&0$UThales TSS ESN:F87A-E374-D7B91%0#UMicrosoft Time-Stamp Service��_0�0���3��\�4���0
	*�H��
0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100
220302185137Z
230511185137Z0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1)0'U Microsoft Operations Puerto Rico1&0$UThales TSS ESN:F87A-E374-D7B91%0#UMicrosoft Time-Stamp Service0�"0
	*�H��
�0�
����!5�-�s�c�`�<B�)�he�m��S螮 ����i�{<�5)x�h�e���r��.*��v�9 <sD��>��y#'>K�?G}`kx����6+�:�}�F�R�t��3��"y>B��b��3m�Jb�]�t'�|�,JrOdk�2f�ɛt+cCwD|k1��N�6�54NO�)
i0�I *$�\�ʳ�J���R�GK
1����-���Ll͛F���C7$PԒ��ꁔ]
:�n0�i�jT�8���r��q�۱��>�Z6h~�H��=atwL��U6�%Iz���w�&���m�7����.�\^�L�8�Ո�O�C;���~��D�ŗ�x�W+Ȳ��rBxX��\���rC��s����~�,��h<[��`n�C�����M"��/H�Y�������e4�M7�T�*�(E�0��ɭ�b��0B�]����<�&v�5K��@8+X��45�E%���~&�L�y(�V�s���5W�
���xUa<����D6�s����b����3�5��60�20U�0o߿(`����t���d:aQ�0U#0���]^b]����e�S5�r0_UX0V0T�R�P�Nhttp://www.microsoft.com/pkiops/crl/Microsoft%20Time-Stamp%20PCA%202010(1).crl0l+`0^0\+0�Phttp://www.microsoft.com/pkiops/certs/Microsoft%20Time-Stamp%20PCA%202010(1).crt0U�00U%0
+0
	*�H��
�]���UD<�3!s�p�&j�cTR�B؇O�[���D5$ؚ��y������5U�ⵆP���Ū�ǁ�����V��I�:o��)6o���4������'?�Z�"f�5${�/��@gcLe�KF�Y��09�Y�T�>_ 7Zj�[�ؾ�v_��j��Ÿ���(`����LG��:mBmn�q;nR��T�m��ꠂ�d3uA�z�E�j���#a8��އΘ�+����+�w��ȹ���R�8B���[�	�J�kȦ�<�����s�u���'�o%7�@vE�b���9��v��y/��Z�~�ɧӤ3;�c�v˕������$�|���
=	�~M:ޓ���s)M��s��
Ɖ��)+#�[��X�.w�LH�X!B�
8ͺ}����>w7��Z2�)Sĩ�Vp7�$Ge�+#�Hq��%2�vC�0��X�gc���g6m@�kd�cRg!m�Jk�
���lb�aUjR?طmGC�x291�|I�0�q0�Y�3��k��I�0
	*�H��
0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100
210930182225Z
300930183225Z0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100�"0
	*�H��
�0�
���L�r!y���$y�Ղ��ҩlNu��5W�lJ�⽹>`3�\O�f��SqZ�~JZ��6g�F#���w2��`}jR�D���Fk��v��P�D�q\Q17�
8n����&S|9azĪ�ri����6�5&dژ;�{3��[~��R���b%�j�]�S���VM�ݼ��㑏�9,Q��pi
�6-p�1�5(�㴇$��ɏ~�T��U�mh;�F��z)7���E�Fn�2��0\O,�b�͹⍈䖬J��q�[g`���=� �s}A�Fu��_4���� }~�ٞE߶r/�}_��۪~6�6L�+n�Q���s�M7t�4���G��|?Lۯ^����s=CN�39L��Bh.�QF�ѽjZas�g�^�(v�3rק ��
�co�6d�[���!]_0t���عP��a�65�G������k�\RQ]�%��Pzl�r�Rą��<�7�?x�E���^ڏ�riƮ{��>j�.����0��0	+�70#	+�7*�R�dĚ���<F5)��/�0U��]^b]����e�S5�r0\U U0S0Q+�7L�}0A0?+3http://www.microsoft.com/pkiops/Docs/Repository.htm0U%0
+0	+�7
SubCA0U�0U�0�0U#0��Vˏ�\bh�=��[�Κ�0VUO0M0K�I�G�Ehttp://crl.microsoft.com/pki/crl/products/MicRooCerAut_2010-06-23.crl0Z+N0L0J+0�>http://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0
	*�H��
��U}�*��,g1$[�rK��o�\�>NGdx���=13�9��q6?�dl|�u9m�1��lѡ�"��fg:SMݘ��x�6.���V����i�	�{�jo�)�n�?Hu��m��m#T�xSu$W�ݟ�=��h�e��V����(U'�$�@���]='�@�8���)�ü�T�B�������j�BRu�6��as.,k{n?,	x鑲�[�I�t�쑀�=�J>f;O���2ٖ����t��Lro�u0�4�z�P�
X�@<�Tm�ctH,�NG-�q�d�$�smʎ	��WITd�s�[D�Z�k
��(�g($�8K�n�!TkjEG����^O���Lv�WT	�iD~|�als�
��Af=i��AI~~���;����>�1Q������{��p���(��6ںL���
�4�$5g+�
�挙��"��'B=%��tt[jў>�~�13}���{�8pDѐ�ȫ:�:b�pcSM��m��qj�U3X��pf��0�;0����Ԥ��0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1)0'U Microsoft Operations Puerto Rico1&0$UThales TSS ESN:F87A-E374-D7B91%0#UMicrosoft Time-Stamp Service�#
0+�����g���gr��O�Z㠁�0���~0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100
	*�H��
�`��0"20220625003625Z20220626003625Z0w0=
+�Y
1/0-0
�`��0
<�050
�a�I06
+�Y
1(0&0
+�Y
�
0� �
0��0
	*�H��
���ř�
��;,�x
�*`%�����{�6/}�-�;,o9�o1�ݙU���yC=����g��
#�ٍ���IW��3����+���z���#FLUY`�
��C.�f�*�RR�y�hL��Dj�1�
0�	0��0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20103��\�4���0
	`�He��J0	*�H��
	1
*�H��
	0/	*�H��
	1" @�H���N|F�s7�
2Kµ�k��Ǩ?zX�0��*�H��
	/1��0��0��0�� I(>���Z��Of�5<��:��4��nCH��Roh0��0���~0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20103��\�4���0" ~�cK��]�(gL0�kIj F��x���0
	*�H��
�^�{ڛ�E�Oݎ��Kߠ�©�Z����vSz�јI�vj�
�^��NS�y@R�,��C/C��X�p�s�5dȢh$�\׼cwm˒�9o��9�$ǐ�]P�M�	���[%h��zG.�$�O��!!�/+��F����z�F�(���Ā����fY����H��EdN8>�F���Vb��s�,�8c~���ET9=΃g�
� ���;��8�o�}�)*��
]k
o�f��k�cl���=��`қ-}�@�,.p7Y���J�˻�����@ �5�kĴ�\ҙ��▂�)�޶�	�����h��+��MF|9��i�Z�8S���YK�F	Zk��T0m��ٚ��#�U$:̎B6#�AF�©�'�&YH��T��h"R����}�3�(�U���i��dt�?WĺJY���SW�Q!ѠL�k�M�z��F�DF�t�K�D�����W�����\�0�[N,%!sU��,�kK�2I�8�rD