<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="EFSQLite" Provider="System.Data.SQLite.EF6" ProviderManifestToken="ISO8601" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
  <EntityContainer Name="Schema">
    <EntitySet Name="STables" EntityType="Self.Table">
      <DefiningQuery>
        SELECT
        '[' || TABLE_NAME || ']' COLLATE NOCASE [Id]
        ,   TABLE_CATALOG [CatalogName]
        ,   TABLE_SCHEMA [SchemaName]
        ,   TABLE_NAME    [Name]
        FROM
        TEMP.SCHEMATABLES
        WHERE
        TABLE_TYPE LIKE 'table'
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="STableColumns" EntityType="Self.TableColumn">
      <DefiningQuery>
        SELECT
        '[' || c.TABLE_NAME || ']' || '[' || c.COLUMN_NAME || ']' COLLATE NOCASE [Id]
        ,   '[' || c.TABLE_NAME || ']'  COLLATE NOCASE                     [ParentId]
        ,   c.COLUMN_NAME   [Name]
        ,   c.ORDINAL_POSITION [Ordinal]
        ,   c.IS_NULLABLE [IsNullable]
        ,   c.EDM_TYPE [TypeName]
        ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        ,   c.NUMERIC_PRECISION [Precision]
        ,   c.DATETIME_PRECISION [DateTimePrecision]
        ,   c.NUMERIC_SCALE [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]
        ,   0 as [IsMultiSet]
        ,   c.[AUTOINCREMENT] as [IsIdentity]
        ,   0 as [IsStoreGenerated]
        , c.COLUMN_DEFAULT as [Default]
        FROM
        TEMP.SCHEMACOLUMNS c
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViews" EntityType="Self.View">
      <DefiningQuery>
        SELECT
        '[' || TABLE_NAME || ']'  COLLATE NOCASE [Id]
        ,   TABLE_CATALOG             [CatalogName]
        ,   TABLE_SCHEMA              [SchemaName]
        ,   TABLE_NAME                [Name]
        ,   VIEW_DEFINITION           [ViewDefinition]
        ,   IS_UPDATABLE              [IsUpdatable]
        FROM
        TEMP.SCHEMAVIEWS
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewColumns" EntityType="Self.ViewColumn">
      <DefiningQuery>
        SELECT
        '[' || c.VIEW_NAME || ']' || '[' || c.VIEW_COLUMN_NAME || ']' COLLATE NOCASE [Id]
        ,   '[' || c.VIEW_NAME || ']' COLLATE NOCASE                             [ParentId]
        ,   c.VIEW_COLUMN_NAME   [Name]
        ,   c.ORDINAL_POSITION [Ordinal]
        ,   c.IS_NULLABLE [IsNullable]
        ,   c.EDM_TYPE [TypeName]
        ,   c.CHARACTER_MAXIMUM_LENGTH [MaxLength]
        ,   c.NUMERIC_PRECISION [Precision]
        ,   c.DATETIME_PRECISION as [DateTimePrecision]
        ,   c.NUMERIC_SCALE [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]
        ,   0 as [IsMultiSet]
        ,   c.[AUTOINCREMENT] as [IsIdentity]
        ,   0 as [IsStoreGenerated]
        ,   c.COLUMN_DEFAULT [Default]
        FROM
        TEMP.SCHEMAVIEWCOLUMNS c
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctions" EntityType="Self.Function">
      <DefiningQuery>
        SELECT
        NULL [Id]
        , NULL         [CatalogName]
        , NULL         [SchemaName]
        , NULL         [Name]
        , NULL         [ReturnTypeName]
        , NULL [ReturnMaxLength]
        , NULL        [ReturnPrecision]
        , NULL [ReturnDateTimePrecision]
        , NULL            [ReturnScale]
        , NULL        [ReturnCollationCatalog]
        , NULL         [ReturnCollationSchema]
        , NULL           [ReturnCollationName]
        , NULL    [ReturnCharacterSetCatalog]
        , NULL     [ReturnCharacterSetSchema]
        , NULL       [ReturnCharacterSetName]
        , NULL as        [ReturnIsMultiSet]
        , NULL as [IsAggregate]
        , NULL as [IsBuiltIn]
        , NULL as [IsNiladic]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SFunctionParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        NULL [Id]
        , NULL [ParentId]
        , NULL [Name]
        , NULL [Ordinal]
        , NULL [TypeName]
        , NULL [MaxLength]
        , NULL [Precision]
        , NULL [DateTimePrecision]
        , NULL    [Scale]
        , NULL [CollationCatalog]
        , NULL [CollationSchema]
        , NULL [CollationName]
        , NULL [CharacterSetCatalog]
        , NULL [CharacterSetSchema]
        , NULL [CharacterSetName]
        , NULL [IsMultiSet]
        , NULL [Mode]
        , NULL [Default]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedures" EntityType="Self.Procedure">
      <DefiningQuery>
        SELECT
        NULL [Id]
        , NULL         [CatalogName]
        , NULL          [SchemaName]
        , NULL            [Name]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SProcedureParameters" EntityType="Self.Parameter">
      <DefiningQuery>
        SELECT
        NULL [Id]
        , NULL [ParentId]
        , NULL [Name]
        , NULL [Ordinal]
        , NULL [TypeName]
        , NULL [MaxLength]
        , NULL [Precision]
        , NULL [DateTimePrecision]
        , NULL [Scale]
        , NULL [CollationCatalog]
        , NULL [CollationSchema]
        , NULL [CollationName]
        , NULL [CharacterSetCatalog]
        , NULL [CharacterSetSchema]
        , NULL [CharacterSetName]
        , NULL as [IsMultiSet]
        , NULL   [Mode]
        , NULL [Default]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraints" EntityType="Self.Constraint">
      <DefiningQuery>
        SELECT
        '[' || tc.CONSTRAINT_NAME || ']'  COLLATE NOCASE [Id]
        , '[' || tc.TABLE_NAME || ']'  COLLATE NOCASE [ParentId]
        , tc.CONSTRAINT_NAME [Name]
        , tc.CONSTRAINT_TYPE [ConstraintType]
        , tc.IS_DEFERRABLE [IsDeferrable]
        , tc.INITIALLY_DEFERRED [IsInitiallyDeferred]
        FROM
        TEMP.SCHEMACONSTRAINTS tc
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SCheckConstraints" EntityType="Self.CheckConstraint">
      <DefiningQuery>
        SELECT
        NULL [Id]
        , NULL [Expression]
        WHERE 1 = 2
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SConstraintColumns" EntityType="Self.ConstraintColumn">
      <DefiningQuery>
        SELECT
        '[' || CONSTRAINT_NAME || ']'  COLLATE NOCASE [ConstraintId]
        , '[' || TABLE_NAME || ']' || '[' || COLUMN_NAME    || ']'  COLLATE NOCASE [ColumnId]
        FROM
        TEMP.SCHEMACONSTRAINTCOLUMNS
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SForeignKeyConstraints" EntityType="Self.ForeignKeyConstraint">
      <DefiningQuery>
        SELECT DISTINCT
        '[' || rc.CONSTRAINT_NAME || ']'  COLLATE NOCASE [Id]
        , 'NO ACTION'  COLLATE NOCASE [UpdateRule]
        , 'NO ACTION'  COLLATE NOCASE [DeleteRule]
        FROM
        TEMP.SCHEMAFOREIGNKEYS rc
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        '[' || FC.CONSTRAINT_NAME || ']' || '[' || FC.FKEY_FROM_ORDINAL_POSITION || ']' COLLATE NOCASE [Id]
        ,   '[' || FC.FKEY_TO_TABLE || ']' || '[' || FC.FKEY_TO_COLUMN || ']' COLLATE NOCASE [ToColumnId]
        ,   '[' || FC.TABLE_NAME || ']' || '[' || FC.FKEY_FROM_COLUMN || ']' COLLATE NOCASE [FromColumnId]
        ,   '[' || FC.CONSTRAINT_NAME || ']' COLLATE NOCASE [ConstraintId]
        ,   FC.FKEY_FROM_ORDINAL_POSITION [Ordinal]
        FROM
        TEMP.SCHEMAFOREIGNKEYS FC
      </DefiningQuery>
    </EntitySet>

    <EntitySet Name="SViewConstraints" EntityType="Self.ViewConstraint">
      <DefiningQuery>
        SELECT
        NULL   [Id]
        , NULL [ParentId]
        , NULL [Name]
        , NULL [ConstraintType]
        , NULL [IsDeferrable]
        , NULL [IsInitiallyDeferred]
        , NULL [Expression]
        , NULL  [UpdateRule]
        , NULL  [DeleteRule]
        WHERE 1=2
      </DefiningQuery>
    </EntitySet>

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

    <EntitySet Name="SViewForeignKeys" EntityType="Self.ForeignKey">
      <DefiningQuery>
        SELECT
        NULL  [Id]
        ,  NULL [ToColumnId]
        ,  NULL [FromColumnId]
        ,  NULL  [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" />
    <Property Name="CatalogName" Type="nvarchar" />
    <Property Name="SchemaName" Type="nvarchar" />
    <Property Name="Name" Nullable="false" Type="nvarchar" />
  </EntityType>

  <EntityType Name="TableColumn" >
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar"/>
    <Property Name="Name" Nullable="false" Type="nvarchar"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" />
    <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" />
    <Property Name="CollationSchema" Type="nvarchar" />
    <Property Name="CollationName" Type="nvarchar" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" />
    <Property Name="CharacterSetSchema" Type="nvarchar" />
    <Property Name="CharacterSetName" Type="nvarchar" />
    <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"/>
  </EntityType>

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

  <EntityType Name="ViewColumn">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar"/>
    <Property Name="Name" Nullable="false" Type="nvarchar"/>
    <Property Name="Ordinal" Nullable="false" Type="int" />
    <Property Name="IsNullable" Nullable="false" Type="bit" />
    <Property Name="TypeName" Nullable="false" Type="nvarchar" />
    <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" />
    <Property Name="CollationSchema" Type="nvarchar" />
    <Property Name="CollationName" Type="nvarchar" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" />
    <Property Name="CharacterSetSchema" Type="nvarchar" />
    <Property Name="CharacterSetName" Type="nvarchar" />
    <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"/>
  </EntityType>

  <EntityType Name="Function">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar"/>
    <Property Name="CatalogName" Type="nvarchar"/>
    <Property Name="SchemaName" Type="nvarchar"/>
    <Property Name="Name" Nullable="false" Type="nvarchar"/>
    <Property Name="ReturnTypeName" Type="nvarchar" />
    <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" />
    <Property Name="ReturnCollationSchema" Type="nvarchar" />
    <Property Name="ReturnCollationName" Type="nvarchar" />
    <Property Name="ReturnCharacterSetCatalog" Type="nvarchar" />
    <Property Name="ReturnCharacterSetSchema" Type="nvarchar" />
    <Property Name="ReturnCharacterSetName" Type="nvarchar" />
    <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"/>
    <Property Name="CatalogName" Type="nvarchar"/>
    <Property Name="SchemaName" Type="nvarchar"/>
    <Property Name="Name" Nullable="false" Type="nvarchar"/>
  </EntityType>

  <EntityType Name="Parameter">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar"/>
    <Property Name="ParentId" Nullable="false" Type="nvarchar"/>
    <Property Name="Name" Nullable="false" Type="nvarchar" />
    <Property Name="Ordinal" Nullable="false" Type="int"/>
    <Property Name="TypeName" Nullable="false" Type="nvarchar" />
    <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" />
    <Property Name="CollationSchema" Type="nvarchar" />
    <Property Name="CollationName" Type="nvarchar" />
    <Property Name="CharacterSetCatalog" Type="nvarchar" />
    <Property Name="CharacterSetSchema" Type="nvarchar" />
    <Property Name="CharacterSetName" Type="nvarchar" />
    <Property Name="IsMultiSet" Nullable="false" Type="bit" />
    <Property Name="Mode" Type="nvarchar" />
    <Property Name="Default" Type="nvarchar" />
  </EntityType>

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

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

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

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

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

  <EntityType Name="ViewConstraint">
    <Key>
      <PropertyRef Name="Id" />
    </Key>
    <Property Name="Id" Nullable="false" Type="nvarchar" />
    <Property Name="ParentId" Nullable="false" Type="nvarchar" />
    <Property Name="Name" Nullable="false" Type="nvarchar" />
    <Property Name="IsDeferrable" Nullable="false" Type="bit" />
    <Property Name="IsInitiallyDeferred" Nullable="false" Type="bit" />
    <Property Name="ConstraintType" Nullable="false" Type="nvarchar" />
    <Property Name="Expression" Nullable="true" Type="nvarchar" />
    <Property Name="UpdateRule" Nullable="true" Type="nvarchar" />
    <Property Name="DeleteRule" Nullable="true" 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>