403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/Windows/Microsoft.NET/Framework/v4.0.30319/es/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/Windows/Microsoft.NET/Framework/v4.0.30319/es/System.Data.Entity.resources.dll
MZ����@���	�!�L�!This program cannot be run in DOS mode.

$PEL7t�b�!ZNy �@ �"�@��xW��d�'�  H.textTY Z `.rsrc��\@@.reloc�b@B0yH`q�	P �P�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_CollectionParameterElementIsNullQVADP_CollectionParameterElementIsNullOrEmpty�4ADP_ConnectionStringSyntax�(ADP_DataReaderClosed]@ADP_GetSchemaTableIsNotSupported�FADP_ImplicitlyClosedDataReaderError�2ADP_InternalProviderError�8ADP_InvalidBufferSizeOrIndex�@ADP_InvalidConnectionOptionValue:0ADP_InvalidDataDirectorya*ADP_InvalidDataLength�XADP_InvalidDataReaderFieldCountForScalarType�RADP_InvalidDataReaderMissingColumnForType<^ADP_InvalidDataReaderMissingDiscriminatorColumn�TADP_InvalidDataReaderUnableToDetermineType]jADP_InvalidDataReaderUnableToMaterializeNonScalarType�&ADP_InvalidDataType�BADP_InvalidDestinationBufferIndex�6ADP_InvalidEnumerationValueLADP_InvalidMultipartNameDelimiterUsageF(ADP_InvalidSizeValue�8ADP_InvalidSourceBufferIndex�>ADP_KeysRequiredForJoinOverNest&4ADP_KeysRequiredForNesting�.ADP_KeywordNotSupported�6ADP_MustUseSequentialAccess�.ADP_NestingNotSupportedH	ADP_NoData�	,ADP_NoQueryMappingView�	8ADP_NonSequentialChunkAccess
:ADP_NonSequentialColumnAccess�
LADP_ProviderDoesNotSupportCommandTrees=.ADP_UnknownDataTypeCode�(AliasNameAlreadyUsed�2AliasNameIsAlreadyDefined`AllArtifactsMustTargetSameProvider_InvariantNameb`AllArtifactsMustTargetSameProvider_ManifestToken�2AllElementsMustBeInSchemar
6AmbiguousEntityContainerEnd�
0AmbiguousFunctionAndType�4AmbiguousFunctionArguments2AmbiguousFunctionOverload�6AmbiguousMetadataMemberName!0ArgumentMustBeCSpaceType�0ArgumentMustBeOSpaceType:$ArgumentOutOfRangeoNArgumentOutOfRangeExpectedPostiveNumber�8ArgumentTypesAreIncompatible�ArrayTooSmallNAssemblyMissingFromAssembliesToConsider�(AtleastOneSSDLNeeded�&BadNamespaceOrAlias:HBadNavigationPropertyBadFromRoleTypei`BadNavigationPropertyRelationshipNotRelationship,RBadNavigationPropertyRolesCannotBeTheSamekDBadNavigationPropertyUndefinedRole�*BadParameterDirectionVBadParameterDirectionForComposableFunctions�(BadPrecisionAndScalebBBetweenLimitsCannotBeUntypedNulls�DBetweenLimitsTypesAreNotCompatible-NBetweenLimitsTypesAreNotOrderComparable�@BetweenValueIsNotOrderComparablehBothMinAndMaxValueMustBeSpecifiedForNonConstantFaceto:CalculatedEnumValueOutOfRange�>CannotCallNoncomposableFunction�6CannotConvertNumericLiteralJ2CannotCreateEmptyMultiset�6CannotCreateMultisetofNulls�:CannotInstantiateAbstractType%rCannotLoadDifferentVersionOfSchemaInTheSameItemCollection}BCannotResolveNameToTypeOrFunction�>CannotUseSystemNamespaceAsAlias*>CheckArgumentContainsNullFailed�DCodeGen_ConstructorNoParameterless�PCodeGen_PropertyDeclaringTypeIsValueType2CodeGen_PropertyIsIndexedC0CodeGen_PropertyIsStaticm0CodeGen_PropertyNoGetter�0CodeGen_PropertyNoSetter�DCodeGen_PropertyStrongNameIdentity�>CodeGen_PropertyUnsupportedForm+>CodeGen_PropertyUnsupportedTyperZCollections_CannotFillTryDifferentMergeOption�TCollections_ExpectedCollectionGotReference�DCollections_InvalidEntityStateLoad� HCollections_InvalidEntityStateSourceK!HCollections_NoRelationshipSetMatchedF"HCollections_UnableToMergeCollections�"dCommandTextFunctionsCannotDeclareStoreFunctionNameO#BCommandTextFunctionsNotComposable�#VCompiledELinq_UnsupportedNamedParameterType�#`CompiledELinq_UnsupportedNamedParameterUseAsType|$NCompiledELinq_UnsupportedParameterTypes%hComplexObject_ComplexChangeRequestedOnScalarPropertyz%dComplexObject_ComplexObjectAlreadyAttachedToParentt&\ComplexObject_NullableComplexTypesNotSupported�&TComplexTypeAsReturnTypeAndDefinedEntitySet '^ComplexTypeAsReturnTypeAndNestedComplexProperty�'nComposableFunctionOrFunctionImportMustDeclareReturnType9(2ConcatBuiltinNotSupported�(XConcurrencyRedefinedOnSubTypeOfEntitySetType)<ConstantFacetSpecifiedInSchema�)2CouldNotResolveIdentifier*:Cqt_Aggregate_InvalidFunction"+@Cqt_And_BooleanArgumentsRequiredW+@Cqt_Apply_DuplicateVariableNames�+^Cqt_Arithmetic_InvalidUnsignedTypeForUnaryMinus,@Cqt_Arithmetic_NumericCommonTypeI,<Cqt_Binary_CollectionsRequired�,<Cqt_Binding_CollectionRequired�,@Cqt_Binding_VariableNameNotValid3-4Cqt_Case_InvalidResultType�-8Cqt_Case_WhensMustEqualThens.(Cqt_Cast_InvalidCastN.@Cqt_CommandTree_InvalidDataSpace�.HCqt_CommandTree_InvalidParameterName�.BCqt_Comparison_ComparableRequired�.^Cqt_Constant_ClrEnumTypeDoesNotMatchEdmEnumType./@Cqt_Constant_InvalidConstantType�/0Cqt_Constant_InvalidType80@Cqt_Constant_InvalidValueForType�0,Cqt_Copier_EndNotFound�0DCqt_Copier_EntityContainerNotFound718Cqt_Copier_EntitySetNotFound�16Cqt_Copier_FunctionNotFound�1<Cqt_Copier_NavPropertyNotFound26Cqt_Copier_PropertyNotFoundj2.Cqt_Copier_TypeNotFound�2<Cqt_CrossJoin_AtLeastTwoInputs3HCqt_CrossJoin_DuplicateVariableNames=3*Cqt_DeRef_RefRequired4<Cqt_Distinct_InvalidCollectionV4dCqt_Element_InvalidArgumentForUnwrapSingleProperty�4BCqt_Exceptions_InvalidCommandTree�5>Cqt_ExpressionLink_TypeMismatch�5PCqt_ExpressionList_IncorrectElementCountM6HCqt_Factory_IncompatibleRelationEnds�6PCqt_Factory_MethodResultTypeNotSupported�6TCqt_Factory_NewCollectionInvalidCommonType�74Cqt_Factory_NoSuchProperty�8:Cqt_Factory_NoSuchRelationEnd�8ZCqt_Function_CanonicalFunction_AmbiguousMatch$9NCqt_Function_CanonicalFunction_NotFound�9HCqt_Function_CommandTextInExpression�9LCqt_Function_NonComposableInExpressionJ:<Cqt_Function_VoidResultInvalidg;>Cqt_General_MetadataNotReadOnly�;BCqt_General_NoProviderBooleanType(<BCqt_General_NoProviderIntegerTypex<@Cqt_General_NoProviderStringType�<DCqt_General_PolymorphicArgRequired=FCqt_General_PolymorphicTypeRequired�=BCqt_General_UnsupportedExpression�=>Cqt_GetEntityRef_EntityRequired�=2Cqt_GetRefKey_RefRequired0>FCqt_GroupBinding_CollectionRequiredt>TCqt_GroupBinding_GroupVariableNameNotValid�>\Cqt_GroupBy_AggregateColumnExistsAsGroupColumnG?HCqt_GroupBy_AtLeastOneKeyOrAggregate�?HCqt_GroupBy_KeyNotEqualityComparable�?JCqt_GroupBy_MoreThanOneGroupAggregate~@<Cqt_InvalidTypeForSetOperation�@>Cqt_IsNull_CollectionNotAllowed(A,Cqt_IsNull_InvalidType}A>Cqt_Join_DuplicateVariableNames�APCqt_Limit_ConstantOrParameterRefRequiredTB2Cqt_Limit_IntegerRequired�BDCqt_Limit_NonNegativeLimitRequired�BHCqt_Metadata_EdmMemberIncorrectSpaceCRCqt_Metadata_EntitySetEntityContainerNullxCHCqt_Metadata_EntitySetIncorrectSpace�CZCqt_Metadata_EntityTypeEmptyKeyMembersInvalidMDXCqt_Metadata_EntityTypeNullKeyMembersInvalid�DFCqt_Metadata_FunctionIncorrectSpaceEXCqt_Metadata_FunctionParameterIncorrectSpaceyEPCqt_Metadata_FunctionReturnParameterNullFHCqt_Metadata_TypeUsageIncorrectSpaceaFZCqt_NewInstance_CannotInstantiateAbstractType�F^Cqt_NewInstance_CannotInstantiateMemberlessType%GLCqt_NewInstance_CollectionTypeRequiredvGxCqt_NewInstance_IncompatibleRelatedEntity_SourceTypeNotValid�GLCqt_NewInstance_StructuralTypeRequireduH>Cqt_Not_BooleanArgumentRequired�H>Cqt_Or_BooleanArgumentsRequired�HPCqt_Property_InstanceRequiredForInstance-I<Cqt_Ref_PolymorphicArgRequired�I2Cqt_RelNav_NoCompositions�I4Cqt_RelNav_WrongSourceType9JnCqt_RelatedEntityRef_TargetEndFromDifferentRelationship�JZCqt_RelatedEntityRef_TargetEndMustBeAtMostOne7KZCqt_RelatedEntityRef_TargetEndSameAsSourceEnd�K\Cqt_RelatedEntityRef_TargetEntityNotCompatible�KNCqt_RelatedEntityRef_TargetEntityNotRef�LNCqt_Skip_ConstantOrParameterRefRequired<M0Cqt_Skip_IntegerRequired�MBCqt_Skip_NonNegativeCountRequired�M<Cqt_Sort_EmptyCollationInvalid�MDCqt_Sort_NonStringCollationInvalidHN0Cqt_Sort_OrderComparable�NTCqt_UDF_FunctionDefinitionGenerationFailed�NXCqt_UDF_FunctionDefinitionResultTypeMismatchgO^Cqt_UDF_FunctionDefinitionWithCircularReferenceP>Cqt_UDF_FunctionHasNoDefinition�P8Cqt_Unary_CollectionRequiredHQ>Cqt_Util_CheckListDuplicateNamerQ<Cqt_Util_CheckListEmptyInvalid�QhCqt_Validator_InvalidIncompatibleParameterReferences%R^Cqt_Validator_InvalidIncorrectDataSpaceMetadata�RVCqt_Validator_InvalidOtherWorkspaceMetadataS6Cqt_Validator_VarRefInvalidtS@Cqt_Validator_VarRefTypeMismatch�SXCreateRefTypeIdentifierMustBeASubOrSuperType\T\CreateRefTypeIdentifierMustSpecifyAnEntityType�TCtxAliasU2CtxAliasedNamespaceImport*UCtxAndYUCtxAnyElementqUCtxApplyClause�UCtxBetween�UCtxCase�UCtxCaseElse�UCtxCaseWhenThen�UCtxCast�U8CtxCollatedOrderByClauseItemV6CtxCollectionTypeDefinition,V(CtxCommandExpressionOVCtxCreateReffVCtxDeref|VCtxDivide�VCtxElement�VCtxEquals�V(CtxEscapedIdentifier�VCtxExcept�VCtxExists�V"CtxExpressionList
WCtxFlatten#W$CtxFromApplyClause7WCtxFromClauseMW"CtxFromClauseItem]W"CtxFromClauseListyW"CtxFromJoinClause�WCtxFunction�W*CtxFunctionDefinition�WCtxGreaterThan�W&CtxGreaterThanEqual�W CtxGroupByClauseX"CtxGroupPartition#XCtxHavingClause>XCtxIdentifierPX
CtxIn_XCtxIntersectzXCtxIsNotNull�XCtxIsNotOf�XCtxIsNull�XCtxIsOf�XCtxJoinClause�XCtxJoinOnClause�XCtxKeyYCtxLessThanY CtxLessThanEqual-YCtxLikeMY"CtxLimitSubClause^YCtxLiteral{YCtxMemberAccess�YCtxMethod�YCtxMinus�YCtxModulus�YCtxMultiplyZCtxMultisetCtor#Z$CtxNamespaceImport9Z,CtxNamespaceImportList^ZCtxNavigate�ZCtxNot�ZCtxNotBetween�ZCtxNotEqual�ZCtxNotIn�ZCtxNotLike[CtxNullLiteral[CtxOfType*[CtxOfTypeOnly=[
CtxOrU[ CtxOrderByClausel[(CtxOrderByClauseItem�[CtxOverlaps�[CtxParen�[CtxPlus�[$CtxQueryExpression�["CtxQueryStatement�[CtxRef\(CtxRefTypeDefinition)\CtxRelationshipL\&CtxRelationshipListe\CtxRowCtor�\(CtxRowTypeDefinition�\$CtxSelectRowClause�\(CtxSelectValueClause�\CtxSet�\&CtxSimpleIdentifier�\ CtxSkipSubClause]CtxTopSubClause"]CtxTreat4]CtxTypeCtorF]CtxTypeNamea].CtxTypeNameWithTypeSpecq]CtxUnaryMinus�]CtxUnaryPlus�]CtxUnion�]CtxUnionAll�]CtxWhereClause
^(CycleInTypeHierarchy^"DataCategory_DataU^&DataCategory_Update\^*DbParameter_Directionl^ DbParameter_Size�^0DbParameter_SourceColumn�^2DbParameter_SourceVersion�_,DeRefArgIsNotOfRefType5`"DefaultNotAllowed�`DDifferentSchemaVersionInCollection�`&DuplicateAnnotationva DuplicateEndName�aDDuplicateEntityContainerMemberName�a.DuplicateEntitySetTable@b&DuplicateEnumMember�b&DuplicateMemberName
cXDuplicateMemberNameInExtendedEntityContainerscRDuplicatePropertyNameSpecifiedInEntityKeywd6DuplicatedFunctionoverloadse@DuplicatedInlineFunctionOverload�e(DuplicationOperationkf&ELinq_AnonymousType�f"ELinq_ClosureType�fRELinq_CreateOrderedEnumerableNotSupported�f&ELinq_CycleDetected7g^ELinq_EdmFunctionAttributeParameterNameNotValideglELinq_EdmFunctionAttributedFunctionWithWrongReturnType h6ELinq_EdmFunctionDirectCalli@ELinq_ExpressionMustBeIQueryableIi2ELinq_InvalidOfTypeResult�i>ELinq_MethodNotDirectlyCallable\j0ELinq_NotPropertyOrField�j>ELinq_PropertyIndexNotSupportedk,ELinq_SkipWithoutOrderLk@ELinq_ThenByDoesNotFollowOrderBy�k@ELinq_UnboundParameterExpression;lRELinq_UnexpectedTypeForNavigationProperty�l4ELinq_UnhandledBindingType%m:ELinq_UnhandledExpressionTypeNm0ELinq_UnrecognizedMember{mNELinq_UnresolvableFunctionForExpression(nFELinq_UnresolvableFunctionForMember�nFELinq_UnresolvableFunctionForMethodobELinq_UnresolvableFunctionForMethodAmbiguousMatch�oVELinq_UnresolvableFunctionForMethodNotFoundupXELinq_UnresolvableStoreFunctionForExpression7qPELinq_UnresolvableStoreFunctionForMember�qRELinq_UnsupportedAsUnicodeAndAsNonUnicode�r0ELinq_UnsupportedBindings*ELinq_UnsupportedCast�s<ELinq_UnsupportedCastToDecimalt6ELinq_UnsupportedComparison�t2ELinq_UnsupportedConstant*u8ELinq_UnsupportedConstructor�uDELinq_UnsupportedDifferentContextsv>ELinq_UnsupportedEnumerableTypevv>ELinq_UnsupportedExpressionType�vTELinq_UnsupportedHeterogeneousInitializers)w0ELinq_UnsupportedIncludeix:ELinq_UnsupportedInitializers�x.ELinq_UnsupportedIsOrAs3y8ELinq_UnsupportedKeySelector�y0ELinq_UnsupportedMergeAsgz.ELinq_UnsupportedMethod�zVELinq_UnsupportedMethodSuggestedAlternativeQ{8ELinq_UnsupportedNestedFirst�{:ELinq_UnsupportedNestedSingle�|8ELinq_UnsupportedNominalTypeQ}:ELinq_UnsupportedNullConstant�}8ELinq_UnsupportedPassthroughK~@ELinq_UnsupportedQueryableMethod�~<ELinq_UnsupportedRefComparison�~<ELinq_UnsupportedRowComparison\HELinq_UnsupportedRowMemberComparison�DELinq_UnsupportedRowTypeComparison�BELinq_UnsupportedStringRemoveCase�JELinq_UnsupportedTrimStartTrimEndCasea�*ELinq_UnsupportedTypeڀLELinq_UnsupportedUseOfContextParameter;�TELinq_UnsupportedVBDatePartInvalidInterval��\ELinq_UnsupportedVBDatePartNonConstantInterval
�`EdmMembersDefiningTypeDoNotAgreeWithMetadataTypeo�>EdmVersionNotSupportedByRuntime�:ElementOperatorIsNotSupported�� EmptyCommandText�$EmptyDefiningQueryJ�EmptyFile��EmptyName�*EmptySchemaTextReader,�<EndNameAlreadyDefinedDuplicate��hEndWithManyMultiplicityCannotHaveOperationsSpecified�,EndWithoutMultiplicity��JEntityClient_CannotCloneStoreProvider܆>EntityClient_CannotDeduceDbTypeZ�BEntityClient_CannotGetCommandTextۇBEntityClient_CannotGetCommandTree@�FEntityClient_CannotReopenConnection��rEntityClient_CannotReprepareCommandDefinitionBasedCommandňBEntityClient_CannotSetCommandText��BEntityClient_CannotSetCommandTree�LEntityClient_ClosedConnectionForUpdatez�ZEntityClient_CommandDefinitionExecutionFailed�^EntityClient_CommandDefinitionPreparationFailedO�FEntityClient_CommandExecutionFailedNjXEntityClient_CommandTreeMetadataIncompatible/�FEntityClient_ConnectionMustBeClosed��<EntityClient_ConnectionNotOpen�DEntityClient_ConnectionStateBroken�DEntityClient_ConnectionStateClosed�PEntityClient_ConnectionStringMissingInfo&�dEntityClient_ConnectionStringNeededBeforeOperation��DEntityClient_DataReaderIsStillOpen�LEntityClient_DbConnectionHasNoProvider��ZEntityClient_DoesNotImplementIServiceProvider��HEntityClient_DuplicateParameterNames��>EntityClient_EmptyParameterName��XEntityClient_EntityParameterEdmTypeNotScalar��^EntityClient_EntityParameterInconsistentEdmType֐PEntityClient_ErrorInBeginningTransaction+�JEntityClient_ErrorInClosingConnection��PEntityClient_ExecutingOnClosedConnection-�^EntityClient_ExtraParametersWithNamedConnection��FEntityClient_FailedToGetInformation�VEntityClient_FunctionImportEmptyCommandText��\EntityClient_FunctionImportMustBeNonComposableѓbEntityClient_IncompatibleNavigationPropertyResult�FEntityClient_InvalidNamedConnection��LEntityClient_InvalidParameterDirection��BEntityClient_InvalidParameterName\�BEntityClient_InvalidStoreProvider�\EntityClient_InvalidStoredProcedureCommandTextf�REntityClient_InvalidTransactionForCommand�hEntityClient_ItemCollectionsNotRegisteredInWorkspacee�@EntityClient_KeywordNotSupported��DEntityClient_NestedNamedConnection˘4EntityClient_NoCommandTextE�FEntityClient_NoConnectionForAdapter��FEntityClient_NoConnectionForCommandԙNEntityClient_NoStoreConnectionForUpdate"�BEntityClient_ProviderGeneralError��DEntityClient_ProviderSpecificErrorܚPEntityClient_RequiresNonStoreCommandTree�REntityClient_ReturnedNullOnProviderMethodx�hEntityClient_SettingsCannotBeChangedOnOpenConnection5�<EntityClient_StoreReaderFailed�4EntityClient_TooFewColumnsx�LEntityClient_TransactionAlreadyStarted��NEntityClient_UnableToFindFunctionImport|�`EntityClient_UnableToFindFunctionImportContainer��BEntityClient_UnknownParameterType!�FEntityClient_UnmappedFunctionImport֟FEntityClient_UnsupportedCommandTypeJ�<EntityClient_UnsupportedDbType��6EntityClient_ValueNotString�>EntityConnectionString_Metadata<�6EntityConnectionString_Nameq�>EntityConnectionString_Provider��^EntityConnectionString_ProviderConnectionString�8EntityContainerAlreadyExists#�BEntityContainerCannotExtendItself��4EntityDataCategory_Context�PEntityDataCategory_NamedConnectionString�2EntityDataCategory_Source�*EntityKeyMustBeScalar�DEntityKeyTypeCurrentlyNotSupported��PEntityKeyTypeCurrentlyNotSupportedInSSDL.�2EntityKey_CannotChangeKey�@EntityKey_DataRecordMustBeEntity5�@EntityKey_DoesntMatchKeyOnEntity|�BEntityKey_EntityKeyMustHaveValues�>EntityKey_EntitySetDoesNotMatchR�>EntityKey_EntityTypesDoNotMatchͦPEntityKey_IncorrectNumberOfKeyValuePairs6�8EntityKey_IncorrectValueTypeݧ*EntityKey_InvalidNameV�NEntityKey_InvalidQualifiedEntitySetName��<EntityKey_MissingEntitySetName!�2EntityKey_MissingKeyValueX�fEntityKey_NoCorrespondingOSpaceTypeForEnumKeyMember�NEntityKey_NoNullsAllowedInKeyValuePairss�,EntityKey_NullKeyValueŪ0EntityKey_UnexpectedNullP�JEntityParameterCollectionInvalidIndexΫZEntityParameterCollectionInvalidParameterName�XEntityParameterCollectionRemoveInvalidObject�VEntityParameterContainedByAnotherCollectionݬ&EntityParameterNull�jEntityProxyTypeInfo_CannotSetEntityCollectionPropertyv�NEntityProxyTypeInfo_DuplicateOSpaceType�PEntityProxyTypeInfo_ProxyHasWrongWrapper��\EntityProxyTypeInfo_ProxyMetadataIsUnavailable�vEntityReference_CannotAddMoreThanOneEntityToEntityReference�rEntityReference_CannotChangeReferentialConstraintPropertyc�HEntityReference_CannotSetSpecialKeys��LEntityReference_EntityKeyValueMismatchU�\EntityReference_ExpectedReferenceGotCollection�hEntityReference_LessThanExpectedRelatedEntitiesFound*�hEntityReference_MoreThanExpectedRelatedEntitiesFound��6EntitySetInAnotherContainerص(EntitySetNotInCSPace$�,EntitySetTypeHasNoKeysh�*EntityTypesDoNotAgree��VEntity_EntityCantHaveMultipleChangeTrackers �TEnumMemberValueOutOfItsUnderylingTypeRange{�FExprIsNotValidEntitySetForCreateRefڷ,ExpressionCannotBeNull�4ExpressionMustBeCollectionK�6ExpressionMustBeNumericType��6ExpressionTypeMustBeBoolean��<ExpressionTypeMustBeEntityType�FExpressionTypeMustBeEqualComparable7�>ExpressionTypeMustBeNominalType|�BExpressionTypeMustNotBeCollectionŹExtraInfo�JFacetDeclarationRequiresTypeAttributeT�FacetNotAllowed��*FacetsOnNonScalarType�:FailedToFindCSpaceTypeMapping!�4FailedToFindClrTypeMapping[�:FailedToFindOSpaceTypeMapping��@FailedToResolveAggregateFunction��@FailedToRetrieveProviderManifest��dFunctionImportCollectionAndRefParametersNotAllowed(�dFunctionImportComposableAndSideEffectingNotAllowed�^FunctionImportEntitySetAndEntitySetPathDeclared��ZFunctionImportEntityTypeDoesNotMatchEntitySet��ZFunctionImportNonNullableParametersNotAllowed�lFunctionImportReturnEntitiesButDoesNotSpecifyEntitySet��`FunctionImportSpecifiesEntitySetButNotEntityType��<FunctionImportUnknownEntitySet[�RFunctionImportWithUnsupportedReturnTypeV1�VFunctionImportWithUnsupportedReturnTypeV1_1h�RFunctionImportWithUnsupportedReturnTypeV2��VFunctionWithNonEdmPrimitiveTypeNotSupported��PFunctionWithNonPrimitiveTypeNotSupported��JGeneralExceptionAsQueryInnerException)�"GeneralQueryError��>Generated_View_Type_Super_Class��.Generated_Views_Changed�<Generated_Views_Invalid_Extentw�6GeneratorErrorSeverityError��:GeneratorErrorSeverityUnknown��:GeneratorErrorSeverityWarning��$GenericSyntaxError�.GenericTypeNotSupported(�4GroupPartitionOutOfContext��.GroupVarNotFoundInScope��BGroupingKeysMustBeEqualComparableB�2HavingRequiresGroupClause��FImcompatibleCreateRefKeyElementType��8ImcompatibleCreateRefKeyType?�InFromClause��InGroupClause��InRowCtor��,InSelectProjectionList��2IncorrectProviderManifest�:InferRelationshipEndAmbiguousC�TInferRelationshipEndFailedNoEntitySetMatchX�TInferRelationshipEndGivesAlreadyDefinedEnd�8InnerJoinMustHaveOnPredicate��InvalidAction� InvalidAliasNamet�NInvalidArgumentTypeForAggregateFunction��<InvalidAssociationTypeForUnion�4InvalidBaseTypeForItemTypeS�8InvalidBaseTypeForNestedType��@InvalidBaseTypeForStructuredType��,InvalidCaseResultTypes:�6InvalidCaseWhenThenNullTypes�InvalidCast��2InvalidCastExpressionTypeA�InvalidCastType|�6InvalidCollectionForMapping��4InvalidCollectionSpecified�$InvalidComplexType�.InvalidCreateRefKeyType��.InvalidCtorArgumentType��(InvalidCtorUseOnType0�8InvalidDateTimeOffsetLiteral��InvalidDay�"InvalidDayInMonthZ�(InvalidDeRefProperty��FInvalidDefaultBinaryWithNoMaxLength�*InvalidDefaultBoolean��,InvalidDefaultDateTime�8InvalidDefaultDateTimeOffset}�*InvalidDefaultDecimal��6InvalidDefaultFloatingPoint��$InvalidDefaultGuid�,InvalidDefaultIntegral��$InvalidDefaultTime�:InvalidDistinctArgumentInCtor`�NInvalidDistinctArgumentInNonAggFunction��PInvalidDocumentationBothTextAndStructure��"InvalidEDMVersiony�,InvalidEmptyIdentifier��"InvalidEmptyQuery��:InvalidEmptyQueryTextArgumentB�>InvalidEndEntitySetTypeMismatch��LInvalidEndRoleInRelationshipConstraint��FInvalidEntityContainerNameInExtendsR�(InvalidEntityEndName��4InvalidEntityParameterType��:InvalidEntityRootTypeArgument8�(InvalidEntitySetName��:InvalidEntitySetNameReference��(InvalidEntitySetTypeJ�2InvalidEntityTypeArgument��2InvalidEnumUnderlyingType4�0InvalidEscapedIdentifier��DInvalidEscapedIdentifierUnbalanced��@InvalidExpressionResolutionClass)�(InvalidFileExtensione�,InvalidFlattenArgument��VInvalidFromPropertyInRelationshipConstraint
�>InvalidGroupIdentifierReference<�InvalidHour��DInvalidImplicitRelationshipFromEnd��@InvalidImplicitRelationshipToEnd)�"InvalidInExprArgsd�4InvalidJoinLeftCorrelation��$InvalidKeyArgument3�>InvalidKeyKeyDefinedInBaseClass�� InvalidKeyMember��(InvalidKeyNoPropertyV�,InvalidKeyNullablePart��4InvalidKeyTypeForCollation�(InvalidLiteralFormatj�(InvalidMaxLengthSize��@InvalidMemberNameMatchesTypeName��HInvalidMetadataMemberClassResolution7�2InvalidMetadataMemberNameh�&InvalidMetadataPath��InvalidMinute��HInvalidModeForWithRelationshipClause�InvalidMonths�dInvalidMultiplicityFromRoleToPropertyNonNullableV1��dInvalidMultiplicityFromRoleToPropertyNonNullableV2��^InvalidMultiplicityFromRoleToPropertyNullableV1��\InvalidMultiplicityFromRoleUpperBoundMustBeOneB�ZInvalidMultiplicityToRoleLowerBoundMustBeZero��ZInvalidMultiplicityToRoleUpperBoundMustBeManyl�XInvalidMultiplicityToRoleUpperBoundMustBeOneW�InvalidName?�*InvalidNamespaceAliasY�.InvalidNamespaceInUsing��@InvalidNamespaceOrAliasSpecifiedH�*InvalidNullArithmetic��*InvalidNullComparison*�LInvalidNullLiteralForNonNullableMemberx�ZInvalidNumberOfParametersForAggregateFunction��RInvalidOperationMultipleEndsInAssociationN�*InvalidOperatorSymbol��,InvalidParameterFormat��PInvalidParameterTypeForAggregateFunction�DInvalidPlaceholderRootTypeArgument��<InvalidPlaceholderTypeArgument�BInvalidPrecisionAndScaleSpecified��8InvalidPredicateForCrossJoin$�0InvalidPrimitiveTypeKind_�NInvalidPropertyInRelationshipConstraint��&InvalidPropertyType��.InvalidPunctuatorSymbol��,InvalidQueryResultType��DInvalidRelationshipEndMultiplicity�4InvalidRelationshipEndType��2InvalidRelationshipMember�4InvalidRelationshipSetName.�4InvalidRelationshipSetType��,InvalidRootComplexType�$InvalidRootRowTypeM�InvalidRowType�� InvalidSavePointT�0InvalidSchemaEncountered��"InvalidScopeIndex�InvalidSecond��FInvalidSelectValueAliasedExpression7�,InvalidSelectValueList�.InvalidSimpleIdentifier�>InvalidSimpleIdentifierNonASCIIE�InvalidSize�*InvalidStringArgumentB�0InvalidSystemReferenceId��RInvalidToPropertyInRelationshipConstraint��HInvalidTypeForWithRelationshipClause�2InvalidUnarySetOpArgument&�RInvalidUnsignedTypeForUnaryMinusOperationY�&InvalidUseOfWebPath��\InvalidValueForParameterTypeSemanticsAttribute�XInvalidWithRelationshipTargetEndMultiplicity��InvalidYear��:Iqt_CTGen_UnexpectedAggregate14Iqt_CTGen_UnexpectedVarDeff<Iqt_CTGen_UnexpectedVarDefList{2Iqt_General_UnsupportedOp�"IsNullInvalidType�>ItemCollectionAlreadyRegistered*ItemDuplicateIdentityX&ItemInvalidIdentity�,KeyMissingOnEntityType�&KeyMustBeCorrelatedEJLeftSetExpressionArgsMustBeCollection�.LikeArgMustBeStringType�:LiteralTypeNotFoundInMetadata,.LiteralTypeNotSupporteds&LocalizedCollection�LocalizedColumn� LocalizedComplex�LocalizedEntity�DLocalizedEntityContainerExpression�&LocalizedEnumMember�"LocalizedFunction.LocalizedInlineFunction LocalizedKeyword.LocalizedLeft=LocalizedLineHBLocalizedMetadataMemberExpressionP$LocalizedNamespaceuLocalizedNear�$LocalizedPrimitive�$LocalizedReference�LocalizedRight�LocalizedRow�LocalizedTerm�LocalizedType�0LocalizedValueExpression�6MalformedSingleQuotePayload�:MalformedStringLiteralPayload MalformedXmljXMapping_AbstractTypeMappingToNonAbstractType�BMapping_AllQueryViewAtCompileTimeWXMapping_AlreadyMapped_StorageEntityContainerXJMapping_CannotMapCLRTypeMultipleTimes�DMapping_ConditionValueTypeMismatchHMapping_Default_OCMapping_Clr_Member_JMapping_Default_OCMapping_Clr_Member2�XMapping_Default_OCMapping_Invalid_MemberType	ZMapping_Default_OCMapping_MemberKind_Mismatch�	^Mapping_Default_OCMapping_Member_Count_Mismatchm
\Mapping_Default_OCMapping_Member_Type_Mismatch%\Mapping_Default_OCMapping_MultiplicityMismatch�@Mapping_DifferentEdmStoreVersion�NMapping_DifferentMappingEdmStoreVersion�PMapping_DistinctFlagInReadWriteContainerv
\Mapping_Duplicate_CdmAssociationSet_StorageMap1ZMapping_Duplicate_PropertyMap_CaseInsensitivew,Mapping_Duplicate_Type.Mapping_Empty_QueryView=<Mapping_Empty_QueryView_OfType�DMapping_Empty_QueryView_OfTypeOnly�lMapping_EntitySetMismatchOnAssociationSetEnd_QueryView6HMapping_EnumTypeMappingToNonEnumType�.Mapping_Enum_EmptyValue�2Mapping_Enum_InvalidValueJMapping_Enum_OCMapping_MemberMismatchc\Mapping_Enum_OCMapping_UnderlyingTypesMismatch+hMapping_FunctionImport_CannotInferTargetFunctionKeys�bMapping_FunctionImport_ConditionValueTypeMismatch��Mapping_FunctionImport_EntityTypeMappingForFunctionNotReturningEntitySetaPMapping_FunctionImport_FunctionAmbiguous�bMapping_FunctionImport_FunctionImportDoesNotExist2pMapping_FunctionImport_FunctionImportMappedMultipleTimesjvMapping_FunctionImport_ImplicitMappingForAbstractReturnType��Mapping_FunctionImport_ImportParameterHasNoCorrespondingTargetParameterhMapping_FunctionImport_IncompatibleEnumParameterType�`Mapping_FunctionImport_IncompatibleParameterMode `Mapping_FunctionImport_IncompatibleParameterType�vMapping_FunctionImport_InvalidContentEntityTypeForEntitySetPMapping_FunctionImport_PropertyNotMapped��Mapping_FunctionImport_ResultMappingCountDoesNotMatchResultCountHvMapping_FunctionImport_ResultMapping_InvalidCTypeCTExpected�vMapping_FunctionImport_ResultMapping_InvalidCTypeETExpected}bMapping_FunctionImport_ResultMapping_InvalidSType/�Mapping_FunctionImport_ResultMapping_MappedTypeDoesNotMatchReturnType�pMapping_FunctionImport_RowsAffectedParameterDoesNotExist�pMapping_FunctionImport_RowsAffectedParameterHasWrongMode�pMapping_FunctionImport_RowsAffectedParameterHasWrongType0hMapping_FunctionImport_ScalarMappingToMulticolumnTVF�`Mapping_FunctionImport_ScalarMappingTypeMismatchN `Mapping_FunctionImport_StoreFunctionDoesNotExist� jMapping_FunctionImport_TargetFunctionMustBeComposable#!pMapping_FunctionImport_TargetFunctionMustBeNonComposable7"�Mapping_FunctionImport_TargetParameterHasNoCorrespondingImportParameter5#TMapping_FunctionImport_UnreachableIsTypeOf�#LMapping_FunctionImport_UnreachableType�$LMapping_FunctionImport_UnsupportedTypeV%*Mapping_General_Error�%jMapping_InvalidContent_AbstractEntity_FunctionMapping&\Mapping_InvalidContent_AbstractEntity_IsOfTypej&TMapping_InvalidContent_AbstractEntity_Type�&^Mapping_InvalidContent_AssociationSet_Condition'LMapping_InvalidContent_Association_Set'NMapping_InvalidContent_Association_Type�'ZMapping_InvalidContent_Association_Type_EmptyL(BMapping_InvalidContent_Cdm_Member�(:Mapping_InvalidContent_Columna)FMapping_InvalidContent_Complex_Type�)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_InvalidMember=,�Mapping_InvalidContent_ConditionMapping_InvalidPrimitiveTypeKindx,bMapping_InvalidContent_ConditionMapping_NonScalar�,VMapping_InvalidContent_Container_SubElement3-VMapping_InvalidContent_Duplicate_Cdm_Member�-bMapping_InvalidContent_Duplicate_Condition_Member.HMapping_InvalidContent_Emtpty_SetMap�.4Mapping_InvalidContent_End�.DMapping_InvalidContent_EndPropertyD/LMapping_InvalidContent_EntityContainer�/BMapping_InvalidContent_Entity_SetZ0DMapping_InvalidContent_Entity_Type�0bMapping_InvalidContent_Entity_Type_For_Entity_Set1bMapping_InvalidContent_ForeignKey_Association_Set|1pMapping_InvalidContent_ForeignKey_Association_Set_PKtoPK�1<Mapping_InvalidContent_General\2XMapping_InvalidContent_IsTypeOfNotTerminated�2ZMapping_InvalidContent_StorageEntityContainer�28Mapping_InvalidContent_TableA3JMapping_InvalidContent_Table_Expected�3XMapping_InvalidContent_TypeMapping_QueryView�3HMapping_InvalidMappingSchema_Parsinge4NMapping_InvalidMappingSchema_validation�4hMapping_Invalid_Association_Type_For_Association_Set65HMapping_Invalid_CSRootElementMissing�5HMapping_Invalid_CSide_ScalarPropertyS6<Mapping_Invalid_Member_Mapping�62Mapping_Invalid_QueryViewC74Mapping_Invalid_QueryView2�7<Mapping_Invalid_QueryView_TypeE8ZMapping_Invalid_Query_Views_MissingSetClosure�8fMapping_ItemWithSameNameExistsBothInCSpaceAndSSpace�9\Mapping_ModificationFunction_AmbiguousFunction{:fMapping_ModificationFunction_AmbiguousResultBinding�:�Mapping_ModificationFunction_AssociationEndMappingForeignKeyAssociationt;�Mapping_ModificationFunction_AssociationEndMappingInvalidForEntityType�;hMapping_ModificationFunction_AssociationSetAmbiguousT<lMapping_ModificationFunction_AssociationSetCardinality=nMapping_ModificationFunction_AssociationSetDoesNotExist�=�Mapping_ModificationFunction_AssociationSetFromRoleIsNotEntitySet>�Mapping_ModificationFunction_AssociationSetNotMappedForOperation�>vMapping_ModificationFunction_AssociationSetRoleDoesNotExistf?`Mapping_ModificationFunction_ComplexTypeNotFound�?ZMapping_ModificationFunction_In_Table_Context@\Mapping_ModificationFunction_MissingEntityType�@ZMapping_ModificationFunction_MissingParameter@A\Mapping_ModificationFunction_MissingSetClosure�AVMapping_ModificationFunction_MissingVersionCxMapping_ModificationFunction_MultipleEndsOfAssociationMappedaCVMapping_ModificationFunction_Multiple_TypeskDZMapping_ModificationFunction_NotValidFunctionmElMapping_ModificationFunction_NotValidFunctionParameter�E`Mapping_ModificationFunction_ParameterBoundTwiceG\Mapping_ModificationFunction_ParameterNotFound7GZMapping_ModificationFunction_PropertyNotFound|GVMapping_ModificationFunction_PropertyNotKey�GtMapping_ModificationFunction_PropertyParameterTypeMismatch(HnMapping_ModificationFunction_RedundantEntityTypeMapping�HXMapping_ModificationFunction_UnknownFunctionIbMapping_ModificationFunction_VersionMustBeCurrenteIdMapping_ModificationFunction_VersionMustBeOriginal�IZMapping_ModificationFunction_WrongComplexType9J@Mapping_NotFound_EntityContainer�J4Mapping_Object_InvalidType�J>Mapping_ProviderReturnsNullTypeKHMapping_Provider_WrongConnectionTypemKDMapping_Provider_WrongManifestType�KNMapping_QueryViewMultipleTypeInTypeName�KDMapping_QueryView_Duplicate_OfTypeLLMapping_QueryView_Duplicate_OfTypeOnlycL>Mapping_QueryView_For_Base_Type�L<Mapping_QueryView_PropertyMapsMLMapping_QueryView_TypeName_Not_Defined|M8Mapping_Storage_InvalidSpace
N^Mapping_StoreTypeMismatch_ScalarPropertyMapping�N6Mapping_TableName_QueryViewPHMapping_TypeName_For_First_QueryView�PVMapping_UnsupportedExpressionKind_QueryViewQRMapping_UnsupportedFunctionCall_QueryView�QVMapping_UnsupportedInitialization_QueryViewCRRMapping_UnsupportedPropertyKind_QueryView�RNMapping_UnsupportedScanTarget_QueryView�SLMapping_Views_For_Extent_Not_GeneratedQTJMaterializer_AddedEntityAlreadyExists�TTMaterializer_CannotReEnumerateQueryResultsU@Materializer_InvalidCastNullablecUBMaterializer_InvalidCastReference�U<Materializer_NullReferenceCast5VDMaterializer_PropertyIsNotNullable�VTMaterializer_PropertyIsNotNullableWithName,W8Materializer_RecyclingEntityjW8Materializer_SetInvalidValue;X8Materializer_UnsupportedType�XHMemberDoesNotBelongToEntityContainer)Y*MemberInvalidIdentity�Y,Metadata_General_Error�Y8MethodInvocationNotSupportedZ.MinAndMaxMustBePositive3Z`MinAndMaxValueMustBeDifferentForNonConstantFacet�ZPMinAndMaxValueMustBeSameForConstantFacet[(MinMustBeLessThanMax�[dMismatchNumberOfPropertiesinRelationshipConstraint!\FMissingConstraintOnRelationshipType�\FMissingDefaultValueForConstantFacet�\2MissingEntityContainerEndx].MissingFacetDescription^MissingNameq^2MissingNamespaceAttribute�^<MoreThanOneItemMatchesIdentity�^<MultipleDefinitionsOfParameter7_:MultipleDefinitionsOfVariable�_BMultisetElemsAreNotTypeCompatible�_2NamespaceAliasAlreadyUsed`0NamespaceAlreadyImportedZ`ZNavigationPropertyRelationshipEndTypeMismatch�`@NeedNotUseSystemNamespaceInUsingQaLNestedAggregateCannotBeUsedInAggregate#b.NestedClassNotSupportedfb@NewTypeConflictsWithExistingType�b6NoAggrFunctionOverloadMatchTcHNoCanonicalAggrFunctionOverloadMatch�c@NoCanonicalFunctionOverloadMatch�dPNoCodeGenNamespaceInStructuralAnnotation�e(NoCollectionForSpacef.NoFunctionOverloadMatch<f*NoStoreTypeForEdmType�fVNonComposableFunctionHasDisallowedAttributegZNonComposableFunctionMustNotDeclareReturnType}g,NotAMemberOfCollection�g NotAMemberOfTypeoh$NotASuperOrSubType�h2NotBinaryTypeForTypeUsage�hBNotDateTimeOffsetTypeForTypeUsagei6NotDateTimeTypeForTypeUsageQi4NotDecimalTypeForTypeUsagexi&NotInNamespaceAlias�i*NotInNamespaceNoAlias�i*NotNamespaceQualified$j2NotStringTypeForTypeUsage�j.NotTimeTypeForTypeUsage�j"NotValidInputPath�j\NullLiteralCannotBePromotedToCollectionOfNullslkPNullParameterForEdmRelationshipAttribute�k^NullRelationshipNameforEdmRelationshipAttribute�kHNumberOfTypeCtorIsLessThenFormalSpecYlHNumberOfTypeCtorIsMoreThenFormalSpec�lJObjectContext_AcceptAllChangesFailure�l`ObjectContext_CannotAttachEntityWithTemporaryKey�mTObjectContext_CannotAttachEntityWithoutKey$nnObjectContext_CannotDeleteEntityNotInObjectStateManager~nnObjectContext_CannotDetachEntityNotInObjectStateManager�nnObjectContext_CannotExplicitlyLoadDetachedRelationshipsonObjectContext_CannotLoadReferencesUsingDifferentContext�oVObjectContext_CannotSetDefaultContainerName%pTObjectContext_ClientEntityRemovedFromStore�pLObjectContext_CommitWithConceptualNullqjObjectContext_ContainerQualifiedEntitySetNameRequired�rNObjectContext_EntitiesHaveDifferentType�sjObjectContext_EntityAlreadyExistsInObjectStateManagerotXObjectContext_EntityContainerNotFoundForNameuZObjectContext_EntityMustBeUnchangedOrModified;ulObjectContext_EntityMustBeUnchangedOrModifiedOrDeleted�uRObjectContext_EntityNotInObjectSet_Delete�vRObjectContext_EntityNotInObjectSet_Detach�wTObjectContext_EntityNotTrackedOrHasTempKeyEy\ObjectContext_EntitySetNameOrEntityKeyRequiredazLObjectContext_EntitySetNotFoundForName{rObjectContext_ExecuteCommandWithMixOfDbParameterAndValues>{nObjectContext_ExecuteFunctionCalledWithNonQueryFunction�{hObjectContext_ExecuteFunctionCalledWithNullParametero|jObjectContext_ExecuteFunctionCalledWithScalarFunction�|RObjectContext_ExecuteFunctionTypeMismatch�}FObjectContext_InvalidCommandTimeout~>ObjectContext_InvalidConnectionp~JObjectContext_InvalidConnectionString�~@ObjectContext_InvalidDataAdapter]RObjectContext_InvalidDefaultContainerName�VObjectContext_InvalidEntitySetForStoreQueryQ�FObjectContext_InvalidEntitySetInKey��VObjectContext_InvalidEntitySetInKeyFromName�LObjectContext_InvalidEntitySetOnEntityŁ@ObjectContext_InvalidEntityState,�\ObjectContext_InvalidObjectSetTypeForEntitySetނLObjectContext_InvalidRelationshipState9�LObjectContext_InvalidTypeForStoreQuery!�@ObjectContext_MetadataHasChanged��hObjectContext_MultipleEntitySetsFoundInAllContainers]�lObjectContext_MultipleEntitySetsFoundInSingleContainer��JObjectContext_NoEntitySetFoundForTypeއHObjectContext_NoMappingForEntityTypeW�HObjectContext_NthElementInAddedState��FObjectContext_NthElementIsDuplicate^�<ObjectContext_NthElementIsNull�^ObjectContext_NthElementNotInObjectStateManagert�8ObjectContext_ObjectDisposedI�8ObjectContext_ObjectNotFound��FObjectContext_QualfiedEntitySetName��RObjectContext_RequiredMetadataNotAvailbleȌdObjectContext_SelectorExpressionMustBeMemberAccess��VObjectContext_StoreEntityNotPresentInClient�ZObjectContext_TwoPropertiesMappedToSameColumn@�`ObjectParameterCollection_DuplicateParameterNameĎ`ObjectParameterCollection_ParameterAlreadyExists^�^ObjectParameterCollection_ParameterNameNotFound�TObjectParameterCollection_ParametersLocked3�HObjectParameter_InvalidParameterName�HObjectParameter_InvalidParameterTypeɑ:ObjectQuery_InvalidConnectiong�:ObjectQuery_InvalidEmptyQuery��8ObjectQuery_InvalidQueryName�^ObjectQuery_QueryBuilder_InvalidFilterPredicate��XObjectQuery_QueryBuilder_InvalidGroupKeyList�\ObjectQuery_QueryBuilder_InvalidProjectionList5�ZObjectQuery_QueryBuilder_InvalidQueryArgumenti�TObjectQuery_QueryBuilder_InvalidResultType�RObjectQuery_QueryBuilder_InvalidSkipCountw�VObjectQuery_QueryBuilder_InvalidSortKeyList��PObjectQuery_QueryBuilder_InvalidTopCount��^ObjectQuery_QueryBuilder_NotSupportedLinqSource+�pObjectQuery_Span_IncludeRequiresEntityOrEntityCollectionЖ4ObjectQuery_Span_NoNavProp��HObjectQuery_Span_SpanPathSyntaxError0�>ObjectQuery_Span_WhiteSpacePath��BObjectQuery_UnableToMapResultTypeϘjObjectQuery_UnableToMaterializeArbitaryProjectionType2�HObjectQuery_UnableToMaterializeArray0�VObjectStateEntry_CannotAccessKeyEntryValues��NObjectStateEntry_CannotDeleteOnKeyEntry��TObjectStateEntry_CannotModifyKeyEntryState`�PObjectStateEntry_CannotModifyKeyProperty��bObjectStateEntry_CantModifyDetachedDeletedEntries�PObjectStateEntry_CantModifyRelationState��RObjectStateEntry_CantModifyRelationValues�BObjectStateEntry_CantSetEntityKey��`ObjectStateEntry_ChangeOnUnmappedComplexProperty�RObjectStateEntry_ChangeOnUnmappedProperty��hObjectStateEntry_ChangedInDifferentStateFromChanging6�^ObjectStateEntry_ComplexObjectUsedMultipleTimes��TObjectStateEntry_CurrentValuesDoesNotExisti�~ObjectStateEntry_EntityMemberChangedWithoutEntityMemberChanging��:ObjectStateEntry_InvalidStateX�dObjectStateEntry_InvalidTypeForComplexTypeProperty�pObjectStateEntry_NullOriginalValueForNonNullableProperty{�VObjectStateEntry_OriginalValuesDoesNotExist��ObjectStateEntry_RelationshipAndKeyEntriesDoNotHaveRelationshipManagers��ZObjectStateEntry_SetModifiedOnInvalidPropertyu�DObjectStateEntry_SetModifiedStatesۦZObjectStateEntry_SetOriginalComplexProperties?�LObjectStateEntry_SetOriginalPrimaryKeyR�XObjectStateEntry_UnableToEnumerateCollectionͨfObjectStateManager_AcceptChangesEntityKeyIsNotValid��vObjectStateManager_CannotChangeRelationshipStateEntityAddedh�zObjectStateManager_CannotChangeRelationshipStateEntityDeleted�pObjectStateManager_CannotChangeRelationshipStateKeyEntrym�bObjectStateManager_CannotFixUpKeyToExistingValuesū�ObjectStateManager_CannotGetRelationshipManagerForDetachedPocoEntity���ObjectStateManager_ChangeRelationshipStateNotSupportedForForeignKeyAssociations~�vObjectStateManager_ChangeStateFromAddedWithNullKeyIsInvalid��vObjectStateManager_ConflictingChangesOfRelationshipDetected��ObjectStateManager_DetachedObjectStateEntriesDoesNotExistInObjectStateManageri��ObjectStateManager_DoesnotAllowToReAddUnchangedOrModifiedOrDeletedEntity��\ObjectStateManager_EntityConflictsWithKeyEntry��FObjectStateManager_EntityNotTrackedO�pObjectStateManager_EntityTypeDoesnotMatchtoEntitySetTypeC�nObjectStateManager_GetEntityKeyRequiresObjectToHaveAKeys�:ObjectStateManager_InvalidKeyβfObjectStateManager_KeyPropertyDoesntMatchValueInKey��xObjectStateManager_KeyPropertyDoesntMatchValueInKeyForAttach��VObjectStateManager_NoEntryExistForEntityKey�RObjectStateManager_NoEntryExistsForObject�tObjectStateManager_ObjectStateManagerContainsThisEntityKey�rObjectView_AddNewOperationNotAllowedOnAbstractBindingList{�LObjectView_CannotReplacetheEntityorRow�HObjectView_CannotResolveTheEntitySet^�>ObjectView_IncompatibleArgument�RObjectView_IndexBasedInsertIsNotSupportedM�pObjectView_WriteOperationNotAllowedOnReadOnlyBindingList��VOfTypeExpressionElementTypeMustBeEntityType
�XOfTypeExpressionElementTypeMustBeNominalType{�LOfTypeOnlyTypeArgumentCannotBeAbstract�:OnlyStoreConnectionsSupportedA�:OperationOnReadOnlyCollection��.OperationOnReadOnlyItem�<OrderByKeyIsNotOrderComparable:�HParameterNameAlreadyDefinedDuplicate��2ParameterTypeNotSupported��,ParameterWasNotDefined1� ParserFatalErrora� ParserInputError��\PlaceholderExpressionMustBeCompatibleWithEdm64ۼFPlaceholderExpressionMustBeConstant=�fPlaceholderExpressionMustBeGreaterThanOrEqualToZero��RPlaceholderSetArgTypeIsNotEqualComparableн:PlusLeftExpressionInvalidType��<PlusRightExpressionInvalidType��pPocoEntityWrapper_UnableToMaterializeArbitaryNavPropType;�XPocoEntityWrapper_UnableToSetFieldOrProperty^�jPocoEntityWrapper_UnexpectedTypeForNavigationProperty�>PrecisionMustBeGreaterThanScale)�&PrecisionOutOfRanged�FPropertyNameAlreadyDefinedDuplicate�4PropertyTypeAlreadyDefined>�LProviderDidNotCreateACommandDefinition��JProviderDidNotReturnAProviderManifest��TProviderDidNotReturnAProviderManifestToken��FProviderDidNotReturnSpatialServices7�HProviderDoesNotSupportCreateDatabasev�TProviderDoesNotSupportCreateDatabaseScript��HProviderDoesNotSupportDatabaseExists��HProviderDoesNotSupportDeleteDatabase��4ProviderDoesNotSupportType�LProviderEscapeLikeArgumentReturnedNullN�:ProviderManifestTokenNotFound��@ProviderRequiresStoreCommandTree	�\ProviderReturnedNullForCreateCommandDefinition��NProviderReturnedNullForGetDbInformation��PProviderShouldOverrideEscapeLikeArgument1�.RefArgIsNotOfEntityType��PRefTypeIdentifierMustSpecifyAnEntityType>�0ReferenceToNonEntityType��TRelatedEndExprTypeMustBePromotoableToToEnd�BRelatedEndExprTypeMustBeReferencey�HRelatedEnd_CannotAddToFixedSizeArray���RelatedEnd_CannotCreateRelationshipBetweenTrackedAndNoTrackedEntities�|RelatedEnd_CannotCreateRelationshipEntitiesInDifferentContexts��RRelatedEnd_CannotRemoveFromFixedSizeArrayo�4RelatedEnd_CannotSerialize��dRelatedEnd_ConflictingChangeOfRelationshipDetectedr�ZRelatedEnd_EntitySetIsNotValidForRelationship+�TRelatedEnd_InvalidContainedType_Collection��RRelatedEnd_InvalidContainedType_ReferenceI�PRelatedEnd_InvalidEntityContextForAttach��LRelatedEnd_InvalidEntityStateForAttach8�XRelatedEnd_InvalidNthElementContextForAttach��RRelatedEnd_InvalidNthElementNullForAttach��TRelatedEnd_InvalidNthElementStateForAttach��JRelatedEnd_InvalidOwnerStateForAttach��VRelatedEnd_InvalidRelationshipFixupDetected��nRelatedEnd_LoadCalledOnAlreadyLoadedNoTrackedRelatedEnd"�dRelatedEnd_LoadCalledOnNonEmptyNoTrackedRelatedEnd��LRelatedEnd_MismatchedMergeOptionOnLoadY�,RelatedEnd_OwnerIsNullg�RRelatedEnd_RelatedEndNotAttachedToContextH�:RelatedEnd_RelatedEndNotFound��8RelatedEnd_UnableToAddEntity��fRelatedEnd_UnableToAddRelationshipWithDeletedEntity��>RelatedEnd_UnableToRemoveEntity��:RelationshipFromEndIsAmbiguos��tRelationshipManager_CannotGetRelatEndForDetachedPocoEntity��RelationshipManager_CircularRelationshipsWithReferentialConstraints�`RelationshipManager_CollectionAlreadyInitialized��xRelationshipManager_CollectionInitializeIsForDeserialization��rRelationshipManager_CollectionRelationshipManagerAttached��~RelationshipManager_InconsistentReferentialConstraintProperties=�dRelationshipManager_InitializeIsForDeserialization�fRelationshipManager_InvalidRelationshipManagerOwner��JRelationshipManager_InvalidTargetRole<�\RelationshipManager_NavigationPropertyNotFound&�PRelationshipManager_OwnerIsNotSourceTypej�^RelationshipManager_ReferenceAlreadyInitialized!�^RelationshipManager_RelationshipManagerAttachedM�tRelationshipManager_UnableToFindRelationshipTypeInMetadata���RelationshipManager_UnableToRetrieveReferentialConstraintPropertiesj�DRelationshipManager_UnexpectedNullE�RRelationshipManager_UnexpectedNullContext��XRelationshipNameInNavigationPropertyNotValid��<RelationshipTargetMustBeUniquev�6RelationshipToEndIsAmbiguos��0RelationshipTypeExpected��(RequiredFacetMissing�FResultingExpressionTypeCannotBeNulln�LRightSetExpressionArgsMustBeCollection��^RoleTypeInEdmRelationshipAttributeIsInvalidType�4RowCtorElementCannotBeNull��,RowTypeWithoutProperty��FSameRoleNameOnRelationshipAttribute&�NSameRoleReferredInReferentialConstraint��ScaleOutOfRangeb�FSelectDistinctMustBeEqualComparable��,SimilarRelationshipEnd0�`SourceTypeMustBePromotoableToFromEndRelationType0� SourceUriUnknown��JSpatialWithUseStrongSpatialTypesFalse��lSpatial_GeographyValueNotCompatibleWithSpatialServicesh�jSpatial_GeometryValueNotCompatibleWithSpatialServices��jSpatial_ProviderValueNotCompatibleWithSpatialServices9�NSpatial_WellKnownGeographyValueNotValid��LSpatial_WellKnownGeometryValueNotValid��|Spatial_WellKnownValueSerializationPropertyNotDirectlySettableB�<SqlGen_ApplyNotSupportedOnSql8��\SqlGen_CanonicalFunctionNotSupportedPriorSql10Z�PSqlGen_InvalidDatePartArgumentExpression��FSqlGen_InvalidDatePartArgumentValue�VSqlGen_NiladicFunctionsCannotHaveParametersc�TSqlGen_ParameterForLimitNotSupportedOnSql8��RSqlGen_ParameterForSkipNotSupportedOnSql8��TSqlGen_PrimitiveTypeNotSupportedPriorSql10��6SqlGen_TypedNaNNotSupported'�PSqlGen_TypedNegativeInfinityNotSupportedr�PSqlGen_TypedPositiveInfinityNotSupported��bSqlProvider_CredentialsMissingForMasterConnection*�|SqlProvider_DdlGeneration_CannotDeleteDatabaseNoInitialCatalogI�hSqlProvider_DdlGeneration_CannotTellIfDatabaseExists��^SqlProvider_DdlGeneration_MissingInitialCatalog��TSqlProvider_GeographyValueNotSqlCompatible2�RSqlProvider_GeometryValueNotSqlCompatible��HSqlProvider_IncompleteCreateDatabase��ZSqlProvider_IncompleteCreateDatabaseAggregate�DSqlProvider_InvalidGeographyColumn�BSqlProvider_InvalidGeometryColumnb�:SqlProvider_NeedSqlDataReader��JSqlProvider_Sql2008RequiredForSpatial,�HSqlProvider_SqlTypesAssemblyNotFound��TSqlSpatialServices_ProviderValueNotSqlType,�|SqlSpatialservices_CouldNotCreateWellKnownGeographyValueNoSrid���SqlSpatialservices_CouldNotCreateWellKnownGeographyValueNoWkbOrWktE�zSqlSpatialservices_CouldNotCreateWellKnownGeometryValueNoSrid���SqlSpatialservices_CouldNotCreateWellKnownGeometryValueNoWkbOrWkt-�*StackOverflowInParser��~StorageEntityContainerNameMismatchWhileSpecifyingPartialMapping�LStoreItemCollectionMustHaveOneArtifact��4SystemNamespaceEncountered�HTVFReturnTypeRowHasNonScalarProperty��fTableAndSchemaAreMutuallyExclusiveWithDefiningQueryTTargetRoleNameInNavigationPropertyNotValidTextNotAllowed,TooManyAssociationEnds:0TopAndLimitCannotCoexist�.TopAndSkipCannotCoexist(TypeArgumentBelowMin�2TypeArgumentCountMismatch�,TypeArgumentExceedsMax$,TypeArgumentIsNotValidT2TypeArgumentMustBeLiteral�BTypeDeclaredAsAttributeAndElement.TypeDoesNotSupportFacet\,TypeDoesNotSupportSpec� TypeKindMismatch�BTypeMismatchRelationshipConstaint7$TypeMustBeDeclared�(TypeMustBeEntityType�2TypeMustBeInheritableType*TypeMustBeNominalType[>TypeNameAlreadyDefinedDuplicate� TypeNameNotFound	.TypeNotInAssociationSet�	$TypeNotInEntitySet
FUnableToDetermineApplicationContext�
:UnableToDetermineStoreVersion�
2UnableToFindReflectedType�(UnableToLoadResource�.UnableToResolveAssemblyUnacceptableUri**UnexpectedRootElementz@UnexpectedRootElementNoNamespace
4UnexpectedTypeInCollection�
,UnexpectedXmlAttribute�
(UnexpectedXmlElement*UnexpectedXmlNodeType)6UnknownAstCommandExpressionH0UnknownAstExpressionType�>UnknownBuiltInAstExpressionType�@UnknownExpressionResolutionClass/4Update_AmbiguousForeignKey�FUpdate_AmbiguousServerGenIdentifier8Update_CircularRelationships�.Update_ConcurrencyError!,Update_ConstraintCycle(Update_DuplicateKeys�2Update_ErrorLoadingRecord]@Update_GeneralExecutionException�2Update_GeneratedDependent/dUpdate_InsertingOrUpdatingReferenceToDeletedEntity�*Update_InvalidChanges,Update_MappingNotFound�(Update_MissingEntity:Update_MissingFunctionMapping�8Update_MissingRequiredEntity�NUpdate_MissingRequiredRelationshipValue�4Update_MissingResultColumn`<Update_ModifyingIdentityColumn�HUpdate_NotSupportedComputedKeyColumn5>Update_NotSupportedIdentityType�>Update_NotSupportedServerGenKey�TUpdate_NullReturnValueForNonNullableMember` Update_NullValue�\Update_ReferentialConstraintIntegrityViolationbUpdate_RelationshipCardinalityConstraintViolation�xUpdate_RelationshipCardinalityConstraintViolationSingleValue*NUpdate_RelationshipCardinalityViolation�FUpdate_ReturnValueHasUnexpectedTypeELUpdate_SqlEntitySetWithoutDmlFunctions�dUpdate_UnableToConvertRowsAffectedParameterToInt32v<Update_UnsupportedCastArgument�@Update_UnsupportedExpressionKind� 8Update_UnsupportedExtentType!4Update_UnsupportedJoinType�!8Update_UnsupportedProjections"0Update_WorkspaceMismatch!#JValidator_BaseTypeHasMemberOfSameName�#DValidator_CollectionHasNoTypeUsage�#VValidator_CollectionTypesCannotHaveBaseType$.Validator_EmptyIdentityB$0Validator_FacetHasNoNamej$2Validator_FacetTypeIsNull�$NValidator_ItemAttributeHasNullTypeUsage�$2Validator_MemberHasNoNamef%HValidator_MemberHasNullDeclaringType�%@Validator_MemberHasNullTypeUsage�%FValidator_MetadataPropertyHasNoNameR&,Validator_NoKeyMembers�&FValidator_NullableEntityKeyProperty'TValidator_OSpace_ComplexPropertyNotComplex�'XValidator_OSpace_Convention_AmbiguousClrTypet(nValidator_OSpace_Convention_AttributeAssemblyReferenced.)`Validator_OSpace_Convention_BaseTypeIncompatible�)ZValidator_OSpace_Convention_BaseTypeNotLoadedM*ZValidator_OSpace_Convention_MissingOSpaceType�*fValidator_OSpace_Convention_MissingRequiredProperty�*jValidator_OSpace_Convention_MultipleTypesWithSameName-+lValidator_OSpace_Convention_NonMatchingUnderlyingTypes,hValidator_OSpace_Convention_NonPrimitiveTypeProperty�,bValidator_OSpace_Convention_RelationshipNotLoaded�,hValidator_OSpace_Convention_SSpaceOSpaceTypeMismatchG-~Validator_OSpace_Convention_ScalarPropertyMissginGetterOrSetter.DValidator_OSpace_Convention_Struct�.RValidator_OSpace_InvalidNavPropReturnTypeB/VValidator_OSpace_ScalarPropertyNotPrimitive�/DValidator_RefTypeHasNullEntityType�0HValidator_RefTypesCannotHaveBaseType�0.Validator_TypeHasNoName)18Validator_TypeHasNoNamespaceC1BValidator_TypeUsageHasNullEdmTypel1NValidator_UnsupportedEnumUnderlyingType�1$ValueNotUnderstood'2ViewGen_ANDQ2RViewGen_AssociationEndShouldBeMappedToKeyW2BViewGen_AssociationSetKey_Missing3FViewGen_AssociationSet_AsUserString�3VViewGen_AssociationSet_AsUserString_Negated�36ViewGen_CQ_DomainConstraint�3<ViewGen_CQ_PartitionConstraint4RViewGen_Cannot_Disambiguate_MultiConstantj4BViewGen_Cannot_Recover_Attributes�48ViewGen_Cannot_Recover_Types5$ViewGen_CommaBlankR5BViewGen_Concurrency_Derived_ClassV5JViewGen_Concurrency_Invalid_Condition�5:ViewGen_Duplicate_CProperties6LViewGen_Duplicate_CProperties_IsMappedy6 ViewGen_Entities�66ViewGen_EntityInstanceToken�68ViewGen_EntitySetKey_Missing�6<ViewGen_EntitySet_AsUserString7LViewGen_EntitySet_AsUserString_Negated%7ViewGen_ErrorF7 ViewGen_ErrorLogM7"ViewGen_ErrorLog2�7ViewGen_Extent�7&ViewGen_Foreign_Key�7RViewGen_Foreign_Key_ColumnOrder_IncorrectH8PViewGen_Foreign_Key_LowerBound_MustBeOnea9`ViewGen_Foreign_Key_Missing_Relationship_Mapping�9RViewGen_Foreign_Key_Missing_Table_Mapping�:VViewGen_Foreign_Key_Not_Guaranteed_InCSpace;\ViewGen_Foreign_Key_ParentTable_NotMappedToEnd�;PViewGen_Foreign_Key_UpperBound_MustBeOnev<RViewGen_HashOnMappingClosure_Not_Matching
=0ViewGen_InvalidCondition�=jViewGen_KeyConstraint_Update_Violation_AssociationSet�=`ViewGen_KeyConstraint_Update_Violation_EntitySet�>>ViewGen_KeyConstraint_Violation�>6ViewGen_Missing_Set_Mapping�?8ViewGen_Missing_Sets_MappingF@8ViewGen_Missing_Type_Mapping�@6ViewGen_NegatedCellConstantA0ViewGen_No_Default_ValueATViewGen_No_Default_Value_For_Configuration�A`ViewGen_NonKeyProjectedWithOverlappingPartitionsBViewGen_NotNull{BBViewGen_NotNull_No_Projected_Slot�BViewGen_Null�B8ViewGen_OneOfConst_IsEqualTo�B@ViewGen_OneOfConst_IsNonNullable�B>ViewGen_OneOfConst_IsNotEqualTo�B:ViewGen_OneOfConst_IsNotOneOfC4ViewGen_OneOfConst_IsOneOf!C>ViewGen_OneOfConst_IsOneOfTypes4C@ViewGen_OneOfConst_MustBeEqualTojCHViewGen_OneOfConst_MustBeNonNullable�C:ViewGen_OneOfConst_MustBeNull�C<ViewGen_OneOfConst_MustBeOneOf�CFViewGen_OneOfConst_MustNotBeEqualTo�CBViewGen_OneOfConst_MustNotBeOneOf�C0ViewGen_TableKey_MissingDViewGen_TuplesgD`Viewgen_CannotGenerateQueryViewUnderNoValidationnD:Viewgen_ConfigurationErrorMsg�DXViewgen_ErrorPattern_ConditionMemberIsMapped"EXViewgen_ErrorPattern_DuplicateConditionValue�EvViewgen_ErrorPattern_NotNullConditionMappedToNullableMember	FLViewgen_ErrorPattern_Partition_Disj_Eq�FPViewgen_ErrorPattern_Partition_Disj_Subs�GXViewgen_ErrorPattern_Partition_Disj_Subs_Ref�HNViewgen_ErrorPattern_Partition_Disj_UnkILViewgen_ErrorPattern_Partition_Eq_DisjyJLViewgen_ErrorPattern_Partition_Eq_SubsJKTViewgen_ErrorPattern_Partition_Eq_Subs_RefLJViewgen_ErrorPattern_Partition_Eq_Unk�LbViewgen_ErrorPattern_Partition_Eq_Unk_Association�M�Viewgen_ErrorPattern_Partition_MultipleTypesMappedToSameTable_WithoutCondition{NNViewgen_ErrorPattern_Partition_Sub_Disj7OJViewgen_ErrorPattern_Partition_Sub_EqPRViewgen_ErrorPattern_Partition_Sub_Eq_Ref�PLViewgen_ErrorPattern_Partition_Sub_Unk"RXViewgen_ErrorPattern_TableMappedToMultipleES;SnViewgen_MultipleFragmentsBetweenCandSExtentWithDistinct�S*Viewgen_NoJoinKeyOrFK�TVViewgen_NullableMappingForNonNullableColumnKU8Viewgen_QV_RewritingNotFound�U8Viewgen_RightSideNotDisjoint�V<WildcardEnumeratorReturnedNull�WOLa operación que ha intentado no es válida. El lector de datos está cerrado.DEl elemento del parámetro '{0}' de la colección no puede ser NULL.TEl elemento del parámetro '{0}' de la colección no puede ser NULL ni estar vacío.nEl formato de la cadena de inicialización no es conforme a la especificación que comienza en el índice {0}.TLlamar a '{0}' cuando el lector de datos está cerrado no es una operación válida.'No se admite el método GetSchemaTable.�La operación que ha intentado no es válida. El lector de datos anidados se ha cerrado de manera implícita, porque su lector de datos primarios se ha leído o se ha cerrado.3Error interno {0} del .NET Framework Data Provider.uEl desplazamiento del búfer '{1}' más los bytes disponibles '{0}' es mayor que la longitud del búfer especificado.%Valor no válido para la clave '{0}'./El sustituto de DataDirectory no es una cadena..La longitud de los datos '{0}' es menor que 0.xEl lector de datos tiene varios campos. No se permiten varios campos para los tipos de enumeración o primitivos de EDM.�El lector de datos es incompatible con el '{0}' especificado. Un miembro del tipo, '{1}', no tiene una columna correspondiente en el lector de datos con el mismo nombre.sEl lector de datos es incompatible con la asignación de funciones '{1}'. No existe la columna con el nombre '{0}'.�El lector de datos es incompatible con la asignación de funciones especificada, y no se podría determinar el tipo de una fila para la asignación de tipo.�No se puede crear un valor para la propiedad '{0}' de tipo '{1}'. Solo se admiten las propiedades de tipos de enumeración o primitivos.2El tipo de datos del parámetro {0} no es válido.SEl búfer de destino no es un desplazamiento válido (tiene un tamaño de {0}): {1}4El valor de enumeración de {0}, {1}, no es válido.8Uso no válido de los delimitadores de escape '[' o ']'.PValor del parámetro Size '{0}' no válido. El valor debe ser mayor o igual a 0.REl búfer de origen no es un desplazamiento válido (tiene un tamaño de {0}): {1}hLa consulta intentó llamar a '{0}' en una consulta anidada, pero '{0}' no tenía las claves apropiadas.3La consulta anidada no tiene las claves apropiadas.!Palabra clave no admitida: '{0}'.^Se debe especificar la propiedad CommandBehavior.SequentialAccess para este objeto de comando.CNo se admite la consulta anidada. Operation1='{0}' Operation2='{1}''Se intentó leer, pero no había datos.[No existe ninguna vista de asignación de consulta para el conjunto especificado '{0}.{1}'.�El intento de {2} en dataOffset '{0}' no es válido. Con CommandBehavior.SequentialAccess, sólo puede leer dataOffset '{1}' o mayores.�Intento no válido de leer el índice de columna '{0}'. Con CommandBehavior.SequentialAccess, solo se puede leer un índice de columna igual a '{1}' o mayor.^El proveedor ADO.NET Data Provider que está usando no admite árboles de comandos canónicos.ENo se puede tratar un TypeCode {0} desconocido devuelto por Type {1}.El alias '{0}' ya está en uso.[Todos los alias de un esquema deben ser únicos. El alias '{0}' ya se usó en este esquema.�Los artefactos SSDL deben tener como destino el mismo proveedor. El Provider '{0}' es diferente de '{1}' que se encontró antes.�Los artefactos SSDL deben tener como destino el mismo proveedor. ProviderManifestToken '{0}' es diferente de '{1}' que se encontró antes.OTodos los elementos de un esquema deben estar contenidos en el elemento Schema.�No se especificó EntitySet para End '{0}' en AssociationSet '{1}', y no se puede inferir porque EntitySet es ambiguo. Se podría usar más de un EntitySet; se debe especificar un elemento End explícito con un atributo EntitySet.]La función '{0}' y el tipo de espacio de {1} '{0}' no pueden tener el mismo nombre completo.�No se puede resolver la llamada de función, porque uno o más argumentos pasados coinciden con más de una sobrecarga de función.�Ya existe la función '{0}' con los mismos parámetros de tipo de espacio {1}. Asegúrese de que las sobrecargas de función no son ambiguas.�El nombre '{0}' es ambiguo. '{0}' está definido en el espacio de nombres '{1}' y en el espacio de nombres '{2}'. Para eliminar la ambigüedad, use un nombre completo o defina un alias de espacio de nombres.EEl argumento para la función debe ser un tipo de esquema conceptual.3El argumento para la función debe ser un tipo CLR.{0} está fuera del intervalo.=El valor {0} no es válido. Se esperaba un valor no negativo.LLos tipos de argumento '{0}' y '{1}' son incompatibles para esta operación.{La matriz de destino no es suficientemente larga. Compruebe arrayIndex, la longitud y los límites inferiores de la matriz.MEl ensamblado '{0}' especificado no existe en la enumeración de ensamblados.PSe requiere al menos un artefacto SSDL para la creación de StoreItemCollection.-Alias o espacio de nombres ({0}) desconocido.�NavigationProperty '{0}' no es válida. El tipo '{1}' de FromRole '{2}' en AssociationType '{3}' debe coincidir exactamente con el tipo '{4}' en el que está declarado esta NavigationProperty.=NavigationProperty no es válida. {0} no es una Relationship.@NavigationProperty no es válida. FromRole y ToRole son iguales.bNavigationProperty no es un elemento válido. El rol {0} no está definido en la Relationship {1}.�El parámetro {0} de la función '{1}' en el esquema '{2}' tiene una dirección de parámetro {3} no válida. Las direcciones de parámetro válidas son: In, Out e InOut.�El parámetro {0} de la función '{1}' en el esquema '{2}' tiene una dirección de parámetro {3} no válida. El único valor válido para este parámetro es In.kLa combinación de Precision y Scale no es válida. Precision ({0}) debe ser mayor o igual que Scale ({1}).\Los límites superior e inferior de la expresión BETWEEN deben tener un tipo y no ser NULL.dEl tipo de límite inferior de BETWEEN '{0}' no es compatible con el tipo de límite superior '{1}'.pEl tipo de límite inferior de BETWEEN '{0}' no tiene un orden comparable con el tipo de límite superior '{1}'.hEl tipo de valor de BETWEEN '{0}' no tiene un orden comparable con el tipo común de los límites '{1}'.�Se deben proporcionar los valores mínimos y máximos para '{0}' en el tipo '{1}', ya que '{0}' no está especificado como constante.�El valor del miembro de tipo de enumeración calculado no es válido de acuerdo con su tipo de datos 'http://www.w3.org/2001/XMLSchema:long'.�La función o la importación de funciones '{0}' no admite composición. No se puede llamar a una función o importación de funciones que no admita composición en una expresión de consulta.iNo se puede convertir el literal '{0}' a '{1}'. La especificación de literales numéricos no es válida./No se puede crear un conjunto múltiple vacío.=Un conjunto múltiple de valores NULL sin tipo no es válido.VNo se puede crear una instancia de '{0}' porque está definido como un tipo abstracto.oTodos los artefactos cargados en ItemCollection deben tener la misma versión. Se encontraron varias versiones.:'{0}' no se puede resolver en un tipo o función válidos.d'{0}' es un espacio de nombres del sistema y no se puede usar como Alias. Utilice algún otro Alias.EEl argumento '{0}' no es válido. El conjunto contiene un valor nulo.<La clase '{0}' no tiene ningún constructor sin parámetros.,No se admiten propiedades en tipos de valor.(No se admiten las propiedades indizadas.)No se admiten las propiedades estáticas.La propiedad getter no existe.La propiedad setter no existe.QNo se admiten las propiedades con StrongNameIdentityPermissionAttribute aplicado.ELa propiedad tiene un parámetro o tipo de valor devuelto inesperado.+La propiedad utiliza un tipo no compatible.�Ya se ha cargado el RelatedEnd con el nombre de rol '{0}' de la relación '{1}'. Esto puede ocurrir cuando se usa una opción de combinación NoTracking. Pruebe a utilizar una opción de combinación diferente al realizar consultas para el objeto relacionado.�No se pudo devolver EntityCollection de objetos de {0} para el nombre de rol '{1}' en la relación '{2}'. Asegúrese de que el EdmRelationshipAttribute que define esta relación tiene la RelationshipMultiplicity correcta para este nombre de rol. Para más información, consulte la documentación de Entity Framework.dEl método Load no puede devolver {0} cuando el objeto relacionado se encuentra en estado eliminado.�No se puede devolver la consulta de origen para esta EntityCollection o EntityReference cuando el objeto relacionado está en un estado agregado o en un estado separado y no se recuperó originalmente mediante la opción de combinación NoTracking.VLa relación '{0}' no coincide con ninguna relación definida en el modelo conceptual.�No se puede cambiar una propiedad de navegación que devuelve EntityCollection si la EntityCollection existente contiene elementos que no están en la nueva EntityCollection.`Las funciones que declaran texto de comando también declaran un nombre de función de almacén.ELas funciones que declaran texto de comando no pueden ser compuestas.�El parámetro especificado '{0}' de tipo '{1}' no es válido. Solo se admiten parámetros escalares (como Int32, Decimal y Guid).�LINQ to Entities no admite el uso especificado del parámetro '{0}' para generar un valor de tipo '{1}' en una consulta compilada.wEl tipo de parámetro especificado '{0}' no es válido. Solo se admiten valores escalares (como Int32, Decimal y Guid).�No se pudo notificar la propiedad '{0}' como cambiante. Esto ocurrió porque EntityComplexMemberChanging se llamó con un nombre de propiedad que no es una propiedad compleja. Para más información, consulte la documentación de Entity Framework.7Este objeto complejo ya está asociado con otro objeto.qNo se admiten tipos complejos que admitan valores NULL. La propiedad compleja '{0}' no debe admitir valores NULL.iLa función '{0}' no puede tener un ReturnType '{1}' de ComplexType y un EntitySet especificado a la vez.�No se admite la propiedad anidada de ComplexType'{0}' en el ReturnType '{1}' de la función '{2}'. Considere la posibilidad de reducir la propiedad anidada de ComplexType.tLas funciones e importaciones de funciones que pueden admitir composición deben declarar un tipo de valor devuelto._No hay compatibilidad subyacente para la operación '+' en cadenas dentro del proveedor actual.�El tipo '{0}' se deriva del tipo '{1}' que es el tipo para EntitySet '{2}'. El tipo '{0}' define los nuevos requisitos de simultaneidad que no se permiten para los subtipos de tipos EntitySet base.BNo se debe especificar la faceta (Facet) '{0}' para el tipo '{1}'.�No se pudo resolver '{0}' en el contexto o ámbito actual. Asegúrese de que todas las variables a las que se hace referencia están dentro del ámbito, que los esquemas requeridos están cargados y que las referencias a los espacios de nombres son correctas.3La función de agregado especificada no es válida.?DbAndExpression requiere argumentos con un tipo Boolean común.lLos argumentos de aplicación y la entrada de DbApplyExpression no pueden tener el mismo nombre de variable.AEl tipo sin signo '{0}' no se puede promover a un tipo con signo.NLos argumentos de DbArithmeticExpression deben tener un tipo común numérico.B{0} requiere argumentos con ResultTypes de colección compatibles.TDbExpressionBinding requiere una expresión de entrada con ResultType de colección.bEl nombre de variable especificado no es válido. Los nombres de variable no pueden estar vacíos.iNo se pudo inferir un ResultType válido a partir de ResultTypes de las expresiones 'Then' especificadas.JDbCaseExpression requiere un número igual de expresiones 'When' y 'Then'.FNo se permite la conversión solicitada: del tipo '{0}' al tipo '{1}'.DataSpace no es válido.9El nombre de parámetro especificado '{0}' no es válido.ADbComparisonExpression requiere argumentos con tipos comparables.cEl tipo '{0}' no coincide con el tipo de enumeración de EDM '{1}' ni con su tipo subyacente '{2}'.�Solo se puede usar tipos de enumeración o primitivos como tipos de valor constantes. DbConstantExpression no se puede crear mediante una instancia de tipo '{0}'.JEl valor especificado no es una instancia de un tipo de constante válido.8El valor especificado no es una instancia de tipo '{0}'.wEl tipo de relación '{1}' no ha declarado un extremo de relación denominado '{0}' desde MetadataWorkspace de destino.GNo se encontró EntityContainer '{0}' en MetadataWorkspace de destino. ENo se encontró EntitySet '{0}.{1}' en MetadataWorkspace de destino. BNo se encontró la función '{0}' en MetadataWorkspace de destino.]El tipo '{1}' del MetadataWorkspace de destino no declara la propiedad de navegación '{0}'. aEl tipo '{1}' no ha declarado una propiedad denominada '{0}' desde MetadataWorkspace de destino. 7MetadataWorkspace de destino no contiene el tipo '{0}'.5DbCrossJoinExpression requiere al menos dos entradas.�Las entradas de DbCrossJoinExpression especificadas contienen enlaces de expresión con un nombre de variable duplicado, '{2}'. La primera ocurrencia está en el índice {0}, la segunda está en el índice {1}. ADbDerefExpression requiere un argumento de un tipo de referencia.cLa operación 'Distinct' no se puede aplicar a la colección ResultType del argumento especificado.�Cuando se especifica unwrapSingleProperty, la expresión de argumento debe tener el siguiente ResultType: CollectionType con un tipo de elemento estructurado que declara exactamente una propiedad. 1El árbol de comandos especificado no es válido.�ResultType de la expresión especificada no es compatible con el tipo requerido. La expresión ResultType es '{0}' pero el tipo requerido es '{1}'. ALa lista de expresiones tiene un número incorrecto de elementos.]Los extremos de la relación especificada no están definidos por el mismo tipo de relación.�El tipo de resultado del método '{0}' no es compatible con este argumento de método. Se requiere un método que genere una instancia de un tipo derivado de DbExpression o un tipo anónimo con propiedades derivadas de DbExpression.�Las expresiones de elemento especificadas no pueden estar contenidas por la misma colección, porque no es posible inferir ningún tipo de elemento común a partir de sus ResultTypes.;El tipo '{1}' no declara una propiedad con el nombre '{0}'.QEl tipo de relación especificada no define un extremo con el nombre especificadolLos tipos de resultado de argumento especificados coinciden con varias sobrecargas de la función 'Edm.{0}'.TNo se encontró ninguna función 'Edm.{0}' con los tipos de argumento especificados.`Los metadatos de función utilizados en DbFunctionExpression no pueden incluir texto de comando.�Los metadatos de función utilizados en DbFunctionExpression deben permitir la composición. Las funciones que no admiten composición o las funciones que incluyen texto de comando no se permiten en las expresiones. Dichas funciones sólo se pueden ejecutar de manera independiente.lLos metadatos de función utilizados en DbFunctionExpression no pueden tener un tipo de valor devuelto void.QNo es posible utilizar los metadatos especificados porque no son de solo lectura.NEl proveedor actual no admite ningún tipo que sea compatible con Edm.Boolean.LEl proveedor actual no admite ningún tipo que sea compatible con Edm.Int32.MEl proveedor actual no admite ningún tipo que sea compatible con Edm.String.z{0} requiere un argumento de expresión con un tipo de resultado polimórfico que sea compatible con el argumento de tipo.0El tipo especificado no es polimórfico: '{0}'. /La expresión '{0}' es de un tipo no admitido. :DbEntityRefExpression requiere un argumento de EntityType.BDbRefKeyExpression requiere un argumento de un tipo de referencia.ZDbGroupExpressionBinding requiere una expresión de entrada con una colección ResultType.uEl nombre de variable de grupo especificado no es válido. Los nombres de variables de grupo no pueden estar vacíos.�No se puede usar un agregado con el nombre '{0}' porque las claves de grupo especificadas incluyen una clave con el mismo nombre.2Se necesita al menos un agregado o clave de grupo.}La clave de grupo especificada no es válida porque no se puede realizar la comparación de igualdad en su ResultType: '{0}'.jSe puede especificar como máximo un DbGroupAggregate en la lista de agregados de una DbGroupByExpression.<Una colección de '{0}' no es un argumento válido para {1}.SEl argumento para DbIsNullExpression no puede tener ResultType como CollectionType.pEl argumento para DbIsNullExpression debe hacer referencia a un tipo primitivo, de enumeración o de referencia.cLos argumentos izquierdo y derecho de DbJoinExpression no pueden tener el mismo nombre de variable.JEl límite debe ser DbConstantExpression o DbParameterReferenceExpression.)El límite debe ser un ResultType entero.3El límite debe tener un valor que no sea negativo.vEl miembro especificado no está asociado con el mismo MetadataWorkspace o espacio de datos que el árbol de comandos.]EntitySet especificado no es válido porque su propiedad EntityContainer tiene un valor NULL.tEntitySet especificado no está asociado con el mismo MetadataWorkspace o modelo de datos que el árbol de comandos.VEntityType especificado no es válido porque su colección de KeyMembers está vacía.YEntityType especificado no es válido porque su propiedad KeyMembers tiene un valor NULL.wLa función especificada no está asociada con el mismo MetadataWorkspace o espacio de datos que el árbol de comandos.�El parámetro de función especificado no está asociado con el mismo MetadataWorkspace o modelo de datos que el árbol de comandos._La función especificada no es válida porque su propiedad ReturnParameter tiene un valor NULL.rEl tipo especificado no está asociado con el mismo MetadataWorkspace o modelo de datos que el árbol de comandos.NDbNewInstanceExpression no puede crear una instancia del tipo abstracto '{0}'.ODbNewInstanceExpression no puede crear una instancia de tipo '{0}' sin miembro.Se requiere un CollectionType.�La entidad relacionada especificada no es compatible con este nuevo constructor de instancias. La instancia del constructor no es una instancia del EntityType requerido por el extremo de origen de la entidad relacionada.:Se requiere una colección, una entidad o un tipo de fila.:DbNotExpression requiere un argumento con un tipo Boolean.>DbOrExpression requiere argumentos con un tipo Boolean común.XSe requiere una propiedad Instance de tipo DbExpression para una propiedad de instancia.tDbRefExpression requiere un EntityType de la misma jerarquía que EntityType de EntitySet al que se hace referencia.:No se admite la navegación de relaciones de composición.fLa navegación especificada requiere un origen de navegación de un tipo que sea compatible con '{0}'.�El End de la relación de destino especificada no está declarado por el mismo tipo de relación que el End de la relación de origen especificada.kPara este argumento se requiere un End de la relación de destino con multiplicidad de 'One' o 'ZeroOrOne'.SEl End de la relación de destino es el mismo que el End de la relación de origen.�La expresión de referencia de la entidad de destino especificada no es válida porque no produce una referencia a una entidad del mismo tipo o de un subtipo de EntityType al que el End de destino especificado hace referencia.\La expresión de referencia de la entidad de destino debe tener un ResultType de referencia.ECount debe ser DbConstantExpression o DbParameterReferenceExpression.$Count debe ser un ResultType entero..Count debe tener un valor que no sea negativo.mLos especificadores de intercalación no pueden estar vacíos o estar compuestos sólo de espacios en blanco.lUn especificador de intercalación sólo es válido para una clave de ordenación con una cadena ResultType.FLas expresiones DbSortClause deben tener un tipo con orden comparable.gError al preparar la definición de la función '{0}'. Vea la excepción interna para obtener detalles.�El tipo de resultado '{0}' especificado en la declaración de la función '{1}' no coincide con el tipo de resultado '{2}' de la definición de función.�La definición de la función '{0}' contiene una referencia directa o indirecta a sí misma. No se admiten las definiciones de función recursivas.�La función '{0}' no tiene una expresión de definición. Las funciones definidas por el usuario necesitan una expresión de definición para que se ejecuten correctamente.({0} requiere un argumento de colección.sEl nombre '{2}' se especificó dos veces, en el índice {0} y en el índice {1}. No se permiten nombres duplicados.<Una lista vacía no es un valor válido para este argumento.tLa expresión especificada contiene varias referencias al parámetro '{0}' que tienen diferentes tipos de resultado.dLa expresión especificada contiene {0} metadatos de un espacio de datos distinto al destino, '{1}'.qLa expresión especificada contiene {0} metadatos de un área de trabajo distinta al área de trabajo de destino.ULa variable '{0}' a la que se hace referencia no está definida en el ámbito actual.�ResultType de la variable '{0}' a la que se hace referencia no coincide con el tipo especificado en esta expresión de referencia de variable.SEl tipo CREATEREF '{0}' no es un subtipo o supertipo de EntitySet EntityType '{1}'.aEl tipo CREATEREF debe especificar EntityType. La especificación de tipo '{0}' representa '{1}'.expresión con alias-importación de espacios de nombres con aliasexpresión lógica ANDexpresión ANYELEMENTcláusula APPLYexpresión BETWEENexpresión CASEexpresión CASE/ELSEexpresión CASE/WHEN/THENexpresión CAST*elemento de cláusula ORDER BY intercalado!definición de tipo de colecciónexpresión de comandoexpresión CREATEREFexpresión DEREFoperación de divisiónexpresión ELEMENTexpresión equalsidentificador de escapeexpresión EXCEPTexpresión EXISTSlista de expresionesexpresión FLATTENcláusula FROM/APPLYcláusula FROMelemento de cláusula FROMlista de cláusulas FROMcláusula FROM/JOINfunción '{0}()'definición de funciónexpresión greater than!expresión greater than or equalscláusula GROUP BYExpresión GROUPPARTITIONpredicado HAVING
identificadorexpresión de conjunto INexpresión INTERSECTexpresión IS NOT NULLexpresión IS NOT OFexpresión IS NULLexpresión IS OFcláusula JOINcláusula JOIN/ONexpresión KEYexpresión less thanexpresión less than or equalsexpresión LIKEsubcláusula ORDER BY/LIMITliteral constanteexpresión de acceso a miembros'constructor de tipo, método o funciónoperación de restaoperación de módulooperación de multiplicaciónconstructor MULTISET#importación de espacios de nombres,lista de importación de espacios de nombresexpresión NAVIGATEexpresión lógica NOTexpresión NOT BETWEENexpresión not equalsexpresión de conjunto NOT INexpresión NOT LIKEliteral NULLexpresión OFTYPEexpresión OFTYPE ONLYexpresión lógica ORcláusula ORDER BYelemento de cláusula ORDER BYexpresión OVERLAPSexpresión entre paréntesisoperación de sumaexpresión de consultainstrucción de consultaexpresión REF!definición de tipo de referenciaexpresión RELATIONSHIP!lista de expresiones RELATIONSHIPconstructor ROWdefinición de tipo de filacláusula SELECTcláusula SELECT VALUEexpresión SETidentificador simplesubcláusula ORDER BY/SKIPsubcláusula TOPexpresión TREATconstructor de tipo '{0}'nombre de tipo8nombre de tipo con argumentos de especificación de tipooperación de unario menosoperación de unario másexpresión UNIONexpresión UNION ALLpredicado WHERE8Se detectó un ciclo en la jerarquía de tipos de '{0}'.DatosActualización1Parámetros de entrada, salida o bidireccionales.CTamaño de tipos de datos de longitud variable (cadena y matrices).�Cuando lo utiliza DataAdapter.Update, el nombre de la columna de origen utilizado para encontrar el nombre de DataSetColumn en ColumnMappings. Copia un valor entre el parámetro y una fila de datos.�Cuando lo usa DataAdapter.Update (sólo UpdateCommand), versión del valor DataRow que se usa para actualizar el origen de los datos.[El argumento DEREF debe ser un tipo de referencia. El argumento pasado es un tipo de '{0}'.QSolo se permiten valores predeterminados para los tipos primitivos no espaciales.�{0} no se pudo registrar con MetadataWorkspace porque su versión ('{1}') es diferente de la versión ('{2}') ya asociada a MetadataWorkspace./La anotación '{0}' ya se ha definido en '{1}'."El End Name {0} ya está definido.sTodos los nombres de miembros de EntityContainer deben ser únicos. Ya hay definido un miembro con el nombre '{0}'.�Ya se ha definido EntitySet '{0}' con esquema '{1}' y tabla '{2}'. Cada EntitySet debe hacer referencia a una tabla y esquema únicos.BLos miembros de una enumeración tienen que tener nombres únicos.dUn miembro con nombre {0} no se puede definir en la clase {1}. Se define en la clase antecesora {2}.�Cada nombre de miembro de EntityContainer debe ser único. El miembro '{0}' ya está definido en EntityContainer '{1}'. Debido a que EntityContainer '{2}' amplía EntityContainer '{1}', no puede haber un miembro con el mismo nombre en EntityContainer '{2}'.�El elemento Key especificado en EntityType '{0}' no es válido. Se hace referencia a la propiedad '{1}' más de una vez en el elemento Key.�Los parámetros de Function '{0}' se convierten al tipo del lado conceptual '{1}' y la función con los mismos parámetros de tipo del lado conceptual ya existe. Asegúrese de que las sobrecargas de función no son ambiguas.�Ya existe la función insertada '{0}' con los mismos parámetros. Asegúrese de que las sobrecargas de función no son ambiguas.2Sólo se permite un elemento de {0} por relación.
Tipo anónimoTipo de clausurauNo se admiten llamadas al método genérico CreateOrderedEnumerable en el resultado de una consulta LINQ to Entities.,Se detectó un ciclo en una expresión LINQ.�El método especificado '{0}' en el tipo '{1}' no se puede convertir en una expresión de almacén de LINQ to Entities porque el parámetro {2} de su atributo EdmFunction está vacío.�El método especificado '{0}' en el tipo '{1}' no se puede convertir en una expresión de almacén de LINQ to Entities porque su tipo de valor devuelto no coincide con el de la función especificada por el atributo EdmFunction.AEsta función puede invocarse únicamente desde LINQ to Entities.nSólo es posible construir consultas LINQ to Entities desde instancias que implementan la interfaz IQueryable.�'{0}' no es un tipo de metadatos válido para las operaciones de filtrado de tipos. El filtrado de tipos sólo es válido en tipos complejos y tipos de entidad.uEste método admite la infraestructura de LINQ to Entities y no está pensado para usarlo directamente en el código.:No se admite el miembro '{0}' en una propiedad o un campo.;No se admiten indizadores de propiedad en LINQ to Entities.�El método 'Skip' sólo se admite para entradas ordenadas en LINQ to Entities. Se debe llamar antes al método 'OrderBy' que al método 'Skip'.[El método ThenBy debe ir después del método OrderBy o de otra llamada al método ThenBy.\El parámetro '{0}' no se enlazó a la expresión de consulta LINQ to Entities especificada.�Una propiedad de navegación de tipo '{0}' no es válida. Se esperaba '{1}' o una sola implementación de '{2}', pero se encontró '{3}'.'Enlace LINQ desconocido del tipo '{0}'.+Expresión LINQ desconocida del tipo '{0}'.�El miembro de tipo especificado '{0}' no se admite en LINQ to Entities. Sólo se admiten inicializadores, miembros de entidades y propiedades de navegación de entidades.vLa expresión LINQ especificada de tipo '{0}' no se puede convertir en una expresión de almacén de LINQ to Entities.wEl miembro especificado '{0}' en el tipo '{1}' no se puede convertir en una expresión de almacén de LINQ to Entities.wEl método especificado '{0}' en el tipo '{1}' no se puede convertir en una expresión de almacén de LINQ to Entities.�El método especificado '{0}' en el tipo '{1}' no se puede convertir en una expresión de almacén de LINQ to Entities porque uno o varios de los argumentos que se han pasado coinciden con más de una sobrecarga de función.�El método especificado '{0}' en el tipo '{1}' no se puede convertir en una expresión de almacén de LINQ to Entities porque ninguna sobrecarga coincide con los argumentos que se han pasado.�La expresión LINQ especificada del tipo '{0}' no se puede traducir a una expresión equivalente de almacén de LINQ to Entities específica para el proveedor que sea válida.�El miembro especificado '{0}' en el tipo '{1}' no se puede traducir a una expresión equivalente de almacén de LINQ to Entities específica para el proveedor que sea válida.vEl método '{0}' se admite únicamente en LINQ to Entities cuando el argumento es una variable o un literal de cadena.uEn constructores e inicializadores, sólo se admiten enlaces de parámetros de campo o propiedad en LINQ to Entities.�No se pudo convertir el tipo '{0}' al tipo '{1}'. LINQ to Entities sólo admite la conversión a tipos de enumeración o primitivos de EDM.�Las consultas LINQ to Entities no admiten la conversión a Decimal, porque no es posible inferir la información de escala y precisión necesaria.{No es posible comparar elementos de tipo '{0}'. Solo se admiten tipos primitivos, tipos de enumeración y tipos de entidad.�No se pudo crear un valor de constante de tipo '{0}'. Solo se admiten tipos primitivos o tipos de enumeración en este contexto.VEn LINQ to Entities, sólo se admiten inicializadores y constructores sin parámetros.oLa expresión LINQ especificada contiene referencias a consultas que están asociadas con contextos diferentes.bUn tipo que implementa IEnumerable '{0}' no se puede inicializar en una consulta LINQ to Entities.MNo se admite el tipo de nodo de la expresión LINQ '{0}' en LINQ to Entities.�El tipo '{0}' aparece en dos inicializaciones estructuralmente incompatibles dentro de una sola consulta LINQ to Entities. Un tipo se puede inicializar en dos lugares dentro de la misma consulta, pero sólo si se establecen las mismas propiedades en ambos lugares y dichas propiedades se establecen en el mismo orden.bLINQ to Entities sólo admite el método 'Include' cuando el argumento es una constante de cadena.dEn LINQ to Entities, se admiten únicamente elementos inicializadores de lista con un solo elemento.�No se admite la expresión '{0}' con una entrada de tipo '{1}' y una comprobación de tipo '{2}'. Sólo se admiten tipos de entidades y tipos complejos en consultas LINQ to Entities.yEl tipo de selector clave para la llamada al método '{0}' no es comparable en el proveedor de almacenamiento subyacente.iEl método 'MergeAs' solo se admite en LINQ to Entities cuando el argumento es una constante MergeOption.}LINQ to Entities no reconoce el método '{0}' del método, y este método no se puede traducir en una expresión de almacén.�El método '{0}' no se puede traducir a una expresión de almacén de LINQ to Entities. Considere la posibilidad de utilizar el método '{1}' en su lugar.�El método 'First' sólo se puede usar como operación de consulta final. Considere la posibilidad de utilizar en su lugar el método 'FirstOrDefault' en esta instancia.�Los métodos 'Single' y 'SingleOrDefault' solo se pueden usar como una operación de consulta final. Considere la posibilidad de usar el método 'FirstOrDefault' en esta instancia.]No es posible construir la entidad o el tipo complejo '{0}' en una consulta LINQ to Entities.�No se puede crear un valor de constante null de tipo '{0}'. Solo se admiten tipos de entidad, tipos de enumeración o tipos primitivos en este contexto.LEl método '{0}' no se admite cuando se llama a una instancia de tipo '{1}'.GEste método no se admite sobre un resultado de consulta materializada.xNo se pueden comparar EntityKeys que hagan referencia a los tipos '{0}' y '{1}' porque no comparten un supertipo común.gNo se puede comparar '{0}'. Solo se admiten tipos primitivos, tipos de enumeración y tipos de entidad.Miembro '{0}' de 
tipo '{0}'{El método '{0}' sólo se admite en LINQ to Entities cuando el argumento '{1}' es una constante de tipo entero no negativa.wEl método '{0}' sólo se admite en LINQ to Entities cuando no hay caracteres de recorte especificados como argumentos._No se pudo procesar el tipo '{0}', porque no tiene ninguna asignación conocida al valor layer.mEl parámetro ObjectContext ('{0}') en una consulta compilada sólo se puede usar como origen para consultas.aEl método '{0}' no se admite en LINQ to Entities cuando el argumento '{1}' tiene el valor '{2}'.`El método '{0}' sólo se admite en LINQ to Entities cuando el argumento '{1}' es una constante.�El tipo del objeto TypeUsage especificado para el parámetro de metadatos no es compatible con el tipo al que pertenece EdmMember.�La EDMVersion de la colección de elementos {0} no es una EDMVersion compatible con el tiempo de ejecución. Las versiones compatibles son {1}.eEl operador ELEMENT no se admite en esta versión de Entity Framework. Se reserva para un uso futuro.[El elemento CommandText está vacío. Agregue el texto del comando al elemento CommandText.bEl elemento DefiningQuery está vacío. Agregue el texto de la consulta al elemento DefiningQuery.h{0} no contiene una definición de esquema, o el XmlReader proporcionado se inició al final de archivo.{0} no es válido.aXmlReader de origen no contiene una definición de esquema o se ha iniciado al final del archivo.QCada Name y PluralName de una relación debe ser único. '{0}' ya se ha definido.�End '{0}' de la relación '{1}' no puede tener la operación especificada, ya que su multiplicidad es '*'. No es posible especificar operaciones en extremos con multiplicidad '*'.BEnd '{0}' en la relación '{1}' debe especificar la multiplicidad.|Este comando de almacenamiento no se puede clonar, porque el proveedor de almacenamiento subyacente no admite la clonación.No es posible inferir el DbType correcto basándose en el valor que se ha establecido para la propiedad EntityParameter.DbType.cNo se puede recuperar el valor de propiedad CommandText porque la propiedad CommandTree no es null.cNo se puede recuperar el valor de propiedad CommandTree porque la propiedad CommandText no es null.No se ha cerrado la conexión.�Este EntityCommand se basa en una definición de comando preparada y no se puede volver a preparar. Para crear un comando equivalente con otros parámetros, cree una nueva definición de comando y llame a su método CreateCommand.dNo se puede establecer el valor de propiedad CommandText porque la propiedad CommandTree no es null.dNo se puede establecer el valor de propiedad CommandTree porque la propiedad CommandText no es null.eNo se puede realizar la operación de actualización porque la conexión del adaptador está abierta.lSe produjo un error al ejecutar la definición del comando. Vea la excepción interna para obtener detalles.vSe produjo un error mientras se preparaba la definición del comando. Vea la excepción interna para obtener detalles.fSe produjo un error mientras se ejecutaba el comando. Vea la excepción interna para obtener detalles.uEl comando no se pudo ejecutar, porque los metadatos de la conexión son incompatibles con los metadatos del comando.GEntityConnection sólo se puede construir con una DbConnection cerrada.La conexión no está abierta.interrumpidacerradamFalta alguna información necesaria en la cadena de conexión. La palabra clave '{0}' es siempre obligatoria.]Se debe establecer una cadena de conexión en la conexión antes de intentar esta operación.�El comando todavía está asociado con un lector de datos abiertos. No es posible realizar cambios en este comando y este comando no se puede ejecutar hasta que el lector de datos se haya cerrado.@El parámetro '{0}' de DbConnection no contiene ProviderFactory.�El tipo de generador del proveedor de almacén '{0}' no implementa la interfaz IServiceProvider. Use un proveedor de almacén que implemente esta interfaz.bLos parámetros deben tener un ParameterName único. Se descubrió una segunda instancia de '{0}'.�Uno de los parámetros de EntityParameterCollection es NULL o está vacío. Un nombre debe empezar con una letra y contener sólo letras, números y caracteres de subrayado. $EdmType '{0}' no es un tipo escalar.SEdmType '{0}' no es coherente con el DbType proporcionado para el parámetro '{1}'.�Se produjo un error mientras se iniciaba una transacción en la conexión del proveedor. Vea la excepción interna para obtener detalles.tSe produjo un error mientras se cerraba la conexión del proveedor. Vea la excepción interna para obtener detalles.oLa ejecución del comando requiere una conexión abierta y disponible. El estado de la conexión actual es {0}.QCuando se especifica la palabra clave 'Name' no se permiten otras palabras clave.�El proveedor de datos de almacenamiento no devolvió información para la solicitud de {0}. Vea la excepción interna para obtener detalles.OEntityCommand.CommandText no es especificó para StoredProcedure EntityCommand.�La importación de funciones '{0}' admite composición. Solo se pueden ejecutar como procedimientos almacenados las importaciones de funciones que no admiten composición.{El tipo declarado de la propiedad de navegación {0}.{1} no es compatible con el resultado de la navegación especificada. �La conexión con nombre especificada no se encuentra en la configuración, no es apropiada para ser utilizada con el proveedor de EntityClient, o no es válida.�El parámetro '{0}' no es un parámetro de sólo entrada. El proveedor de EntityClient sólo permite parámetros de entrada cuando la propiedad CommandType se establece como CommandText.�El nombre de parámetro '{0}' no es válido. Un nombre de parámetro válido debe empezar con una letra y contener sólo letras, números y caracteres de subrayado.aEl proveedor de almacenamiento especificado no se encuentra en la configuración o no es válido.�El valor de EntityCommand.CommandText no es válido para un comando StoredProcedure. El valor EntityCommand.CommandText debe tener la forma 'ContainerName.FunctionImportName'.KLa transacción no está asociada a la conexión actual o se ha completado.>En MetadataWorkspace, {0} debe haberse registrado previamente.$No se admite la palabra clave '{0}'.xLa cadena de conexión de la conexión con nombre '{0}' no puede contener una palabra clave 'Name' en la configuración.=La propiedad EntityCommand.CommandText no se ha inicializado.NNo se puede realizar la operación porque el adaptador no tiene una conexión.LNo se puede realizar la operación porque el comando no tiene una conexión.�No se puede realizar la operación de actualización, porque la conexión del adaptador no está asociada con una conexión de almacenamiento válida.Error del proveedor subyacente.&Error del proveedor subyacente en {0}.rNo se puede usar EntityClient para crear una definición de comando a partir de un árbol de comandos de almacén.�Se devolvió un valor NULL después de llamar al método '{0}' en una instancia de proveedor de almacén de tipo '{1}'. Es posible que el proveedor de almacén no funcione correctamente.�No se permite ninguna modificación en la conexión una vez que los metadatos se han registrado ya sea abriendo una conexión o construyendo la conexión con MetadataWorkspace.�Se produjo un error mientras se leía en el lector de datos del proveedor de almacenamiento. Vea la excepción interna para obtener detalles.�El lector de datos devuelto por el proveedor de datos de almacenamiento no tiene bastantes columnas para la consulta solicitada.La conexión ya es una transacción y no puede participar en otra transacción. EntityClient no admite transacciones paralelas.>No se pudo cargar FunctionImport '{1}' en el contenedor '{0}'.cEl contenedor '{0}' especificado para FunctionImport no se encontró en el área de trabajo actual.�EntityParameter '{0}' debe tener un valor a partir del cual se pueda inferir DbType, o se pueda establecer un DbType compatible como valor de la propiedad EntityParameter.DbType.rLa importación de funciones '{0}' no se puede ejecutar porque no está asignada a una función de almacenamiento.nLos únicos valores EntityCommand.CommandType que admite el proveedor EntityClient son Text y StoredProcedure.WDbType '{0}' no es válido para la propiedad EntityParameter.DbType en el objeto '{1}'.'El valor especificado no es una cadena.3Ubicaciones de metadatos en la cadena de conexión.1Nombre de la conexión en la cadena de conexión.ENombre invariable del proveedor subyacente en la cadena de conexión.6Cadena de conexión interna en la cadena de conexión.dEl nombre de EntityContainer debe ser único. Ya se ha definido EntityContainer con el nombre '{0}'.VEntityContainer '{0}' no se puede ampliar. Especifique otro nombre de EntityContainer.ContextoConnectionString con nombreOrigen�La propiedad '{0}' en EntityType '{1}' no es válida. Todas las propiedades que son parte de EntityKey deben ser de tipo primitivo o de enumeración.�La propiedad '{0}' en EntityType '{1}' no es válida. Actualmente no se admiten las propiedades de EntityKey que son de tipo '{2}'.�La propiedad '{0}' en EntityType '{1}' no es válida. El tipo '{2}' de la propiedad se asigna a '{3}' y las propiedades de EntityKey que son de tipo '{4}' actualmente no se admiten.MLos valores de EntityKey no se pueden cambiar una vez que se han establecido.EIExtendedDataRecord proporcionado debe representar un objeto entidad.�No se pudo completar la operación solicitada, debido a que la propiedad EntityKey devolvió una EntityKey no coincidente en un objeto de tipo '{0}'.<EntityKey debe tener al menos un valor y un nombre de clave.yEntitySet '{0}' obtenido del área de trabajo de metadatos es incompatible con el EntitySet requerido por esta EntityKey.gEl objeto representado por IExtendedDataRecord '{0}' no coincide con EntityType para EntitySet ('{1}').�La lista proporcionada de pares clave-valor contiene un número incorrecto de entradas. Hay {1} campos clave definidos en el tipo '{0}', pero se proporcionaron {2}.wSe esperaba que el tipo del campo de clave '{0}' fuera '{1}', pero el valor proporcionado es actualmente de tipo '{2}'.8El nombre '{0}' contiene caracteres que no son válidos.�El nombre de EntitySet no puede ser NULL ni estar vacío, y debe calificarse con un nombre de EntityContainer que no sea NULL ni esté vacío.5EntityKey no contiene un nombre de EntitySet válido.�No se encontró la entrada obligatoria '{0}' en la entrada proporcionada. Los campos de clave definidos en el tipo '{1}' requieren esta entrada.�No se encontró ningún tipo de capa de objeto correspondiente para el campo de clave '{0}' cuyo tipo en la capa conceptual es '{1}'.PLos pares clave-valor que definen EntityKey no pueden ser NULL ni estar vacíos.�El campo de clave '{0}' no puede tener el valor NULL. Los campos de clave definidos en el tipo '{1}' requieren un valor que no sea NULL.|No se pudo completar la operación solicitada porque el objeto devolvió un valor NULL para el valor de propiedad EntityKey.MÍndice no válido {0} para esta EntityParameterCollection con {1} elementos.`Un EntityParameter con ParameterName '{0}' no está contenido en esta EntityParameterCollection.\Intentó quitar un EntityParameter que no está contenido en esta EntityParameterCollection.>Otra EntityParameterCollection ya contiene el EntityParameter.WEntityParameterCollection solo acepta objetos de tipo EntityParameter que no sean null.{No se puede establecer la propiedad '{0}' del tipo '{1}' porque la colección ya está establecida en una EntityCollection.�Ya se ha generado un tipo de proxy para el tipo de nivel de objeto '{0}'. Esto se produce cuando dos o más modelos diferentes en un AppDomain asignan el mismo tipo de nivel de objeto.TEl contenedor de entidades almacenado en el proxy no hace referencia al mismo proxy.�No hay información de metadatos disponible para el tipo de proxy de '{0}'. Esta excepción puede producirse cuando un tipo de proxy de una entidad se desasocia de un ObjectContext. Vea InnerException para obtener detalles.{Se ha infringido la restricción de multiplicidad. El rol '{0}' de la relación '{1}' tiene una multiplicidad de 1 ó 0..1.�Se produjo una infracción de la restricción de integridad referencial: no se puede cambiar una propiedad de clave principal que sea parte de una restricción de integridad referencial cuando el objeto dependiente es Unchanged, a menos que se establezca en el objeto principal de la asociación. Es necesario realizar un seguimiento del objeto principal y este no debe marcarse para su eliminación.]No se puede establecer EntityKey como EntityNotValidKey, NoEntitySetKey o una clave temporal.�No se pudo agregar ni adjuntar el objeto porque su EntityReference tiene un valor de propiedad EntityKey que no coincide con la EntityKey de este objeto.�No se pudo devolver EntityReference de tipo {0} para el nombre de rol '{1}' en la relación '{2}'. Asegúrese de que el EdmRelationshipAttribute que define esta relación tiene la RelationshipMultiplicity correcta para este nombre de rol. Para más información, consulte la documentación de Entity Framework.�Se produjo una infracción de la restricción de multiplicidad: EntityReference esperaba al menos un objeto relacionado, pero la consulta no devolvió ningún objeto relacionado del almacén de datos.�Se produjo una infracción de la restricción de multiplicidad de relaciones: EntityReference no puede tener más de un objeto relacionado, pero la consulta devolvió más de un objeto relacionado. Es un error irrecuperable.JEntitySet ya tiene EntityContainer, no se puede agregar a esta colección.BEl EntitySet '{0}' que se pasó no pertenece al modelo conceptual.IEntitySet {0} se basa en el tipo {1} que no tiene ninguna clave definida.kEl EntityType especificado para el parámetro de metadatos no es compatible con el EntitySet especificado. YVarias instancias de IEntityChangeTracker no pueden hacer referencia a un objeto entidad.]El valor '{0}' del miembro de tipo de enumeración '{1}' no se puede convertir al tipo '{2}'.@La expresión del operador CREATEREF no es un EntitySet válido.-La expresión especificada no puede ser NULL.6La expresión especificada debe ser de CollectionType.6La expresión especificada debe ser de tipo numérico.4La expresión especificada debe ser de tipo Boolean.D{0} debe hacer referencia a EntityType. El tipo pasado es {1} '{2}'.CEl tipo de expresión especificado debe ser comparable en igualdad.G{0} debe hacer referencia al tipo nominal. El tipo pasado es {1} '{2}'.:La expresión especificada no puede ser de CollectionType.QLa siguiente información puede resultarle útil para resolver el error anterior:JLa declaración de facetas requiere una declaración de atributos de tipo.>La faceta {0} no se permite para las propiedades del tipo {1}.?No se pueden especificar facetas para el tipo no escalar '{0}'.8No se encontró el tipo de modelo conceptual para '{0}'.*No se encontró el tipo de CLR para '{0}'.'No se encuentra el tipo CLR para '{0}'.CNo se pudo resolver la función de agregado '{0}' en este contexto.1No se pudo recuperar el manifiesto del proveedor.�La importación de funciones '{0}' tiene un parámetro de una colección o tipo de referencia. No se permiten parámetros de una colección o tipo de referencia en importaciones de funciones.�La importación de funciones '{0}' se ha declarado como que admite composición y efectos secundarios. Una importación de funciones puede admitir composición o efectos secundarios, pero no ambos.�En la importación de funciones '{0}' se especifica un conjunto de entidades y una ruta del conjunto de entidades. En la importación de funciones solo se puede especificar uno de estos valores, pero no ambos.zLa importación de funciones '{0}' devuelve entidades de tipo '{1}' que no pueden existir en el EntitySet '{2}' declarado.�La importación de funciones '{0}' tiene un parámetro que no acepta valores NULL. Solo se permiten parámetros que aceptan valores NULL en las importaciones de funciones.EFunctionImport '{0}' devuelve entidades pero no especifica EntitySet.bLa importación de funciones '{0}' especifica un conjunto de entidades pero no devuelve entidades.hEn FunctionImport '{1}', EntitySet '{0}' no es válida. No se pudo encontrar un EntitySet con el nombre.�El tipo de valor devuelto no es válido en FunctionImport '{0}'. FunctionImport debe devolver una colección de valores escalares o una colección de entidades.�El tipo de valor devuelto no es válido en FunctionImport '{0}'. FunctionImport debe devolver valores de tipo Scalar, Entity o ComplexType.�El tipo de valor devuelto no es válido en FunctionImport '{0}'. FunctionImport puede no tener ningún tipo de valor devuelto o puede devolver una colección de valores escalares, una colección de tipos complejos o una colección de entidades.�El tipo '{0}' no es válido en la función '{1}'. La función debe tener un tipo de valor devuelto y parámetros expresados en tipos primitivos en el lado conceptual.�El tipo '{0}' no es válido en la función '{1}'. La función debe tener un tipo de valor devuelto y parámetros expresados en tipos primitivos.]Se produjo una excepción '{0}' mientras se procesaba la consulta. Vea la excepción interna.Error de consulta generalnEl tipo que contiene las vistas generadas '{0}' debe derivar del tipo System.Data.Mapping.EntityViewContainer.bEl contenido de las vistas o los nombres base de EntitySet ha cambiado desde el tiempo de diseño.fEntitySet '{0}', para el que se ha especificado la vista, no se pudo encontrar en el área de trabajo.errordesconocidaadvertencia&La sintaxis de consulta no es válida.bNo se pueden utilizar EdmComplexTypeAttribute y EdmEntityTypeAttribute en el tipo genérico '{0}'._El operador GROUPPARTITION se permite únicamente en el contexto de una expresión de consulta.SERROR INTERNO: la variable de grupo debe estar presente en los ámbitos existentes.XEl tipo de expresión de clave de la cláusula GROUP BY debe ser comparable en igualdad.CLa cláusula HAVING debe estar precedida de una cláusula GROUP BY.\El tipo de expresión de clave CREATEREF no es compatible con el tipo de elemento EntityKey.NLa expresión de clave CREATEREF no es compatible con la estructura EntityKey.en la cláusula FROM actualen la cláusula GROUP BY,como nombre de columna en el constructor ROW!en la lista de proyección SELECT*El manifiesto del proveedor es incorrecto.�En EntityContainer '{4}', no se especificó el atributo Role del extremo con EntitySet '{0}' en AssociationSet '{1}', y hay varios extremos en la relación '{2}' que podrían coincidir con el tipo '{3}'. Proporcione el atributo Role para eliminar la ambigüedad del extremo.�En EntityContainer '{4}, no se proporcionó el Role para el End con EntitySet '{0}' en AssociationSet '{1}' y no hay Ends en la Relationship '{2}' que coincidan con el tipo '{3}'.�No se proporcionó el Role para el End con EntitySet {0} en AssociationSet {1} y el End encontrado coincide con uno que ya está definido. Cambie EntitySet a uno que tenga un tipo de End diferente en Relationship.4La expresión INNER JOIN debe tener un predicado ON.VNo se reconoce Action {0} en {1}. Las acciones válidas son: None, Cascade y Restrict.X'{0}' es una palabra reservada y no se puede usar como alias, a menos que sea de escape.OERROR INTERNO: el tipo de argumento para la función de agregado no es válido.2No se admite el tipo '{0}' en la expresión UNION.IBaseType ({0}) no es válido. BaseType para {1} debe ser otro EntityType.JBaseType ({0}) no es válido. BaseType para {1} debe ser otro ComplexType.NBaseType ({0}) no es válido. BaseType para {1} debe ser un tipo estructurado.7Los tipos de expresión THEN y ELSE no son compatibles.dLa expresión CASE/WHEN/THEN no es válida, porque todas las expresiones resultantes no tienen tipo.fLa expresión CAST no es válida. No existe una conversión válida desde el tipo '{0}' al tipo '{1}'.9La expresión de argumento CAST debe ser un tipo escalar.3El argumento de tipo CAST debe ser un tipo escalar.fItemCollection no es válido. Para el espacio de '{0}', CollectionType debe ser MappingItemCollection.�La colección de elementos de '{0}' no es válida. Asegúrese de que StorageMappingItemCollection se creó con las mismas instancias de colección de elementos registradas para el modelo conceptual y el modelo de almacenamiento.�El miembro complejo '{0}' del tipo '{1}' y el miembro complejo '{2}' del tipo '{3}' son incompatibles porque tienen un número de miembros diferentes.:La expresión de clave CREATEREF debe ser de tipo de fila.YEl tipo de argumento '{0}' no es compatible con la propiedad '{1}' del tipo formal '{2}'.�No es válido usar el constructor de tipos en el tipo '{0}'. Este tipo debe tener uno de los siguientes constructores: Entity, ComplexType o RelationType.PEl literal '{0}' de DateTimeOffset supera el rango de valores de DateTimeOffset.9El día '{0}' no es válido en el literal DateTime '{1}'.KEl día '{0}' no es válido para el mes '{1}' en el literal DateTime '{2}'.s'{0}' no es un miembro de tipo '{1}'. El tipo '{1}' es el resultado de desreferenciar una expresión de tipo '{2}'.�El valor predeterminado ({0}) no es válido para Binary. El valor debe tener la forma 0x123 donde 123 representa una secuencia no vacía de dígitos hexadecimales.YEl valor predeterminado ({0}) no es válido para Boolean. El valor debe ser true o false.^El valor predeterminado ({0}) no es válido para DateTime. El valor debe tener la forma '{1}'.dEl valor predeterminado ({0}) no es válido para DateTimeOffset. El valor debe tener la forma '{1}'.�El valor predeterminado ({0}) no es compatible con las facetas especificadas para Decimal. El valor debe ser un número decimal con una escala menor o igual que {1} y una precisión menor o igual que {2}.aEl valor predeterminado ({0}) no es válido. El valor debe ser un punto flotante entre {1} y {2}.�El valor predeterminado ({0}) no es válido para GUID. El valor debe ir entre comillas simples y tener la forma 'dddddddd-dddd-dddd-dddd-dddddddddddd'.SEl valor predeterminado ({0}) no es válido. Se esperaba un entero entre {1} y {2}.ZEl valor predeterminado ({0}) no es válido para Time. El valor debe tener la forma '{1}'.EEl argumento DISTINCT/ALL no es válido en los constructores de tipo.OEl argumento DISTINCT/ALL sólo es válido para funciones de agregado de grupo.El contenido de Documentation no es válido. El elemento Documentation solo puede contener elementos Summary y LongDescription.BEl motor de tiempo de ejecución no admite la versión de EDM {0}.6Los identificadores de escape no pueden estar vacíos.KEl texto de consulta se compone sólo de comentarios y/o espacio en blanco.JEl texto de consulta está vacío o se compone sólo de espacio en blanco.XEl extremo (End) {0} tiene un tipo (Type) diferente al EntitySet al que hace referencia.hNo hay ningún Role con nombre '{0}' definido en la relación '{1}'. Compruébelo e inténtelo de nuevo.9No se encontró ningún EntityContainer con nombre '{0}'.1El End {0} no coincide con los Ends del tipo {1}.vEntityParameterCollection solo acepta objetos de tipo EntityParameter que no sean null; no acepta objetos de tipo {0}.aLos objetos de EntityType '{0}' y '{1}' son incompatibles porque no comparte un supertipo común.HEntitySet con el nombre '{0}' especificado no existe en EntityContainer.cNo se encontró EntitySet {0} al que se hace referencia para End {1} en EntityContainer contenedor.eEntitySet no puede ser de tipo {0}. El tipo de propiedad debe ser EntityType o AssociationEntityType.�La entidad '{0}' en el tipo '{1}' y la entidad '{2}' en el tipo '{3}' son incompatibles porque no comparten un supertipo común.YEl tipo especificado no se puede usar como el tipo subyacente de un tipo de enumeración./El identificador de escape '{0}' no es válido.gEl identificador de escape '{0}' tiene delimitadores de apertura ('[') y cierre (']') que no coinciden.:La expresión se ha clasificado como {0}; se esperaba {1}.hEl archivo especificado '{0}' tiene la extensión '{1}' que no es válida. La extensión válida es {2}.<El argumento FLATTEN debe ser una colección de colecciones.�Las propiedades a las que hace referencia Principal Role {0} deben ser exactamente idénticas a la clave de EntityType {1} a la que hace referencia Principal Role en la restricción de relación para Relationship {2}. Asegúrese de que todas las propiedades de clave se especifican en Principal Role.sEl identificador '{0}' no es válido porque está contenido en una función de agregado o en la cláusula GROUP BY.9La hora '{0}' no es válida en el literal DateTime '{1}'.;El extremo 'from' no se pudo inferir en la relación '{0}'.9El extremo 'to' no se pudo inferir en la relación '{0}'.�El tipo de elemento '{0}' y CollectionType '{1}' no son compatibles. La expresión IN sólo admite tipos de referencia, escalares o de entidad. :No se permite correlación izquierda en la cláusula JOIN.WLa expresión de argumento KEY debe ser de tipo de referencia. El tipo pasado es '{0}'.pEl uso de la clave no es válido. {0} no puede definir claves porque una de sus clases base ({1}) define claves.VEl miembro (Member) de clave especificado '{0}' no existe en la colección de Members.CClave: {0} no es válida. {1} no es un nombre de propiedad válido.jLa parte de clave: '{0}' para el tipo {1} no es válida. Ninguna parte de clave debe admitir valores NULL.aCOLLATE sólo se puede usar con claves de ordenación de tipo de cadena. El tipo pasado es '{0}'./El valor de literal de {0} '{1}' no es válido."MaxLength debe ser mayor que cero.vEl nombre {0} no se puede usar en el tipo {1}. Los nombres de miembro no pueden ser iguales que sus tipos envolventes./'{0}' se ha resuelto como {1}; se esperaba {2}.vLos espacios de nombres, tipos o nombres de función deben tener un solo nombre o varios nombres separados por puntos.�La ruta de acceso de los metadatos especificados no es válida. Una ruta de acceso válida debe ser un directorio existente, un archivo existente con extensión '.csdl', '.ssdl' o '.msl', o un URI que identifica un recurso incrustado.<El minuto '{0}' no es válido en un literal DateTime  '{1}'.fLa cláusula WITH RELATIONSHIP solo se admite a la hora de definir consultas de vista de solo lectura.8El mes '{0}' no es válido en un literal DateTime '{1}'.�La multiplicidad entra en conflicto con la restricción referencial en Role '{0}' de la relación '{1}'. Dado que una o todas las propiedades de Dependent Role no aceptan valores NULL, la multiplicidad de Principal Role debe ser '1'.�La multiplicidad entra en conflicto con la restricción referencial en Role '{0}' de la relación '{1}'. Dado que ninguna de las propiedades de Dependent Role acepta valores NULL, la multiplicidad de Principal Role debe ser '1'.�La multiplicidad no es válida en Role '{0}' de la relación '{1}'. Dado que todas las propiedades de Dependent Role aceptan valores NULL, la multiplicidad de Principal Role debe ser  '0..1'.�Multiplicity no tiene un valor válido en el rol '{0}' dentro de la relación '{1}'. Los valores válidos para la multiplicidad de Principal Role son '0..1' o '1'.�La multiplicidad no es válida en el Role '{0}' dentro de la relación '{1}'. El límite inferior de la multiplicidad debe ser 0.�Multiplicity no tiene un valor válido en el Role '{0}' dentro de la relación '{1}'. Debido a que las propiedades de Dependent Role no son las propiedades clave, el límite superior de la multiplicidad de Dependent Role debe ser *.�Multiplicity no tiene un valor válido en el Role '{0}' dentro de la relación '{1}'. Debido a que Dependent Role hace referencia a las propiedades de clave, el límite superior de la multiplicidad para Dependent Role debe ser 1.{1} ({0}) no es válido.-El alias de espacio de nombres no es válido.�No se encontró ningún esquema con el espacio de nombres de '{0}'. Asegúrese de que el espacio de nombres es correcto o que se ha especificado el esquema que define al espacio de nombres.�'{0}' no es un nombre de alias o un espacio de nombres válido. Debe usar el alias o el espacio de nombres de esquema actual para calificar el tipo.ILos argumentos NULL sin tipo no son válidos en expresiones aritméticas.LLos argumentos NULL sin tipo no son válidos en expresiones de comparación.dEl miembro '{0}' que no admite valores NULL de tipo '{1}' no se puede inicializar con un valor NULL.nError en la función '{0}'. Las funciones de agregado deben tomar exactamente un único parámetro de entrada.iLos elementos OnDelete, OnLock y otros similares se pueden especificar solo en un End de una Association.'El símbolo del operador no es válido.;La sintaxis del parámetro de comando '@{0}' no es válida.�El tipo de parámetro '{0}' de la función '{1}' no es válido. El parámetro de la función de agregado debe ser de CollectionType.gEl miembro de {0} '{1}' y el miembro de {2} '{3}' son incompatibles porque no tienen un tipo en común.�El miembro de {0} '{1}' del tipo '{2}' y el miembro de {3} '{4}' del tipo '{5}' son incompatibles porque no tienen un tipo en común.�El valor máximo '{0}' para la faceta de Scale debe ser menor o igual que el valor máximo '{1}' para Precision Facet en el tipo de '{2}'.9No se permite el predicado ON en la cláusula CROSS JOIN.3El valor '{0}' no es una PrimitiveTypeKind válida.cNo hay ninguna propiedad con el nombre '{0}' definida en el tipo al que hace referencia Role '{1}'.�Una propiedad no puede ser del tipo {0}. El tipo de la propiedad debe ser un tipo alineado, un tipo escalar o un tipo de enumeración.)El símbolo de puntuación no es válido.bLa consulta no es válida porque contiene un tipo de asociación '{0}', que no se puede proyectar.tRelationship {0} no es válida. La multiplicidad ({1}) no es válida. La multiplicidad debe ser: '*', '0..1', o '1'.jRelationship {0} no es válida. El tipo de End ({1}) no es válido. El tipo de End debe ser un EntityType.9'{0}' no es un miembro válido de la relación de '{1}'. PRelationshipSet, con el nombre especificado '{0}', no existe en EntityContainer.XRelationshipSet no puede ser de tipo {0}. El tipo de la propiedad debe ser Relationship.qEl tipo complejo '{0}' y el tipo complejo '{1}' son incompatibles porque tienen un número diferente de miembros.oEl tipo de fila '{0}' y el tipo de fila '{1}' son incompatibles porque tienen un número diferente de columnas.�El miembro de fila '{0}' del tipo '{1}' y el miembro de fila '{2}' del tipo '{3}' son incompatibles porque tienen un número diferente de columnas.8ERROR INTERNO: el punto de almacenamiento no es válido.3El esquema especificado no es válido. Errores: {0}4ERROR INTERNO: el índice del ámbito no es válido.<El segundo '{0}' no es válido en un literal DateTime '{1}'.�La expresión SELECT VALUE no puede tener alias en este contexto. La expresión SELECT VALUE solo puede tener alias cuando se especifica ORDER BY.ISELECT VALUE sólo puede tener una expresión en la lista de proyección.,El identificador simple '{0}' no es válido.�El identificador simple '{0}' debe contener sólo caracteres latinos básicos. Para usar caracteres UNICODE, use un identificador de escape.lMaxLength '{0}' no es válida. La longitud debe estar comprendida entre '{1}' y '{2}' para el tipo de '{3}'.TEl parámetro '{0}' no es válido. Los argumentos de cadena no pueden estar vacíos.aSRID '{0}' no es válido. Su valor debe estar comprendido entre '{1}' y '{2}' para el tipo '{3}'.�Las propiedades a las que hace referencia Dependent Role {0} deben ser un subconjunto de la clave de EntityType {1} al que hace referencia Dependent Role en la restricción referencial para Relationship {2}.WLa cláusula WITH RELATIONSHIP solo es compatible con constructores de tipo de entidad.1El argumento de '{0}' debe ser de CollectionType.AEl tipo sin signo '{0}' no se puede promover a un tipo con signo.g'{0}' sólo es válido en rutas de acceso de archivos de metadatos cuando se ejecuta dentro de ASP.NET.�El valor {0} no es válido para el atributo ParameterTypeSemantics. Los valores válidos son 'ExactMatchOnly', 'AllowImplicitPromotion' o 'AllowImplicitConversion'.HLa multiplicidad '{1}' no es válida para el extremo de relación '{0}'.9El año '{0}' no es válido en el literal DateTime '{1}'.3Se encontró AggregateOp fuera del método GroupBy.VarDefOp inesperadoVarDefListOp inesperadoOp es un tipo no admitido: {0}dLa expresión IS [NOT] NULL debe ser de tipo primitivo, de enumeración, de referencia o de entidad.<Ya se ha registrado ItemCollection para el espacio de '{0}'.KYa existe el elemento con la identidad '{0}' en la colección de metadatos.JEl miembro con la identidad '{0}' no existe en la colección de metadatos.REntityType '{0}' no tiene ninguna clave definida. Defina la clave para EntityType.bLa expresión de clave '{0}' debe tener al menos una referencia a un ámbito de entrada inmediata.OEl argumento izquierdo de la expresión de conjunto debe ser de CollectionType.0Los argumentos LIKE deben ser de tipo de cadena.ENo hay ningún tipo EDM que corresponda con el tipo de literal '{0}'.5ERROR INTERNO: no se admite el tipo de literal '{0}'.
coleccióncolumnacomplejaentidadcontenedor de entidadesmiembro de enumeraciónfunciónfunción insertada de consulta
palabra clave	izquierdalínea#espacio de nombres, tipo o funciónespacio de nombresCerca de	primitivo
referenciaderechafilaplazotipoexpresión de valorCEl literal especificado tiene una carga de cuota única incorrecta.HEl literal especificado tiene una carga de literal de cadena incorrecta.ZXML incorrecto. El elemento que empieza con ({0},{1}) no tiene ninguna etiqueta de cierre.�El tipo '{0}' del lado conceptual no se puede asignar al tipo '{1}' en el lado del objeto. Ambos tipos deben ser abstractos o tipos concretos.�EntitySetMapping en EntityContainerMapping para EntityContainer '{0}' solo debe contener fragmentos de asignación y ninguna vista de consulta. EntitySetMapping contiene solo vistas de consulta y no se generará la vista para esta EntityContainerMapping.IYa se ha asignado EntityContainer '{0}' para el modelo de almacenamiento.fNo es posible asignar EdmType a clases CLR varias veces. EdmType '{0}' se ha asignado más de una vez.REl valor especificado para la condición no es compatible con el tipo del miembro.^El miembro '{0}' en el tipo de modelo conceptual '{1}' no está presente en el tipo CLR '{2}'.^El miembro '{0}' en el tipo CLR '{1}' no está presente en el tipo de modelo conceptual '{2}'.�El tipo '{0}' del miembro '{1}' en el tipo del lado conceptual '{2}' no coincide con el tipo '{3}' del miembro '{4}' en el tipo del lado del objeto '{5}'.�La propiedad '{0}' en el tipo de modelo conceptual '{1}' es de tipo '{2}'. La propiedad '{3}' en el tipo CLR '{4}' es de tipo '{5}'. Los tipos de propiedades deben coincidir.�El número de miembros en el tipo conceptual '{0}' no coincide con el número de miembros en el tipo del lado del objeto '{1}'. Asegúrese de que el número de miembros es el mismo.�El tipo '{0}'('{1}') del miembro '{2}' en el tipo de conceptual  '{3}' no coincide con el tipo '{4}'('{5}') del miembro '{6}' en el tipo del lado del objeto '{7}'.�La multiplicidad '{0}' del End '{1}' en la Association del lado conceptual '{2}' no coincide con la multiplicidad '{3}' del extremo '{4}' en la Association del lado del objeto '{5}'.WLa versión de EdmItemCollection debe coincidir con la versión de StoreItemCollection.�La versión de los archivos de asignación cargados debe ser la misma que la versión de los objetos EdmItemCollection y StoreItemCollection cargados.�La marca MakeColumnsDistinct solo puede ubicarse en un contenedor que no genere vistas de actualización. Marque el atributo GenerateUpdateViews como 'false' en EntityContainerMapping.DEl AssociationSet conceptual '{0}' no se puede asignar varias veces.�Se encontró más de una asignación de propiedad para la propiedad '{0}' cuando se usaba una búsqueda que no distingue mayúsculas de minúsculas.-El tipo '{0}' se ha asignado más de una vez.DLa vista de consulta especificada para EntitySet '{0}' está vacía.ULa vista de consulta de IsTypeOf({0}) especificada para EntitySet '{1}' está vacía.ZLa vista de consulta especificada para EntitySet '{0}' para EntityType '{1}' está vacía.�El EntitySet '{0}' usado para crear la expresión Ref no coincide con el EntitySet '{1}' declarado en el AssociationSetEnd '{2}' del AssociationSet '{3}'.�El tipo '{0}' definido en el modelo conceptual no se puede asignar al tipo '{1}' de la capa de objeto. Un tipo de enumeración no se puede asignar a un tipo que no sea de enumeración.wNo se debe especificar ningún valor de enumeración vacío para la asignación de condición en la enumeración '{0}'.ZEl valor de enumeración '{0}' especificado en la asignación de condición no es válido.�El tipo de enumeración '{0}' definido en la capa de objeto no tiene un miembro que corresponda al miembro '{1}' cuyo valor es '{2}' del tipo de enumeración '{3}' definido en el modelo conceptual.�El tipo subyacente '{0}' del tipo de enumeración '{1}' definido en el modelo conceptual no coincide con el tipo subyacente '{2}' del tipo de enumeración '{3}' definido en la capa de objeto.�Las propiedades de clave de todos los tipos de entidades devueltos por la importación de funciones '{0}' deben asignarse a las mismas columnas que no aceptan valores null devueltas por la función de almacenamiento.�El valor especificado para {0} no es compatible con el tipo devuelto por el proveedor de almacenamiento. Nombre de columna: '{1}', ResultType: '{2}'. �Sólo se puede declarar un elemento de {0} para FunctionImport declarando EntitySet. FunctionImport '{1}' no declara un EntitySet.JNo se puede resolver como una sobrecarga específica de la función '{0}'.6FunctionImport '{0}' no existe en el contenedor '{1}'.'FunctionImport '{0}' ya se ha asignado.yEl tipo de valor devuelto '{0}' de la importación de funciones '{1}' es abstracto y no se puede asignar implícitamente.�La función de importación tiene un parámetro '{0}' pero no se encontró ningún parámetro correspondiente en la función de almacenamiento.�El parámetro de la función de almacenamiento '{0}' de tipo '{1}' no coincide con el parámetro de FunctionImport correspondiente del tipo de enumeración '{2}' con el tipo subyacente '{3}'. El tipo subyacente del parámetro de enumeración de una función definida en el modelo conceptual debe coincidir con el tipo de parámetro de la función de almacenamiento correspondiente.uEl parámetro '{0}' tiene un modo '{1}' en la función de almacenamiento, pero tiene un modo '{2}' en FunctionImport.�El parámetro '{0}' tiene el tipo '{1}' en el almacenamiento, que no es compatible con el tipo '{2}' declarado para FunctionImport.�El EntityType '{0}' especificado no es el tipo declarado '{1}' ni una derivación del tipo de EntitySet '{2}' para FunctionImport '{3}'.�No se especificó ninguna asignación para la propiedad conceptual '{0}' de tipo '{1}' en la asignación de resultados de la importación de funciones '{2}'.El número de elementos ResultMapping de FunctionImport '{0}' no coincide con el número de elementos ReturnType especificados.�La asignación de la importación de funciones '{0}' no es válida. ComplexTypeMapping sólo se admite en importaciones de funciones que devuelven una colección de ComplexType.�La asignación de la importación de funciones '{0}' no es válida. EntityTypeMapping sólo se admite en importaciones de funciones que devuelven una colección de EntityType.�La asignación de la importación de funciones '{0}' no es válida. Se esperaba que el tipo de valor devuelto de la función de almacenamiento fuera una colección de filas.�La asignación de la importación de funciones '{0}' no es válida. El tipo asignado '{1}' no es compatible con el tipo de valor devuelto de la importación de funciones.JEl parámetro de las filas afectadas '{0}' no existe en la función '{1}'.VEl RowsAffectedParameter '{0}' está en modo '{1}' y debe estar en modo '{2}' o '{3}'.TEl RowsAffectedParameter '{0}' es de tipo '{1}' y debe ser un tipo numérico entero.�La importación de funciones '{0}' solo se puede asignar a una función de almacenamiento que devuelva filas con una columna. La función de almacenamiento '{1}' devuelve filas con varias columnas.�El tipo de valor devuelto '{0}' de la importación de funciones '{1}' no es compatible con el tipo de valor devuelto '{2}' de la función de almacenamiento '{3}'..La función de almacenamiento '{0}' no existe.�La importación de funciones que admite composición '{0}' está asignada a la función de almacenamiento que no admite composición '{1}'. Las importaciones de funciones que no admiten composición solo se pueden asignar a funciones de almacenamiento con valores de tabla.�La importación de funciones que no admite composición '{0}' está asignada a la función de almacenamiento que admite composición '{1}'. Las importaciones de funciones que no admiten composición solo se pueden asignar a procedimientos almacenados.�La función de almacenamiento tiene un parámetro '{0}', pero no se encontró ningún parámetro correspondiente en FunctionImport.�La asignación de la importación de funciones no puede producir una entidad desde la jerarquía de tipo '{0}'. Asegúrese de que las condiciones implican sin ambigüedad algún tipo en la jerarquía. Vea las líneas '{1}'.�La asignación de la importación de funciones no puede producir una entidad de tipo '{0}'. Asegúrese de que las condiciones implican sin ambigüedad el tipo. Vea las líneas '{1}'.�El tipo de valor devuelto por el proveedor de almacenamiento no se admite para las condiciones del tipo. Nombre de columna: '{0}', ResultType: '{1}'.""Error por asignación no válida"VEntityType '{0}' es Abstract y no se puede asignar usando una asignación de función.ZEntityType '{0}', que se ha utilizado en IsTypeOf, no tiene ningún descendiente concreto.FEntityType '{0}' es Abstract y se puede asignar sólo usando IsTypeOf.oAssociationSet '{0}' no puede tener una Condition porque no proporciona asignaciones para los elementos de End.dAssociationSet '{0},  que se ha especificado como parte de este MSL, no existe en MetadataWorkspace.eAssociationType '{0}', que se ha especificado como parte de este MSL, no existe en MetadataWorkspace.�Se debe especificar el nombre de AssociationType cuando se proporciona una asignación de función o asignación de propiedad de End.�Contenido no válido. El miembro o propiedad del lado conceptual '{0}' especificado como parte de este MSL no existe en MetadataWorkspace.TLa columna '{0}' especificada como parte de este MSL no existe en MetadataWorkspace.ZEl tipo complejo '{0}' especificado como parte de este MSL no existe en MetadataWorkspace.uNo es posible especificar tanto los miembros de columna como el modelo conceptual para la asignación de condiciones.aNo es posible especificar tanto el atributo Value como IsNull para la asignación de condiciones.�No se puede especificar la condición para el miembro de columna '{0}' porque está marcado como StoreGeneratedPattern 'Computed' o 'Identity'.fSe debe especificar el modelo conceptual o los miembros de columna para la asignación de condiciones.TSe tiene que especificar Value o IsNullAttribute para la asignación de condiciones.9No existe el miembro '{0}' especificado en la condición.{No se pueden especificar condiciones en valores del miembro '{0}'. No se admiten condiciones de valores para el tipo '{1}'.<No se admiten condiciones en miembros con valores complejos.`Se esperaban solo los elementos EntitySetMapping, AssociationSetMapping o FunctionImportMapping.�El miembro o propiedad del lado conceptual '{0}' tiene varias asignaciones especificadas como parte del mismo fragmento de asignación.rEl miembro o propiedad '{0}' tiene varias condiciones especificadas como parte del mismo fragmento de asignación.PSe debe asignar al menos una propiedad en la asignación de conjunto para '{0}'.]La propiedad de End '{0}' especificada como parte de este MSL no existe en MetadataWorkspace.�La propiedad '{0}' no es un miembro de clave del EntityType. Solo se pueden asignar miembros de clave como parte de la asignación de EndProperty.EntityContainer '{0}' para el modelo conceptual, que se ha especificado como parte de este MSL, no existe en MetadataWorkspace._EntitySet '{0}', que se ha especificado como parte de este MSL, no existe en MetadataWorkspace.`EntityType '{0}', que se ha especificado como parte de este MSL, no existe en MetadataWorkspace.]EntityType '{0}' no es el tipo declarado '{1}' o una derivación del tipo de EntitySet '{2}'.]AssociationType '{0}' tiene una restricción de integridad referencial y no se puede asignar.AssociationType '{0}' tiene una restricción de integridad referencial de clave principal. Se omitirán todas las asignaciones."El contenido de MSL no es válido.6Paréntesis sin cerrar en la declaración de IsOfType.�EntityContainer '{0}' para el modelo de almacenamiento, que se ha especificado como parte de este MSL, no existe en MetadataWorkspace.RLa tabla '{0}' especificada como parte de este MSL no existe en MetadataWorkspace.HSe esperaba un elemento de asignación de tabla, pero no está presente.�Sólo se permiten elementos EntityTypeMapping y QueryView cuando el nombre de EntityType no se ha especificado en EntitySetMapping.aError de análisis de XML para el esquema de asignación. Información de error del esquema: {0}.lError de validación del esquema XML para el esquema de asignación. Información de error del esquema: {0}.cAssociationType '{0}' que se ha especificado no es el tipo declarado '{1}' de AssociationSet '{2}'.�Se encontró un elemento raíz no válido en el archivo de asignación. Asegúrese de que el nombre local del elemento raíz es 'Mapping' y que namespaceURI es '{0}', '{1}' o '{2}'.ELa propiedad '{0}' en el lado conceptual no es una propiedad escalar.�La asignación de miembros especificada no es válida. El tipo '{0}' del miembro '{1}' en el tipo '{2}' no es compatible con '{3}' del miembro '{4}' en el tipo '{5}'.|La vista de consulta generada por EntitySet '{0}' no es válida. El analizador de consultas produjo el siguiente error: {1}.�La vista de consulta especificada para EntitySet '{0}' no es válida. El analizador de consultas produjo el siguiente error: {1}.�ResultType de la expresión de vista de consulta especificada para EntitySet '{0}' no se puede asignar al tipo de elemento de EntitySet.�Si EntitySet o AssociationSet incluyen una vista de consulta, todos los conjuntos de asociaciones y entidades relacionadas de EntityContainer también deben definir vistas de consulta. Los siguientes conjuntos requieren vistas de consulta: {0}.�GlobalItem con el nombre '{0}' existe tanto en el modelo conceptual como en el modelo de almacenamiento. Asegúrese de que cada elemento tiene un nombre único en ambos modelos.gEl enlace de la asignación de función especifica una función ambigua {0} con más de una sobrecarga.�La función de asignación incluye varios enlaces de resultados para una única propiedad. Nombre de propiedad: {0}. Nombres de columna: {1}.uNo se permite la asignación de funciones para el rol 'to' {0} porque se trata de una asociación de claves externas.gEntityType '{0}' incluye asignaciones de función para AssociationSet '{1}' que requiere el tipo '{2}'.�Las instancias de AssociationSet sólo se pueden  asignar usando EntitySetMapping o AssociationSetMapping. Las siguientes instancias de AssociationSet están asignadas a varias ubicaciones: {0}.�Una asignación de End de asociación tiene un rol (Role) 'to' {0} con una multiplicidad mayor que uno. Se admite una multiplicidad máxima de uno.kUna asignación de End de asociación especifica AssociationSet {0}, que no existe en el contenedor actual.jUna asignación de End de asociación se define desde Role {0}, que no está enlazado al actual EntitySet.�EntitySet '{0}' incluye asignaciones de función para AssociationSet '{1}', pero no existe ninguna en el elemento '{2}' para el tipo '{3}'. AssociationSets se debe asignar de manera coherente para todas las operaciones.gUna asignación de End de asociación especifica un Role {0} que no existe en el actual AssociationSet.DNo se pudo encontrar ComplexType {0} en el actual MetadataWorkspace.xUna asignación EntityType Mapping que contiene una asignación de función no puede especificar la propiedad TableName.�Si la asignación EntitySet incluye un enlace de función, se deben incluir enlaces de función para todos los tipos. Los siguientes tipos no tienen enlaces de función: {0}.|Un enlace de función de asignación especifica una función {0} pero no asigna los siguientes parámetros de función: {1}.�Si algunos de los conjuntos EntitySet o AssociationSet están asignados al mismo EntitySet de almacén y uno de los conjuntos incluye una asignación de función, todas las entidades relacionadas y AssociationSets de EntityContainer también deben definir asignaciones de función. Los siguientes conjuntos requieren asignaciones de función: {0}.CNo se puede determinar la versión del enlace de parámetro actual.�Una asignación de función incluye enlaces de parámetro para dos Ends diferentes del mismo AssociationSet. Sólo es posible asignar un End a un determinado AssociationSet dentro de una asignación de función única. Roles de End: {0}, {1}. AssociationSet: {2}.�Un enlace de función de asignación de EntityType no puede asignar varios tipos. Es posible especificar asignaciones de función sólo para las asignaciones de EntityType en tipos únicos, no utilice el modificador 'IsTypeOf' ni especifique varios tipos.�Un enlace de función de asignación especifica una función {0} no admitida. Sólo se admiten las funciones que no puede ser compuestas.�Un enlace de función de asignación especifica una función {0} con un parámetro no admitido: {1}. Sólo es posible asignar parámetros de salida a través de la propiedad de {2}. Use los enlaces de resultado para devolver valores desde una invocación de función..El parámetro {0} se ha enlazado varias veces.CEl parámetro de función {0} no está definido en la función {1}.*La propiedad {0} no existe en el tipo {1}.~La propiedad {0} no es una clave de {1}. Puede que las asignaciones de End de asociación sólo incluyan propiedades de clave.�La asignación de parámetro especificada no es válida. El tipo '{0}' del miembro '{1}' en el tipo '{2}' no es compatible con '{3}' del parámetro '{4}' en la función '{5}'.:EntityType {0} se ha asignado a funciones más de una vez.MUn enlace de función de asignación especifica una función {0} desconocida.gEsta asignación de función sólo puede contener enlaces a versiones de propiedad actuales, 'current'.iEsta asignación de función sólo puede contener enlaces a versiones de propiedades que sean 'original'.HEl tipo complejo {0} no coincide con el tipo de la propiedad actual {1}.GNo se encontró la asignación para EntityContainer '{0}' en Workspace.NNo se encontró la asignación de objetos para el tipo con la identidad '{0}'.OEl proveedor de almacenamiento no devolvió ningún EdmType válido para '{0}'.!La conexión no es de tipo '{0}'.5El manifiesto del proveedor dado no es de tipo '{0}'.NSe ha definido una única QueryView para varios tipos dentro de EntitySet {0}.JIsTypeOf( ) QueryView ya se ha definido para EntitySet {0} y TypeName {1}.>QueryView ya se ha definido para EntitySet {0} y TypeName {1}.]IsTypeOf({0}) QueryView no se debe especificar para el tipo de elemento {0} de EntitySet {1}.xNo se pueden especificar asignaciones de propiedad para EntitySet '{0}' porque se ha especificado una vista de consulta.�La propiedad TypeName se debe definir para toda las QueryViews que se encuentran dentro de la asignación para EntitySet {0} salvo la primera.�Sólo es posible buscar en la asignación de almacenamiento desde el tipo que se encuentra en el modelo conceptual. No se puede buscar desde el tipo que se encuentra en el siguiente espacio: {0}.�La propiedad del lado conceptual '{0}' ya se ha asignado a una propiedad de almacenamiento con el tipo '{1}'. Si se asigna la propiedad del lado conceptual a varias propiedades dentro del modelo de almacenamiento, asegúrese de que todas las propiedades del modelo de almacenamiento tienen el mismo tipo.�No se debe especificar el nombre de EntitySet de almacenamiento en la asignación para el Set '{0}' porque se está especificando una vista de consulta.aLa primera QueryView no debe ser específica de un tipo. Pruebe a eliminar la propiedad TypeName.�La vista de consulta especificada para los tipos de EntitySet de '{0}' '{1}' contiene una expresión no admitida de la clase '{2}'.�La vista de consulta especificada para EntitySet '{0}' incluye una llamada a la función '{1}'. Solo se puede hacer referencia a funciones de almacenamiento en una vista de consulta.�La vista de consulta especificada para EntitySet '{0}' inicializa una instancia del tipo '{1}'. Sólo se permiten los tipos asignables al tipo de elemento de EntitySet.�La vista de consulta especificada para EntitySet '{0}' contiene una referencia a un miembro '{1}' de la clase '{2}'. Sólo es posible hacer referencia a las columnas.�La vista de consulta especificada para EntitySet '{0}' incluye un examen de '{1}' EntitySet. Sólo es posible hacer referencia a EntitySets de almacenamiento en una vista de consulta.SNo se encontró ninguna vista en los ensamblados ni se pudo generar para {0} '{1}'.wYa existe un objeto con el valor de clave '{0}' en un estado agregado. No es posible combinar un objeto en este estado.BEl resultado de una consulta no se puede enumerar más de una vez.tLa conversión especificada desde un tipo '{0}' materializado a un tipo '{1}' que admite valores NULL no es válida.ZLa conversión especificada desde un tipo '{0}' materializado al tipo '{1}' no es válida.�Error de conversión al tipo de valor '{0}' porque el valor materializado es NULL. El parámetro genérico del tipo de resultado o la consulta deben usar un tipo que admite valores NULL.8Esta propiedad no se puede establecer con un valor NULL.<La propiedad '{0}' no se puede establecer con un valor NULL.�Todos los objetos de EntitySet '{0}' deben tener claves principales únicas. Sin embargo, tanto una instancia de tipo '{1}' como una instancia de tipo '{2}' tienen el mismo valor de clave principal, '{3}'. �No se pudo establecer la propiedad '{2}' de '{1}' con un valor de '{3}'. Debe establecer esta propiedad con un valor que no sea NULL de tipo '{0}'. USólo es posible materializar tipos primitivos, tipos de entidades y tipos complejos.tEl conjunto de entidades o la importación de funciones '{0}' no se ha definido en el contenedor de entidades '{1}'.IEl miembro con la identidad '{0}' no existe en la colección de miembros.Error de metadatos incoherentes&No se admite la invocación a método.ULos valores mínimo y máximo deben ser mayores o iguales que '{0}' en el tipo '{1}'.�Los valores mínimo y máximo no pueden ser idénticos para '{0}' en el tipo '{1}' porque '{0}' no se ha especificado como constante.El valor mínimo y máximo no se puede especificar para '{0}' en el tipo '{1}', ya que '{0}' se ha especificado como constante.�El valor mínimo '{0}' especificado para '{1}' en el tipo '{2} no es válido. El valor mínimo debe ser siempre menor que el valor máximo.uEl número de propiedades en el rol (Role) Dependent y Principal de una restricción de relación debe ser idéntico.ELa relación '{0}' no contiene la restricción referencial requerida.�Falta el valor predeterminado para '{0}' en el tipo '{1}'. Se debe especificar el valor predeterminado porque '{0}' se ha especificado como constante.�No se especificó EntitySet para End '{0}' en AssociationSet '{1}' y no se puede inferir porque ninguno de los elementos de EntitySet es del tipo correcto.YEl tipo '{0}' es de PrimitiveTypeKind {1}, que debe tener una descripción de faceta {2}. Falta el nombre o no es válido.FEn el esquema se debe especificar un valor para el atributo Namespace.ZHay más de un elemento en la colección de metadatos que coincide con la identidad '{0}'.PEl parámetro '{0}' se definió más de una vez en la colección de parámetros.LLa variable '{0}' se definió más de una vez en la colección de variables.2Los tipos de elementos multiset son incompatibles.MEl alias de espacio de nombres '{0}' se usó en una directiva USING anterior.+Ya se importó el espacio de nombres '{0}'.�EntityType '{0}', en el que se ha declarado NavigationProperty '{1}' no es del mismo tipo '{4}' al que hace referencia el extremo '{3}' de RelationshipType '{2}' al que NavigationProperty representa.�El espacio de nombres '{0}' es un espacio de nombres del sistema y todos los esquemas hacen referencia a él de manera implícita. No puede especificar una referencia explícita para este espacio de nombres.AEl agregado anidado {0} no se puede usar dentro del agregado {1}.WEl tipo '{0}' del ensamblado '{1}' es una clase anidada. No se admiten clases anidadas.�El tipo '{0}' que se está cargando está en conflicto con el tipo '{1}' que ya se ha cargado, porque tienen el mismo nombre y espacio de nombres.fNinguna sobrecarga de la función de agregado '{0}.{1}' es compatible con tipos de argumento en '{2}'.�Ninguna sobrecarga de la función de agregado '{0}.{1}' es compatible con los tipos de argumento en '{2}'. Consulte la documentación de funciones específicas del proveedor para funciones de almacenamiento con una funcionalidad similar.�Ninguna sobrecarga de función canónica '{0}.{1}' es compatible con los tipos de argumento en '{2}'. Consulte la documentación de funciones específicas del proveedor para funciones de almacenamiento potenciales con una funcionalidad similar._El espacio de nombres '{0}' está reservado para la generación de código en Entity Framework.6El espacio '{0}' no tiene ninguna colección asociada.\Ninguna sobrecarga de función '{0}.{1}' es compatible con los tipos de argumentos en '{2}'.pNo hay ningún tipo de almacenamiento correspondiente al tipo del lado conceptual '{0}' de tipo primitivo '{1}'.oLas funciones que no pueden ser compuestas no pueden establecer atributos de función de agregado o integrados.WLas funciones que no pueden ser compuestas no deben declarar un tipo de valor devuelto.�'{0}' no es un miembro de '{1}'. Para extraer una propiedad de un elemento de colección, use una subconsulta que recorra en iteración la colección.K'{0}' no es un miembro del tipo '{1}' en los esquemas cargados actualmente.8El tipo '{0}' no es un subtipo ni un supertipo de '{1}'.#PrimitiveType no es un tipo binary.4El tipo primitivo dado no es un tipo DateTimeOffset.%PrimitiveType no es un tipo DateTime.$PrimitiveType no es un tipo Decimal.GEl tipo {0} no está definido en el espacio de nombres {1} (Alias={2}).;El tipo {0} no está definido en el espacio de nombres {1}.~El tipo {0} no está calificado con un espacio de nombres o alias. Solo los tipos primitivos se pueden usar sin calificación.#PrimitiveType no es un tipo string.*El tipo primitivo dado no es un tipo Time.uAl menos una de las rutas de acceso de entrada no es válida porque es demasiado larga o tiene un formato incorrecto.6Un literal NULL no se puede promover a CollectionType.WEdmRelationshipAttribute para la relación '{1}' tiene un parámetro '{0}' que es NULL.ZEl parámetro RelationshipName de EdmRelationshipAttribute en el ensamblado '{0}' es NULL.2Falta el argumento '{0}' del constructor de tipos._El número de argumentos pasado al constructor de tipos '{0}' supera su especificación formal.�Se confirmaron correctamente los cambios en la base de datos, pero se produjo un error al actualizar el contexto del objeto. ObjectContext podría tener un estado incoherente. Mensaje de la excepción interna: {0}\No es posible adjuntar un objeto con un valor temporal de EntityKey a un contexto de objeto.XNo es posible adjuntar un objeto con un valor NULL de EntityKey a un contexto de objeto.IEl objeto no se puede eliminar porque se encontró en ObjectStateManager.MEl objeto no se puede separar porque no se ha adjuntado a ObjectStateManager.�{0} no se puede cargar explícitamente para las entidades desasociadas. Los objetos que se cargan mediante la opción de combinación NoTracking siempre están desasociados.[No se puede cargar {0} con un contexto distinto al contexto con el que se cargó el objeto.�La propiedad DefaultContainerName ya se ha establecido para ObjectContext. Esta propiedad no se puede cambiar una vez que se ha establecido. ZLos siguientes objetos no se han actualizado porque no se encontraron en el almacén: {0}.�Error en la operación: no se pudo cambiar la relación porque una o varias de las propiedades de clave externa no aceptan valores NULL. Cuando se realiza un cambio en una relación, la propiedad de clave externa relacionada se establece en un valor NULL. Si la clave externa no admite valores NULL, se debe definir una nueva relación, asignar otro valor NULL a la propiedad de clave externa o eliminar el objeto no relacionado.�No se pudo determinar el nombre de EntityContainer. El nombre de EntityContainer debe calificar el nombre de EntitySet proporcionado, como 'EntityContainerName.EntitySetName', o se debe establecer la propiedad DefaultContainerName para ObjectContext.�El objeto en ObjectContext es de tipo '{0}', pero el objeto proporcionado es de tipo '{1}'. Los dos objetos deben tener el mismo EntityType para que se apliquen los cambios. �El objeto no se puede asociar porque ya está en el contexto del objeto. Un objeto sólo se puede volver a asociar cuando su estado no ha cambiado. 3No se encontró el nombre de EntityContainer '{0}'.�El objeto existente en ObjectContext se encuentra en estado {0}. Los cambios sólo se pueden aplicar cuando el estado del objeto no ha cambiado o se encuentra en un estado modificado.�El estado del objeto existente en el ObjectContext es {0}. Los valores originales se pueden cambiar cuando el estado del objeto existente es sin cambios, modificado o eliminado.�La entidad especificada no se puede eliminar del ObjectSet porque es un miembro del EntitySet '{0}.{1}' y no del EntitySet '{2}.{3}' al que hace referencia el ObjectSet. Use el método DeleteObject en el ObjectSet que contiene la entidad o use el método ObjectContext.DeleteObject si desea eliminar la entidad sin validar su EntitySet.�La entidad especificada no se puede desasociar del ObjectSet porque es un miembro del EntitySet '{0}.{1}' y no del EntitySet '{2}.{3}' al que hace referencia el ObjectSet. Use el método Detach en el ObjectSet que contiene la entidad o use el método ObjectContext.Detach si desea eliminar la entidad sin validar su EntitySet.�No se encontró en el ObjectStateManager un objeto con una clave que coincida con la clave del objeto proporcionado. Compruebe que el objeto al que deben aplicarse los cambios no se encuentre en el estado Added y que sus valores de clave coincidan con los del objeto proporcionado.�No se pudo determinar el nombre de EntitySet. Para asociar un objeto, proporcione un nombre válido de EntitySet y asegúrese de que el objeto tiene una EntityKey válida.-No se encontró el nombre de EntitySet '{0}'.nCuando se ejecuta un comando, los parámetros deben ser exclusivamente valores o parámetros de base de datos.�La función o el procedimiento almacenado '{0}' no tiene un tipo de valor devuelto. ExecuteFunction sólo admite funciones y procedimientos almacenados que tengan un tipo de valor devuelto. \El parámetro que se encuentra en el índice {0} dentro de la matriz de parámetros es NULL.�El procedimiento almacenado o la función '{1}' devolvió el tipo '{0}'. ExecuteFunction solo admite procedimientos almacenados y funciones que devuelvan colecciones de objetos entidad o colecciones de objetos complejos. kEl parámetro de tipo '{0}' en ExecuteFunction es incompatible con el tipo '{1}' devuelto por la función. TEl valor de CommandTimeout especificado no es válido. Debe ser un número positivo.oLa conexión proporcionada no es válida porque contiene información de metadatos o asignaciones insuficiente.zLa cadena de conexión proporcionada no es válida, porque contiene información de metadatos o asignaciones insuficiente.rDbDataAdapter devuelto desde DbConnection.ProviderFactory.CreateDataAdapter() debe implementar IEntityDataAdapter.~No se encontró el nombre de EntityContainer predeterminado '{0}' especificado en la información de metadatos o asociaciones.IEl EntitySet especificado '{0}.{1}' no contiene resultados de tipo '{2}'.El nombre de EntitySet '{0}.{1}' procedente de EntityKey del objeto no coincide con el nombre de EntitySet esperado, '{2}.{3}'.�El nombre de EntitySet '{0}.{1}' procedente de EntityKey de la entidad no coincide con el nombre de EntitySet '{2}.{3}' especificado procedente del parámetro '{4}'.eEntitySet, '{0}', procedente de EntityKey de la entidad no coincide con el tipo de la entidad, '{1}'.�El valor de EntityState que se ha pasado para la entidad no es válido. El valor de EntityState debe ser uno de los siguientes: Added, Deleted, Detached, Modified o Unchanged.YEl tipo de entidad especificado, '{0}', no coincide con el tipo '{1}' de EntitySet '{2}'.�El valor de EntityState que se ha pasado para la relación no es válido. El valor de EntityState debe ser uno de los siguientes: Added, Deleted, Detached o Unchanged. Las relaciones no se pueden establecer en el estado Modified._El tipo de resultado '{0}' puede no ser abstracto y debe incluir un constructor predeterminado.�Los metadatos almacenados por ObjectContext son diferentes a los metadatos almacenados por la conexión de ObjectContext. Esto puede suceder si la cadena de conexión cambia después de la creación de ObjectContext.�No se puede determinar EntitySet para el tipo de entidad especificado '{0}' porque se han definido varios EntitySet para este tipo en varios EntityContainers en los metadatos. Use la sobrecarga del método CreateObjectSet<TEntity>(), que acepta un parámetro de cadena, si desea usar el tipo TEntity y un EntitySet específico.�No se puede determinar EntitySet para el tipo de entidad especificado '{0}' porque se han definido varios EntitySet para este tipo en EntityContainer '{1}'. Use la sobrecarga del método CreateObjectSet<TEntity>(), que acepta un parámetro de cadena, si desea usar el tipo TEntity y un EntitySet específico.wNo hay EntitySets definidos para el tipo de entidad especificado '{0}'. Si '{0}' es un tipo derivado, use el tipo base.RNo se encontró la información de metadatos y asignaciones para EntityType '{0}'.�El elemento que se encuentra en el índice {0} dentro de la colección de objetos para actualizar tiene un estado agregado. No es posible actualizar los objetos en este estado.�El elemento que se encuentra en el índice {0} de la colección de objetos que se van a actualizar es un duplicado de un objeto que ya existe en la colección.rEl elemento que se encuentra en el índice {0} dentro de la colección de objetos que se van a actualizar es NULL.�El elemento que se encuentra en el índice {0} dentro de la colección de objetos que se van a actualizar tiene un valor NULL para el valor de propiedad EntityKey o no se ha adjuntado a este ObjectStateManager.qLa instancia de ObjectContext se ha desechado y ya no se puede usar para operaciones que requieren una conexión.ANo se encuentra un objeto con el valor de EntityKey especificado.�El nombre de EntityContainer debe calificar el nombre de EntitySet proporcionado, como 'EntityContainerName.EntitySetName', o la propiedad DefaultContainerName se debe establecer para ObjectContext.�No se pudo completar la operación porque no se encontraron los metadatos requeridos. Asegúrese de que la conexión utilizada por ObjectContext está abierta antes de intentar esta operación.WLa expresión de selector para LoadProperty debe ser un MemberAccess para la propiedad.YError al intentar actualizar porque el origen de datos devolvió una entidad no esperada.�La columna '{0}' está asignada a varias propiedades '{1}'. Asegúrese de que haya una columna independiente para cada propiedad.�Ya existe un parámetro denominado '{0}' en la colección de parámetros. Los nombres de parámetros deben ser únicos en la colección de parámetros.�Ya existe un parámetro '{0}' en la colección de parámetros. Los parámetros deben ser únicos en la colección de parámetros.ONo se encontró un parámetro denominado '{0}' en la colección de parámetros.�No es posible agregar ni quitar parámetros en la colección de parámetros, y la colección de parámetros no se puede borrar después de que una consulta se haya evaluado o su cadena de seguimiento se haya recuperado.  �El nombre de parámetro especificado '{0}' no es válido. Los nombres de parámetro deben empezar con una letra y sólo pueden contener letras, números y caracteres de subrayado.�El tipo de parámetro especificado '{0}' no es válido. Sólo se admiten tipos escalares, como System.Int32, System.Decimal, System.DateTime y System.Guid.@Se debe especificar una conexión antes de ejecutar la consulta.IEl texto de comando para una instancia ObjectQuery no puede estar vacío.�El nombre de consulta especificado '{0}' no es válido. Los nombres de consulta deben empezar con una letra y sólo pueden contener letras, números y caracteres de subrayado.BDebe especificar un predicado válido para filtrar los resultados.IDebe especificar una lista de claves válida para agrupar los resultados.2Debe especificar una lista de proyección válida.}ObjectQuery, que se ha especificado, no es válido para esta operación porque está asociado con un ObjectContext diferente.�'{0}' no es un tipo válido para las operaciones de filtrado. El filtrado de tipos sólo es válido para tipos de entidad y tipos complejos.2Debe especificar un recuento de omisiones válido.IDebe especificar una lista de claves válida para ordenar los resultados.3Debe especificar un recuento de resultados válido.�Las consultas LINQ to Entities no admiten los métodos del Generador de consultas. Para obtener más información, consulte la documentación de Entity Framework.�El tipo de resultado de la consulta no es EntityType ni CollectionType con un tipo de elemento de entidad. Sólo se puede especificar una ruta de acceso Include para una consulta con uno de estos tipos de resultado.�La ruta de acceso Include especificada no es válida. EntityType '{0}' no declara una propiedad de navegación con el nombre '{1}'.fHubo un error al analizar la ruta de acceso Include. Se encontró una propiedad de navegación vacía.5La ruta de acceso sólo consta de espacios en blanco.aNo se pudo determinar el tipo de resultado de la consulta porque faltan los metadatos requeridos.�La colección de la proyección es de tipo '{0}'. Para que una colección se materialice en una proyección, debe ser de tipo ICollection<T>, IList<T>, ISet<T> o de un tipo concreto que implemente ICollection<T> y tenga un constructor sin parámetros.tEl tipo de matriz '{0}' no se puede inicializar en un resultado de consulta. Considere la posibilidad de usar '{1}'.UObjectStateEntry es una entrada  de clave y sus valores originales no son accesibles.aObjectStateEntry es una entrada de clave. No es posible llamar a Delete en las entradas de clave.SObjectStateEntry es una entrada de clave y su estado no puede ser el de modificado.\La propiedad '{0}' es parte de la información de clave del objeto y no se puede modificar. �El objeto se encuentra en estado separado o eliminado. Cuando ObjectStateEntry se encuentra en este estado no se puede modificar.kObjectStateEntry es una entrada de relación. El estado de las entradas de relación no se puede modificar.�ObjectStateEntry es una entrada de relación. Los valores actual y original de las entradas de relación no se pueden modificar.`La propiedad EntityKey sólo se puede establecer cuando el valor actual de la propiedad es NULL.�La propiedad '{0}' no tiene una asignación de entidad válida en el tipo complejo. Para obtener más información, consulte la documentación de Entity Framework.�La propiedad '{0}' no tiene una asignación de entidad válida en el objeto entidad. Para obtener más información, consulte la documentación de Entity Framework.�No se puede realizar el seguimiento de estado del objeto que ha cambiado de '{0}' a '{1}', debido a la llamada anterior a EntityMemberChanging o EntityComplexMemberChanging en la misma herramienta de seguimiento de cambios con el mismo nombre de propiedad. Para obtener más información acerca de cómo notificar debidamente los cambios, consulte la documentación de Entity Framework. �La entidad de tipo '{0}' hace varias veces referencia al mismo objeto complejo de tipo '{1}'. Una entidad no puede hacer varias veces referencia al mismo objeto complejo.�ObjectStateEntry no tiene los valores actuales. Los objetos que se encuentran en estado eliminado o separado no pueden tener valores actuales.�Se llamó a EntityMemberChanged o EntityComplexMemberChanged sin llamar primero a EntityMemberChanging o EntityComplexMemberChanging en la misma herramienta de seguimiento de cambios con el mismo nombre de propiedad. Para obtener más información acerca de cómo notificar debidamente los cambios, consulte la documentación de Entity Framework. �El objeto se encuentra en un estado separado. Esta operación no se puede realizar en ObjectStateEntry cuando el objeto está separado.�No se pudo establecer el valor de la propiedad compleja. Las propiedades complejas deben establecerse en un objeto que implemente IExtendedDataRecord.�El valor original de la propiedad '{0}' no se puede establecer en null porque el miembro '{1}' en el tipo de entidad '{2}' no acepta valores null.�ObjectStateEntry no tiene valores originales. Los objetos que se encuentran en un estado agregado o separado no pueden tener valores originales. �No se puede devolver un objeto RelationshipManager para esta instancia de ObjectStateEntry. Solo las instancias de ObjectStateEntry que representan una entidad tienen asociado un objeto RelationshipManager.dLa propiedad '{0}' no es una propiedad válida en el objeto al que hace referencia ObjectStateEntry.bNo es posible llamar a {0} porque el objeto no se encuentra en un estado modificado o sin cambios.�No se puede establecer el valor original de la propiedad '{0}' porque es una propiedad compleja. Las propiedades escalares individuales se pueden establecer en un tipo complejo si primero se obtiene el tipo como OriginalValueRecord de los valores originales de la entidad.yNo se puede establecer el valor original de la propiedad '{0}' porque la propiedad forma parte de la clave de la entidad.�La propiedad de navegación '{0}' en la entidad de tipo '{1}' debe implementar IEnumerable para que Entity Framework pueda realizar un seguimiento de los cambios en las colecciones.�AcceptChanges no puede continuar porque el valor de EntityKey del objeto es null o no es una clave temporal. Esto puede ocurrir cuando la propiedad EntityKey se modifica mientras el objeto se encuentra en un estado agregado.~El estado de la relación solo se puede cambiar a Added o Detached si el estado de la entidad de origen o de destino es Added.�El estado de la relación solo se puede cambiar a Deleted o Detached si el estado de la entidad de origen o de destino es Deleted.VNo se puede cambiar el estado de una relación si uno de sus extremos es una KeyEntry.�AcceptChanges no puede continuar porque los valores de clave del objeto están en conflicto con otro objeto en ObjectStateManager. Asegúrese de que los valores de clave son únicos antes de llamar a AcceptChanges.�No se puede devolver un RelationshipManager para este objeto. Solo se puede devolver un RelationshipManager para los objetos de los que ObjectStateManager realiza un seguimiento o que implementan IEntityWithRelationships.uEl método ChangeRelationshipState no se admite para las relaciones que se definen mediante valores de clave externa.�No se puede cambiar el estado del objeto. Esta excepción se puede producir cuando una o varias propiedades de clave principal se establecen en null. Los objetos no agregados no pueden tener valores null de clave principal. Consulte la excepción interna para obtener información detallada.LSe han detectado cambios en conflicto en el rol '{0}' de la relación '{1}'.ULos objetos que se encuentran en un estado separado no existen en ObjectStateManager.�Ya existe un objeto con la misma clave en ObjectStateManager. El objeto existente se encuentra en un estado {0}. Sólo es posible agregar un objeto a ObjectStateManager de nuevo si se encuentra en un estado agregado.�No es posible agregar el objeto al contexto de objeto. EntityKey del objeto tiene una ObjectStateEntry que indica que el objeto ya está participando en una relación diferente.�No se encontró en el ObjectStateManager un objeto con una clave que coincida con la clave del objeto proporcionado. Compruebe que los valores de clave del objeto proporcionado coincidan con los del objeto al que deben aplicarse los cambios..EntityType '{0}' no existe en EntitySet '{1}'.YUn objeto de tipo '{0}' debe tener un valor de EntityKey correspondiente que no sea NULL./El valor de EntityKey del objeto no es válido.�El valor de una propiedad que forma parte de la clave de un objeto no coincide con el valor de propiedad correspondiente almacenado en ObjectContext. Esto puede ocurrir si las propiedades que forman parte de la clave devuelven valores incoherentes o incorrectos, o si no se llama a DetectChanges después de que se hayan realizado cambios en una propiedad que forme parte de la clave.�No se puede adjuntar el objeto porque el valor de una propiedad que forma parte de la EntityKey no coincide con el valor correspondiente en la EntityKey._EntityKey, que se ha proporcionado, no tiene una entrada correspondiente en ObjectStateManager.`ObjectStateManager no contiene un ObjectStateEntry con una referencia a un objeto de tipo '{0}'.�Ya existe un objeto con la misma clave en ObjectStateManager. ObjectStateManager no puede realizar el seguimiento de varios objetos con la misma clave.�El método IBindingList.AddNew no se admite al enlazar una colección de tipos abstractos. Debe usar en su lugar el método IList.Add.XNo es posible reemplazar el objeto o la fila de datos en la interfaz de enlace de datos.�No se pudo agregar el objeto a la colección enlazada. No se pudo determinar el EntitySet específico para el objeto de tipo '{0}'.gEl objeto que se va a agregar es de un tipo que no es compatible con el tipo de la colección enlazada._No se admite la operación de inserción basada en índice en esta interfaz de enlace de datos.ZNo es posible realizar actualizaciones en una interfaz de enlace de datos de solo lectura.oEl tipo de elemento de la colección OFTYPE debe hacer referencia a un EntityType. El tipo pasado es {0} '{1}'.qEl tipo de elemento de la colección OFTYPE debe hacer referencia a un tipo nominal. El tipo pasado es {0} '{1}'.QEl argumento de tipo OFTYPE ONLY no es válido porque '{0}' es un tipo abstracto.YNo se admiten las conexiones de entidades; sólo se admiten conexiones de almacenamiento.NNo es posible realizar la operación porque la colección es de sólo lectura.LNo es posible realizar la operación porque el elemento es de sólo lectura.LEl tipo de claves de ordenación de ORDER BY debe tener un orden comparable.kCada nombre de parámetro de una función debe ser único. El nombre de parámetro '{0}' ya se ha definido.:No se admite el parámetro de comando '{0}' de tipo '{1}'..No se definió el parámetro de comando '{0}'.EERROR INTERNO: el analizador encontró un error y no puede continuar.1ERROR INTERNO: el flujo de entrada no es válido.`El tipo de expresión {0} se debe poder convertir en un tipo Edm.Int64. El tipo pasado es '{1}'.SLa expresión {0} debe ser un parámetro de comando o un literal de número entero.<El valor de la expresión {0} debe ser mayor o igual a cero.�El operando {0} de {1} no es válido porque no se puede realizar una comparación de igualdad de su tipo '{2}'. Solo se puede realizar una comparación de igualdad de tipos primitivos, de enumeración, de entidad, de fila y de referencia.<La expresión izquierda debe ser un tipo string o numérico.:La expresión derecha debe ser un tipo string o numérico.�La propiedad de navegación de la colección '{0}' de tipo '{1}' devolvió un valor null. Para que una colección se inicialice automáticamente, debe ser de tipo ICollection<T>, IList<T>, ISet<T> o de un tipo concreto que implemente ICollection<T> y tenga un constructor sin parámetros.uNo se puede establecer el campo o la propiedad {0} del tipo de entidad {1}. Vea InnerException para obtener detalles.RLa propiedad de navegación de tipo '{0}' no es una sola implementación de '{1}'.9La precisión '{0}' debe ser mayor que la escala '{1}'.  rLa precisión '{0}' no es válida. La precisión debe estar comprendida entre '{1}' y '{2}' para el tipo de '{3}'.dCada nombre de propiedad de un tipo debe ser único. El nombre de propiedad '{0}' ya se ha definido.LLa propiedad {0} no es válida. Ya hay definido un tipo para esta propiedad.+El proveedor no creó un CommandDefinition.<El proveedor no devolvió una instancia de ProviderManifest.>El proveedor no devolvió una cadena de ProviderManifestToken.=El proveedor no devolvió una instancia de DbSpatialServices.&El proveedor no admite CreateDatabase.,El proveedor no admite CreateDatabaseScript.&El proveedor no admite DatabaseExists.&El proveedor no admite DeleteDatabase.0El proveedor subyacente no admite el tipo '{0}'.vEl proveedor subyacente devolvió un valor null al intentar incluir la cadena especificada en una secuencia de escape.ANo se pudo obtener el manifiesto del proveedor de almacenamiento.�Este proveedor no admite el árbol de comandos especificado. Se debe usar EntityClient para crear una definición de comando a partir de este árbol de comandos.@El proveedor devolvió un valor NULL de CreateCommandDefinition.@El proveedor devolvió un valor NULL para informationType '{0}'.�Como el proveedor subyacente ha invalidado DbProviderManifest.SupportsEscapingLikeArgument para devolver true, el proveedor debe implementar también el método DbProviderManifest.EscapeLikeArgument.AEl argumento REF debe ser de EntityType. El tipo pasado es '{0}'.cEl argumento REF debe especificar un EntityType. La especificación de tipo '{0}' representa '{1}'.kEl elemento ReferenceType solo puede hacer referencia a un EntityType. '{0}' no se declara como EntityType.gEl tipo de expresión de extremo relacionado '{0}' debe poder promoverse al tipo de extremo 'to' '{1}'.DLa expresión de extremo relacionado debe ser de tipo de referencia.JNo se puede agregar un elemento a una Array de tamaño fijo de tipo '{0}'.�El objeto que se encuentra en el rol de '{0}' no se puede agregar automáticamente al contexto porque se recuperó usando la opción de combinación NoTracking. Asocie explícitamente la entidad a ObjectContext antes de definir la relación.nNo se puede definir la relación entre dos objetos porque están asociados a objetos ObjectContext diferentes.JNo se puede quitar un elemento de una Array de tamaño fijo de tipo '{0}'.�No se pudo serializar el objeto {0}. Este tipo de objeto no se puede serializar cuando RelationshipManager pertenece a un objeto entidad que no implementa IEntityWithRelationships.�La relación que se está agregando entra en conflicto con una relación existente. Considere la posibilidad de eliminar la relación anterior y llamar a ObjectContext.DetectChanges.�La relación no se puede definir porque el nombre de EntitySet '{0}.{1}' no es válido para el rol '{2}' en un nombre de conjunto de asociaciones '{3}.{4}'.}No es posible agregar, adjuntar ni quitar un objeto de tipo '{0}' de una EntityCollection que contiene objetos de tipo '{1}'.tUn objeto de tipo '{0}' no se puede establecer ni quitar de la propiedad Value de una EntityReference de tipo '{1}'.wEl objeto que se va a asociar con el objeto de origen no está asociado al mismo ObjectContext que el objeto de origen.�El objeto que se va a asociar se encuentra en un estado agregado o eliminado. No se pueden crear relaciones para objetos en este estado.�El objeto que se encuentra en el índice {0} dentro de la colección especificada de objetos no está asociado con el mismo ObjectContext que el objeto de origen de esta EntityCollection.eEl objeto que se encuentra en el índice {0} dentro de la colección de objetos especificada es NULL.�El objeto que está en el índice {0} dentro de la colección especificada de objetos se encuentra en un estado eliminado o agregado. No se pueden crear relaciones para los objetos en este estado.�Adjuntar no es una operación válida cuando el objeto de origen asociado a este extremo relacionado se encuentra en estado agregado, eliminado o separado. Los objetos cargados mediante la opción de combinación NoTracking siempre están separados.uSe detectó una corrección de relación no válida en la propiedad de navegación '{0}' de la entidad de tipo '{1}'.�Cuando se devuelve un objeto con una opción de combinación NoTracking, no es posible llamar a Load cuando la propiedad IsLoaded es true.�Cuando se devuelve un objeto con una opción de combinación NoTracking, sólo es posible llamar a Load cuando EntityCollection o EntityReference no contienen objetos.�Los objetos relacionados no se pueden cargar usando la opción de combinación {0}. No es posible crear relaciones cuando un objeto se recuperó mediante la opción de combinación NoTracking y el otro objeto se recuperó usando una opción de combinación diferente.�No se permite la operación solicitada cuando el propietario de este RelatedEnd es NULL. Los objetos RelatedEnd que se crearon con el constructor predeterminado sólo deben usarse como contenedor durante la serialización.ANo se pudo cargar {0} porque no se ha asociado con ObjectContext.@No se encontró al menos un extremo relacionado en la relación.�El objeto no se pudo agregar a EntityCollection o EntityReference. Un objeto que está asociado a ObjectContext no se puede agregar a EntityCollection o EntityReference si no están asociadas con un objeto de origen. LNo se permite agregar una relación con una entidad cuyo estado sea Deleted.�No se pudo eliminar el objeto de EntityCollection o EntityReference. Un objeto que está asociado a ObjectContext no se puede eliminar de EntityCollection o EntityReference si no están asociadas con un objeto de origen.>El extremo 'from' de la relación es ambiguo en este contexto.�Este RelationshipManager no puede devolver el RelatedEnd. Un RelatedEnd solo puede ser devuelto por un RelationshipManager de objetos de los que el ObjectStateManager realiza un seguimiento o que implementan IEntityWithRelationships.�Se ha detectado una ruta de acceso de relación circular mientras se aplicaba una restricción de integridad referencial. No es posible aplicar la integridad referencial en relaciones circulares.+EntityCollection ya se ha inicializado. {0}�Sólo se debe llamar al método InitializeRelatedCollection para inicializar una nueva EntityCollection durante la deserialización de un gráfico de objeto.�No se pudo inicializar EntityCollection porque el administrador de relaciones para el objeto al que EntityCollection pertenece ya se ha asociado a ObjectContext. {0}�Se produjo una infracción de una restricción de integridad referencial: los valores de propiedad que definen las restricciones referenciales no son coherentes entre los objetos principal y dependiente de la relación.�InitializeRelatedReference sólo se debe usar para inicializar una nueva EntityReference durante la deserialización de un objeto entidad.�El administrador de relaciones proporcionado por el objeto que implementa IEntityWithRelationships no es el administrador de relaciones esperado.�La relación '{0}' no contiene el rol '{1}'. Asegúrese de que EdmRelationshipAttribute, que define esta relación, tiene los nombres de rol correctos. Para obtener más información, consulte la documentación de Entity Framework.BNo se pudo encontrar la propiedad de navegación especificada {0}.�El administrador de relaciones se definió con un propietario de tipo '{0}', que no es compatible con el tipo '{1}' para el rol de origen '{2}' en la relación especificada, '{3}'.*Ya se ha inicializado EntityReference. {0}�EntityReference no se pudo inicializar porque el administrador de relaciones del objeto al que pertenece la referencia de entidad ya está asociado con ObjectContext. {0}�No se pudo recuperar la información de metadatos para la relación '{0}'. Si se usan atributos de asignación, asegúrese de que el EdmRelationshipAttribute de la relación se ha definido en el ensamblado. Cuando se usa la asignación basada en convenciones, no se puede determinar la información de metadatos para las relaciones entre las entidades desasociadas.�Se produjo una infracción en las restricciones de integridad referencial: no se pudieron recuperar todos los valores de propiedad que definen restricciones de integridad referencial desde las entidades relacionadas.�No se pudo completar la operación solicitada porque el objeto que implementa IEntityWithRelationships devolvió un valor NULL desde la propiedad RelationshipManager.�La operación no se pudo completar porque el objeto al que pertenece el administrador de relaciones estaba asociado con ObjectContext antes de crear una instancia del administrador de relaciones.�EdmRelationshipNavigationPropertyAttribute de NavigationProperty '{0}' en EntityType '{1}' tiene como RelationshipName '{2}', que no es válido. Asegúrese de que RelationshipName es válido.,El extremo de destino '{0}' debe ser único.<El extremo 'to' de la relación es ambiguo en este contexto.9El tipo especificado '{0}' debe ser un tipo de relación.OLa faceta (Facet) '{0}' se debe especificar para propiedades con tipo de '{1}'.CLa expresión resultante de la consulta no puede ser NULL sin tipo.MEl argumento derecho de la expresión de conjunto debe ser de CollectionType.�La propiedad para la relación '{0}' contiene un Role '{1}' que tiene un tipo '{2}' que no es válido para un End de relación. Cambie el End Role a un EntityType.9El constructor ROW no puede tener columnas NULL sin tipo.AEl elemento RowType debe tener al menos un elemento de propiedad.�Los dos Ends de EdmRelationshipAttribute para la relación '{0}' tienen el mismo nombre de Role '{1}'. Los extremos de una relación deben tener nombres de Role diferentes.�En la relación '{0}', el Principal y Dependent Role de la restricción referencia hacen referencia al mismo Role en el tipo de relación.gLa escala '{0}' no es válida. La escala debe estar comprendida entre '{1}' y '{2}' para el tipo '{3}'.cEl tipo de la expresión de proyección debe ser comparable en igualdad cuando se usa con DISTINCT.�En EntityContainer '{4}', Role '{0}' de '{1}' y '{2}' AssociationSet hace referencia al mismo EntitySet '{3}'. Asegúrese de que si dos o más AssociationSet hacen referencia al mismo AssociationType, los extremos no hacen referencia al mismo EntitySet.^El tipo de origen de la relación '{0}' debe poder promoverse al tipo de extremo 'from' '{1}'.<Archivo desconocido>�Actualmente, solo se admiten tipos espaciales cuando se usan en archivos de CSDL que tienen la anotación UseStrongSpatialTypes establecida en un valor false en su elemento de esquema raíz.gEl valor de DbGeography especificado no es compatible con esta implementación de servicios espaciales.fEl valor de DbGeometry especificado no es compatible con esta implementación de servicios espaciales.fEl valor del proveedor especificado no es compatible con esta implementación de servicios espaciales.OEl DbWellKnownGeographyValue no contiene texto conocido ni un binario conocido.NEl DbWellKnownGeometryValue no contiene texto conocido ni un binario conocido.�La propiedad WellKnownValue se ha diseñado para permitir la serialización y deserialización, y no se debe establecer directamente.�La ejecución de esta consulta requiere el operador APPLY, que no es compatible con las versiones de SQL Server anteriores a SQL Server 2005.gLa función de EDM '{0}' no es compatible con las versiones de SQL Server anteriores a SQL Server 2008.KEl argumento DATEPART de la función '{0}.{1}' debe ser una cadena literal.Q'{0}' no es un valor válido para el argumento DATEPART de la función '{1}.{2}'.�Las funciones incluidas en el manifiesto del proveedor que tienen el atributo NiladicFunction='true' no pueden tener declaraciones de parámetro.�En las versiones de SQL Server anteriores a SQL Server 2005, no se admite el uso de parámetros como argumentos de una subcláusula TOP y una subcláusula LIMIT en una consulta ni una LimitExpression en un árbol de comandos.�En las versiones de SQL Server anteriores a SQL Server 2005, no se admite el uso de parámetros como argumentos de una subcláusula SKIP en una consulta ni una SkipExpression en un árbol de comandos.No hay ningún tipo de almacén que se asigne al tipo de EDM '{0}' en las versiones de SQL Server anteriores a SQL Server 2008.ISQL Server no admite expresiones constantes de tipo {0} con el valor NaN.ZSQL Server no admite expresiones constantes de tipo {0} con el valor {1}.NegativeInfinity.ZSQL Server no admite expresiones constantes de tipo {0} con el valor {1}.PositiveInfinity.�Esta operación requiere una conexión a la base de datos 'master'. No se puede crear una conexión a la base de datos 'master' porque se ha abierto la conexión de base de datos original y se han quitado las credenciales de la cadena de conexión. Suministre una conexión sin abrir.uNo se puede eliminar la base de datos. No hay ninguna base de datos que corresponda al AttachDBFilename especificado.�No se pudo abrir una conexión a la base de datos especificada. Consulte InnerException para obtener información detallada. Sin embargo, hay una base de datos registrada con el servidor que se corresponde con el AttachDbFilename especificado.zNo se puede completar la operación. El SqlConnection proporcionado no especifica un catálogo inicial o AttachDBFilename.`El valor de DbGeography especificado no se pudo convertir en un valor compatible con SQL Server._El valor de DbGeometry especificado no se pudo convertir en un valor compatible con SQL Server.�La creación de la base de datos se ha realizado correctamente pero no la de los objetos de la base de datos. También se produjo un error al intentar borrar la base de datos. Consulte InnerException para obtener más detalles.8Para obtener más información consulte InnerExceptions.KSe esperaba un valor de geografía, pero se encontró un valor de tipo {0}.KSe esperaba un valor de geometría, pero se encontró un valor de tipo {0}.{Los lectores espaciales solo se pueden generar desde lectores de tipo SqlDataReader. Se proporcionó un lector de tipo {0}.VLas funciones y tipos espaciales solo son compatibles con SQL Server 2008 o posterior.�Las funciones y tipos espaciales no están disponibles para este proveedor porque no se encontró el ensamblado 'Microsoft.SqlServer.Types' versión 10 o posterior. �El valor del proveedor especificado no es compatible con esta implementación de servicios espaciales. Se requiere un valor de tipo '{0}'.�No se pudo recuperar un valor del identificador del sistema de referencia espacial (SRID) a partir del valor de DbGeography especificado.[El valor de DbGeography especificado no proporcionó un binario conocido ni texto conocido.�No se pudo recuperar un valor del identificador del sistema de referencia espacial (SRID) a partir del valor de DbGeometry especificado.ZEl valor de DbGeometry especificado no proporcionó un binario conocido ni texto conocido.OERROR INTERNO: hubo un desbordamiento de la pila en el analizador de consultas.�El nombre de EntityContainer de almacenamiento '{0}' especificado en este esquema de asignación no coincide con el nombre de EntityContainer de almacenamiento '{1}' especificado en esquemas de almacenamiento anteriores para EntityContainer '{2}' en el modelo conceptual. Asegúrese que especifica exactamente una asignación por cada EntityContainer, o si desea especificar una asignación parcial, asegúrese de que se asignan al mismo EntityContainer de almacenamiento.XEl argumento '{0}' no es válido. Se debe proporcionar como mínimo un artefacto .ssdl. �El espacio de nombres '{0}' es un espacio de nombres del sistema y no lo pueden usar otros esquemas. Elija otro nombre de espacio de nombres.rTodas las propiedades del tipo de fila devuelto por una función definida para almacenamiento deben ser escalares.�EntitySet '{0}' tiene tanto un atributo Table o Schema como un elemento DefiningQuery. Los atributos Table y Schema en EntitySet son mutuamente excluyentes con el elemento DefiningQuery. Use sólo los tributos Table y Schema o el elemento DefiningQuery.�EdmRelationshipNavigationPropertyAttribute para RelationshipType '{3}' de NavigationProperty '{0}' en EntityType '{1}' tiene un nombre de TargetRole '{2}' que no es válido. Asegúrese de que el nombre de TargetRole es un nombre válido. 4El elemento de esquema actual no admite texto ({0}).xLa asociación (Association) {0} no es válida. Las asociaciones (Associations) sólo pueden contener dos elementos End.[No es posible usar las subcláusulas TOP y LIMIT juntas en la misma expresión de consulta.uNo es posible usar las subcláusulas TOP y SKIP juntas en la misma expresión de consulta. Use LIMIT en lugar de TOP..'{0}' es menor que el valor mínimo permitido.jLa especificación de tipo tiene un número incorrecto de argumentos. El tipo '{0}' tiene {1} parámetros..'{0}' es mayor que el valor máximo permitido.kEl argumento de tipo no es un literal de constante válido o no está comprendido en el intervalo esperado.IEl argumento de especificación de tipo debe ser un literal de constante.NEl tipo debe declararse a través de un atributo o subelemento, pero no ambos.)'{0}' no admite la especificación '{1}'.+'{0}' no admite la especificación de tipo.�El miembro de {0} '{1}' y el miembro de {2} '{3}' no son compatibles para esta operación, porque no son la misma clase de tipo.�Los tipos de todas las propiedades de la entidad Dependent Role de una restricción referencial deben ser los mismos que los tipos de propiedad correspondientes en la entidad Principal Role. El tipo de propiedad '{0}' en la entidad '{1}' no coincide con el tipo de propiedad '{2}' en la entidad '{3}' en la restricción referencial '{4}'.,Falta la declaración de tipos del elemento.WEl argumento de tipo '{0}' debe especificar un EntityType. El tipo pasado es {1} '{2}'.FEl tipo de expresión debe ser EntityType, ComplexType o ReferenceTypeYEl argumento de tipo '{0}' debe especificar un tipo nominal. El tipo pasado es {1} '{2}'.]Cada nombre de tipo en un esquema debe ser único. El nombre de tipo '{0}' ya se ha definido.�No se encuentra el tipo '{0}'. Asegúrese de que los esquemas necesarios están cargados y de que los espacios de nombres se han importado correctamente.lEl tipo '{0}' especificado no es el tipo declarado '{1}' o una derivación del tipo de AssociationSet '{2}'.gEl tipo '{0}' especificado no es el tipo declarado '{1}' o una derivación del tipo de EntitySet '{2}'.uNo se pudo determinar el contexto de la aplicación. La ruta de acceso de la aplicación ASP.NET no se pudo resolver.�No se pudo determinar la versión de almacenamiento; se requiere una sugerencia de versión o una conexión de almacenamiento válida.:No se pudo encontrar el tipo '{0}' en el ensamblado '{1}'.:No se pudo cargar los archivos de metadatos especificados.(No se pudo resolver el ensamblado '{0}'.NURI {0} no es aceptable. Los URI deben ser absolutos o especificar un archivo.�Se esperaba el elemento {1} en el espacio de nombres {0} para el elemento de raíz. El esquema esperado es uno de los siguientes espacios de nombre: {2}.{Se esperaba el elemento {1} para el elemento de raíz. El esquema esperado es uno de los siguientes espacios de nombre:{2}.BSe encontró un elemento de tipo inesperado {0} en el índice {1}.'Atributo de esquema no reconocido: {0}.'Elemento de esquema no reconocido: {0}.Tipo XmlNode inesperado: {0}.PERROR INTERNO: la expresión Ast no es un tipo de expresión de comando válido.;ERROR INTERNO: la expresión Ast tiene un tipo desconocido.VERROR INTERNO: el tipo de expresión Ast integrada que se especificó es desconocido. QERROR INTERNO: la resolución de la expresión tiene una clase '{0}' desconocida.�No se puede determinar el extremo principal de la relación '{0}'. Es posible que varias entidades agregadas tengan la misma clave principal.�Un valor compartido para entidades o asociaciones está generado en más de una ubicación. Compruebe que la asignación no divide EntityKey en varias columnas generadas por el almacén.PSe detectaron relaciones circulares con restricciones de integridad referencial.�La instrucción update, insert o delete de almacenamiento afectó a un número inesperado de filas ({0}). Es posible que las entidades se hayan modificado o eliminado desde que fueron cargadas. Actualice las entradas de ObjectStateManager.�No se pudo determinar una ordenación válida para operaciones dependientes. Pueden existir dependencias debidas a restricciones de clave externa, requisitos de modelo o valores generados por el almacén.ySe han detectado cambios en conflicto. Esto puede ocurrir cuando se intenta insertar varias entidades con la misma clave.cError al recuperar valores desde ObjectStateEntry. Vea la excepción interna para obtener detalles.kSe produjo un error mientras se actualizaban las entradas. Vea la excepción interna para obtener detalles.yUna propiedad dependiente en ReferentialConstraint está asignada a una columna generada por el almacén. Columna: '{0}'.qNo se puede insertar ni actualizar una entidad porque el extremo principal de la relación '{0}' se ha eliminado.�Se han encontrado datos no válidos. Falta una relación que es necesaria. Examine StateEntries para determinar el origen de la infracción de la restricción.GNo se encontró una asignación de actualización para EntitySet '{0}'.�Para poder actualizar AssociationSet '{0}', la entidad correspondiente de EntitySet '{1}' debe estar disponible en ObjectStateManager.ONo se encuentra {0}FunctionMapping para {1} '{2}' en el archivo de asignación.�Una relación del AssociationSet  '{0}' se encuentra en el estado '{1}'. Dadas las restricciones de multiplicidad, una '{2}' correspondiente también debe estar en el estado '{1}'.�Una asignación de función para EntitySet '{0}' requiere que se carguen las asociaciones correspondientes en AssociationSet '{1}'. Cargue AssociationSet antes de guardar los cambios en EntitySet.qUna asignación de función especifica una columna de resultados '{0}' que el conjunto de resultados no contiene.`No se admite la modificación de una columna con el patrón '{0}'. Columna: '{1}'. Tabla: '{2}'.�No se admiten modificaciones en tablas donde la columna de clave principal tiene la propiedad '{0}' establecida como '{1}'. Use el patrón '{2}' en su lugar. Columna de clave: '{3}'. Tabla: '{4}'.�Solo se admiten claves generadas por el almacén para las columnas de identidad. La columna de clave '{0}' tiene el tipo '{1}', que no es un tipo válido para una columna de identidad.�Solo se admiten claves generadas por el almacén para columnas de identidad. Hay más de una columna de clave marcada como generada por el servidor en la tabla '{0}'.sSe devolvió un valor NULL generado por el almacén para un miembro '{0}' de tipo '{1}' que no admite valores NULL.FValor NULL para el miembro que no admite valores NULL. Miembro: '{0}'.�Infracción de la restricción de integridad referencial. Dependent Role tiene varias entidades de seguridad con valores diferentes.�Las entidades de '{0}' participan en la relación '{1}'. Se encontró '{2}' '{3}' relacionadas. Se esperaban entre {4} y {5} '{3}'.uLas entidades de '{0}' participan en la relación '{1}'. Se encontró {2} '{3}' relacionadas. Se esperaba: {4} '{3}'.�Puede haber un máximo de '{0}' relaciones en estado '{1}' para la relación '{2}' desde End '{3}' a una instancia de End '{4}'. Se encontraron '{5}' instancias.�No es posible convertir un valor generado por el almacén de tipo '{0}' en un valor de tipo '{1}' obligatorio para el miembro '{2}' de tipo '{3}'.�No se pudo actualizar EntitySet '{0}' porque tiene DefiningQuery y no existe ningún elemento <{1}> en el elemento <{2}> que admita la operación actual.cNo se pudo determinar las filas afectadas. El valor del parámetro '{0}' no es convertible a '{1}'.�Error interno. Se usó un tipo no admitido ({0}) como argumento para convertir una expresión dentro de la vista de asignación de la actualización. El argumento debe ser escalar.�Error interno. El visitante ({1}) encontró una clase de expresión no admitida ({0}) en la vista de asignación de la actualización.�Error interno. EntitySet ({0}) tiene un tipo no admitido ({1}). Sólo es posible procesar EntitySets y AssociationSets en la canalización de actualización.�Error interno. Hay un tipo de combinación no admitida en la vista de asignación de la actualización ({0}). Sólo se admiten combinaciones externas izquierdas o internas binarias.�Error interno. Tipo de expresión de proyección ({0}) no admitido. Sólo se admiten proyecciones de DBNewInstanceExpression en vistas de asignación de la actualización.}MetadataWorkspace del cliente de entidades difiere del área de trabajo a la que hace referencia el administrador de estados.8Ya hay definido un miembro del mismo nombre en BaseType.)CollectionType tiene un uso de tipo NULL.;Los objetos de CollectionType no pueden tener un tipo base.&El elemento tiene la identidad vacía.La faceta no tiene un nombre.kEl objeto de la faceta tiene un valor NULL para FacetType. NULL no es un valor válido para esta propiedad.nLa propiedad del elemento tiene un valor NULL para TypeUsage. NULL no es un valor válido para esta propiedad.El miembro no tiene un nombre.cEl miembro tiene un valor NULL para DeclaringType. NULL no es un valor válido para esta propiedad.eEl miembro tiene un valor NULL para MemberTypeUsage. NULL no es un valor válido para esta propiedad.-La propiedad de metadatos no tiene un nombre.�El tipo '{0}' no tiene ningún miembro de clave. Tanto RelationshipType como EntityType deben tener miembros de clave o BaseType con miembros de clave.�Tanto EntityKeyProperty como IsNullable pueden ser true en EdmScalarPropertyAttribute para la propiedad '{0}' del tipo '{1}'. Las propiedades que son parte de la clave no admiten valores NULL.�La propiedad '{0}' del tipo '{1}' tiene como atributo EdmComplexPropertyAttribute pero devuelve el tipo '{2}', que no es un ComplexType reconocido.�La asignación del tipo CLR al tipo EDM es ambigua porque varios tipos CLR coinciden con el tipo EDM '{0}'. Tipo CLR anteriormente encontrado '{1}', tipo CLR recién encontrado '{2}'.�No se pueden cargar los tipos del ensamblado '{0}' porque el ensamblado contiene EdmSchemaAttribute y la clausura de los tipos se está cargando por nombre. No se permite la carga por nombre y atributo.PEl tipo base '{0}' del tipo '{1}' no coincide con el tipo base '{2}' del modelo.INo se cargó el tipo '{0}' porque el tipo base '{1}' no está disponible.YNo se encontró un tipo de capa de objetos correspondiente para el tipo conceptual '{0}'.8La propiedad requerida '{0}' no existe en el tipo '{1}'.�Existen varios tipos con el nombre '{0}' en la EdmItemCollection de diferentes espacios de nombres. La asignación basada en convenciones requiere nombres únicos independientemente del espacio de nombres en EdmItemCollection.vEl tipo subyacente del tipo de enumeración de CLR no coincide con el tipo subyacente del tipo de enumeración de EDM.pLa propiedad '{0}' del tipo '{1}' tiene el tipo de propiedad '{2}', que no se puede asignar a un tipo primitivo.INo se cargó la relación '{0}' porque no está disponible el tipo '{1}'.�El tipo '{0}' definido en la capa de objeto no es compatible con el tipo '{1}' definido en el modelo conceptual. No se puede asignar un tipo de enumeración a un tipo que no sea de enumeración.�La propiedad '{0}' del tipo '{1}' en el ensamblado '{2}' no se puede usar como propiedad escalar porque no tiene un captador ni un establecedor.�El EntityType o ComplexType '{0}' no se puede asignar por convención al tipo de valor '{1}'. No se pueden asignar tipos de valor a EntityTypes ni ComplexTypes.�La propiedad '{0}' del tipo '{1}' tiene un tipo de valor devuelto '{2}', que no es una enumeración de instancias de EntityType o un EntityType reconocido.�La propiedad '{0}' del tipo '{1}' tiene como atributo EdmScalarPropertyAttribute pero devuelve el tipo '{2}', que no es un tipo primitivo ni un tipo de enumeración reconocido.]RefType tiene un valor NULL para EntityType. NULL no es un valor válido para esta propiedad.5Los tipos de referencia no pueden tener un tipo base.El tipo no tiene nombre.'El tipo no tiene un espacio de nombres.lEl objeto de uso del tipo tiene un valor NULL para EdmType. NULL no es un valor válido para esta propiedad.KEl tipo '{0}' no es un tipo subyacente admitido para tipos de enumeración.(No se comprendió el valor de {1} ({0}).AND �Dada la cardinalidad de Association End Member {0}, su asignación debe realizarse a las columnas de clave de la tabla {1}. Corrija la asignación o cambie la multiplicidad de este extremo.jDebe especificar una asignación para todas las propiedades de clave ({0}) de End {1} en Relationship {2}.3{0} representa a Role '{1}' en AssociationSet '{2}'6{0} NO representa a Role '{1}' en AssociationSet '{2}'!Posible pérdida de datos en {0}.UPosible pérdida de datos o infracción de la restricción de claves en la tabla {0}.WAsignación insuficiente: es posible tener {0} dentro de {1} y que no se haya asignado.JNo se especificó ninguna asignación para las propiedades {0} en {1} {2}.ADebe especificar una asignación para todos los tipos en {0} {1}., lNo se pude definir un nuevo miembro de token de simultaneidad {0} en la clase derivada {1} de EntitySet {2}.PLos token de simultaneidad [{0}] en EntitySet {1} no deben tener una condición.aCada una de las columnas de la tabla {0} está asignada a varias propiedades del lado conceptual:{0} se ha asignado a <{1}>	entidadesEntidad\Debe especificar una asignación para todas las propiedades de clave ({0}) de EntitySet {1}.{0} está en EntitySet '{1}'{0} NO está en EntitySet '{1}'ERRORLHay un problema con los fragmentos de asignación a partir de la línea {0}:NHay un problema con los fragmentos de asignación a partir de las líneas {0}:
EstablecerORestricción de clave externa '{0}' de la tabla {1} ({2}) a la tabla {3} ({4}):�Asignación incorrecta de columnas de claves compuestas. {0} columnas ({1}) de la tabla {2} están asignadas a propiedades ({3}) en {4} y las columnas ({5}) de la tabla {6} están asignadas a propiedades ({7}) en {8}. No se conserva el orden de las columnas en las asignaciones.�{0} se ha asignado a AssociationSet {1}: para que esta asignación sea correcta, el límite de multiplicidad inferior del extremo {2} debe ser 1.�{0}: asignación insuficiente; la clave externa se debe asignar a algún AssociationSet o a EntitySets que participen en una asociación de clave externa en el lado conceptual.\Falta la asignación de tabla: {0}; no se especificó ninguna asignación para la tabla {1}.�La clave externa {0} no se está aplicando en el modelo. Es necesario crear una relación de herencia o una asociación para poder aplicar esta restricción.�{0} Las columnas de la tabla {1} están asignadas al End {3} de AssociationSet {2}, pero las columnas de clave de la tabla {4} no están asignadas a las claves de EntitySet {5} correspondientes a este End.�{0} se ha asociado a AssociationSet  {1}: para que esta asignación sea correcta el límite de multiplicidad superior del extremo {2} debe ser 1.�La información de asignaciones y metadatos para EntityContainer '{0}' ya no coincide con la información usada para crear las vistas previamente generadas.QNo se permiten las condiciones especificadas en el miembro {0} de este fragmento.�Al menos una de las propiedades de clave de AssociationSet {0} se debe asociar a todas las propiedades de clave ({1}) de la tabla {2}.oTodas las propiedades ({0}) de EntitySet {1} se deben asignar a las propiedades de clave ({2}) de la tabla {3}.�Infracción potencial en tiempo de ejecución de las claves ({2}) de la tabla {0}: las columnas ({1}) están asignadas a las propiedades ({4}) de EntitySet {3} en el lado conceptual pero no forman las propiedades ({5}) de clave de EntitySet.ZNo hay ninguna asignación especificada para el siguiente EntitySet o AssociationSet: {0}.qNo hay ninguna asignación especificada para las instancias de EntitySet y AssociationSet en EntityContainer {0}.GNo hay ninguna asignación especificada para los siguientes tipos: {0}.Valores distintos de [{0}]cSe debe asignar la columna {1} de la tabla {0}: no tiene ningún valor predeterminado y no es NULL.�La columna {0} no tiene ningún valor predeterminado y no admite valores NULL. Se requiere un valor de columna para almacenar datos de entidad.dSe están asignando columnas [{0}] en ambos fragmentos a diferentes propiedades del lado conceptual.NOT_NULLBSe debe asignar la propiedad {0} con la condición 'IsNull=false'.NULL{0} ={1}{0} no admite valores NULL{0} es igual que {1}{0} no es uno de {1}{0} es uno de {1}4, (por ejemplo, es uno de los siguientes tipos: {0}){0} debe ser igual a {1} {0} no debe admitir valores NULL{0} debe ser NULL{0} debe ser uno de {1}{0} no debe ser igual a {1}{0} no debe ser uno de {1}ZDebe especificar una asignación para todas las propiedades de clave ({0}) de la tabla{1}.filastAsignación insuficiente o contradictoria. No se pueden generar vistas de consulta para las entidades en {0} cuando:<Una entidad con clave ({0}) no será de ida y vuelta cuando:�Se ha asignado el miembro de la condición '{0}' con una condición distinta de 'IsNull=False'. Quite la condición en {0} o quítela de la asignación.JLos miembros de la condición {0} tienen valores de condición duplicados.�La columna {0} se usa en una condición Not Null pero está asignada a una propiedad {1} que acepta valores NULL. Considere la posibilidad de convertir esta propiedad de modo que no acepte valores NULL.�Una entidad está asignada a diferentes filas dentro de la misma tabla. Asegúrese de que los dos fragmentos de la asignación no asignan dos grupos de entidades con claves idénticas a dos grupos distintos de filas.�Una entidad está asignada a diferentes filas dentro de la misma tabla. Asegúrese de que los dos fragmentos de la asignación no asignan dos grupos de entidades con claves solapadas a dos grupos distintos de filas.�Dos entidades con claves idénticas están asignadas a diferentes filas dentro de la misma tabla. Asegúrese de que los dos fragmentos de la asignación no asignan dos grupos de entidades con claves solapadas a dos grupos distintos de filas.�Dos entidades que posiblemente tienen claves idénticas están asignadas a diferentes filas dentro de la misma tabla. Asegúrese de que los dos fragmentos de la asignación no asignan dos EntitySets no relacionados a dos grupos distintos de filas.�Dos entidades con claves diferentes están asignadas a la misma fila. Asegúrese de que los dos fragmentos de la asignación no asignan dos grupos de entidades con claves diferentes al mismo grupo de filas.�Dos entidades con claves diferentes están asignadas a la misma fila. Asegúrese de que los dos fragmentos de la asignación no asignan dos grupos de entidades con claves solapadas al mismo grupo de filas.�Dos entidades con claves diferentes están asignadas a la misma fila. Asegúrese de que los dos fragmentos de la asignación no asignan dos EntitySets con claves solapadas al mismo grupo de filas.�Dos entidades que posiblemente tienen claves diferentes están asignadas a la misma fila. Asegúrese de que los dos fragmentos de la asignación no asignan dos EntitySets no relacionados al mismo grupo de filas.�Hay dos entidades con claves posiblemente diferentes asignadas a la misma fila. Asegúrese de que estos dos fragmentos asignen ambos extremos del AssociationSet a las columnas correspondientes.�Los EntityTypes {0} están siendo asignados a las mismas filas de la tabla {1}. Se pueden usar las condiciones de asignación para distinguir las filas a las que se asignan estos tipos.�Dos entidades con claves diferentes están asignadas a la misma fila. Asegúrese de que los dos fragmentos de la asignación no asignan dos grupos de entidades con claves diferentes a dos grupos solapados de filas.�Dos filas con claves principales diferentes están asignadas a la misma entidad. Asegúrese de que los dos fragmentos de la asignación no asignan dos grupos de entidades con claves idénticas a dos grupos solapados de filas.�Dos filas con claves principales diferentes están asignadas a dos entidades que llevan las mismas claves idénticas en una restricción de integridad referencial. Asegúrese de que los dos fragmentos de la asignación no asignan dos EntitySets con claves idénticas a dos grupos solapados de filas.�Una entidad de EntitySet está asignada a una fila que a su vez está asignada a una entidad de otro EntitySet con una clave posiblemente diferente. Asegúrese de que los dos fragmentos de la asignación no asignan dos EntitySets no relacionados a dos grupos solapados de filas.pEntitySets '{1}' y '{2}' están asignados a la tabla '{0}'. Sus claves principales podrían entrar en conflicto.�Cuando hay un fragmento de asignación entre el EntitySet '{0}' y la tabla '{1}' con el atributo MakeColumnsDistinct marcado como 'true', no pueden haber fragmentos de asignación adicionales entre '{0}' y '{1}'.�No se pueden combinar los fragmentos de asignación. Asegúrese de que cada fragmento de asignación se asigne a una clave en la que debe combinarse con uno de los otros fragmentos de asignación.uLa columna {1}, que no admite valores NULL, de la tabla {0} está asignada a una propiedad de entidad que no es NULL.�No se pudo validar la asignación para EntitySet {0}. Compruebe que las restricciones de asignaciones son posibles en presencia de restricciones del lado del almacén. Tener una condición 'IsNull=True' en la asignación para una columna que no admite valores NULL es un ejemplo de restricción imposible.�Asegúrese de que los fragmentos de asignaciones para EntitySet {0} no asignan entidades con la misma clave principal a diferentes filas de la misma tabla.NLa función del enumerador de ensamblado de comodines devolvió un valor NULL.R�����	c�];C>M� Ⱦ��M� ��X9f�۶��(�u�6���C�ʂz�02�	p�����RZ��� ��׈���Rǟ��3�a�#�/�X����"W0�]Y!Z��	 �GBSJBv4.0.30319lx#~��#Stringsh#USp#GUID�#Blob�%3c�
'*Xs�u���Ucm���d�,g D�u��=͔rm��@0�b}�TS�3x\�a�f�A����� 2�5C<Module>System.Data.Entity.resourcesesSystem.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.es.resourcesSystem.Data.Entity.resources.dll l�����K���F@��y>y 0y_CorDllMainmscoree.dll�% @�0�	HX�,,4VS_VERSION_INFO��M#ovDVarFileInfo$Translation
��StringFileInfoh0c0a04b04CommentsFlavor=RetailLCompanyNameMicrosoft CorporationFFileDescription.NET Framework` FileVersion4.8.9037.0 built by: NET481REL1b!InternalNameSystem.Data.Entity.resources.dll�8LegalCopyright� Microsoft Corporation. Todos los derechos reservados.j!OriginalFilenameSystem.Data.Entity.resources.dllTProductNameMicrosoft� .NET Framework:ProductVersion4.8.9037.04
PrivateBuildDDBLD297ApP9�'0�'�	*�H��
��'�0�'�10
	`�He0\
+�7�N0L0
+�70	���010
	`�He ����t�kV��(�m����m����E��%��
�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" C��Dba������C��`�h�@���o�L�0B
+�71402��Microsoft��http://www.microsoft.com0
	*�H��
��;`�~��^L����M��'%�S˓�)�K�x1]��D��x�mqޔ޲P#ʿ�U��o�?y5�>�L1�a��z��#q��뀜���N2�.�~k
�Z�M�_o��l}�v�_�z&L�O��C��i^�>̫ ��G��K�pz���}��/�W�g�w��ٳ�m�A��s2�pv���MҮ;��ú�S��5����(��#��.)B�h�_��m�a���b��X�����'��0�
+�71�0�	*�H��
���0��10
	`�He0�Y*�H��
	��H�D0�@
+�Y
010
	`�He ��/������u���+��l䮬�n�/��ip�b�A��:20220625024350.028Z0��ؤ��0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1-0+U$Microsoft Ireland Operations Limited1&0$UThales TSS ESN:D082-4BFD-EEBA1%0#UMicrosoft Time-Stamp Service��h0�0���3��Q��Zr���0
	*�H��
0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100
211028192746Z
230126192746Z0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1-0+U$Microsoft Ireland Operations Limited1&0$UThales TSS ESN:D082-4BFD-EEBA1%0#UMicrosoft Time-Stamp Service0�"0
	*�H��
�0�
��W>����������l:�M�и�U{��;1_	(�D�k�ָ��|���Q�����:�MDLNxx�
��
6 �,���M��«�:�z-Xp���/���c�c���.�i1*#�	����7	��Hx�x}'
c~��f!.�,�,Y_���=�$�`O�r\�4^�w6�?�S�qO�Bl����t쵗���E�`�O��B��o�4p~;B_�KA�mE.��ONɛ������a���y����kh�a^�
<tI���5��Qr@�@dx'\��&�f��:���.:��2���fd���7{	?J�K���M��^�;u��#�ߊr(R���X�x�	�HE���h���Mtٴc��a���j���Ψk��O6/��o����P+�>B���3�����Z�͓�Ejpw�M�̦E'��i0���.+D8B1Qy�g��)��{̇�_xಲo<қD�$U����
��d���`��;��?^�Aua�[@���60�20U��tk�I��΅�ۗ�7#q�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��
��Ө�<����/"S�IcE�8�Ŝ	l�?b�'�ze2T�h^�����F��%+�l��9M���CDžGz�ǵ�D�i�3Z�1�O/�6�f�����s]4@�
UY�}
�WO2�Z��)���t��Ț) ����2�t������)��!��(��H_�)��=���RR[�w�
�~\�ep�`��%�ϱ���M��oZҎ�zg��=�����o�
����ۼ��۰Yso��wYo�:����)髿\Y'2O���dz&/�4 �N�b���o��8���頓[f��ӥI�#G
���&ʴi?8�J��ū&xb~%	
%u�wi��U?ϐ�D����Ѽ��;L}��CegV�^T�q��ث�k�V4�o�t�;�������#�H���)��S�.�T�@}���1h˦E��|&�5�p�qc�ۄ��[�?i�W�`Ifs�#�@�/琗�vD5w��kO�� r����Ot��>{(��뷩"�2Wotj-e��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 Ireland Operations Limited1&0$UThales TSS ESN:D082-4BFD-EEBA1%0#UMicrosoft Time-Stamp Service�#
0+>M/�v�HF�&��`[A�j���0���~0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100
	*�H��
�`�E0"20220625090301Z20220626090301Z0w0=
+�Y
1/0-0
�`�E0
I�0^0
�b.�06
+�Y
1(0&0
+�Y
�
0� �
0��0
	*�H��
��V�6�Pc��τ�lo"%���%m�O�
N�eV��]@����	c(~��}S}e��5 श�X@g47��w���v�6���׀�o�|�qja˖Bh�)��d��S5r渲Th؛�^Ey�l1��1�
0�	0��0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20103��Q��Zr���0
	`�He��J0	*�H��
	1
*�H��
	0/	*�H��
	1" cVE`����8fe�F�����v�V}ner��p�0��*�H��
	/1��0��0��0�� �rO�����"��b-��5��t�����̅�0��0���~0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20103��Q��Zr���0" �#I����6����-5*��}�;_4t��Ʈ�0
	*�H��
��`9�dŠdx�B��n�g<�grl�˲�X�F��b���Q�e�w�^�?�B��(HZ���G���|��Q����2֨8�VuB���X�&*Y����zx�ZWž�#
�QD��u�!�m��ʷ-[�����X���;F,L>'����)1�VV����z;(��-��#���*��m?[����M����"'N���=������ٲ�
�N�"\����8+����;��E&�=��!���\�r&���'(��RQS�FT
h��|���6��{�&�b�H�� �y(���l����ӑ�m�s��Y���Y�J����,�F�^��5�1F:�D/��8���v���j�O�TbV�uO��.�?,�kwNA*��`��]�'۠+�X[��9���������.�)���^R.��hH�#�8Qr�?W�l�[�q�]�?��:S���o���A��Ks���6]�S	�t
<G��o'b�%����b|�Y���5�

Youez - 2016 - github.com/yon3zu
LinuXploit