Share via


Esquema de metadatos de almacenamiento (SSDL)

El esquema de metadatos de almacenamiento es una descripción formal de la base de datos que conserva los datos para una aplicación generada en Entity Data Model (EDM). Las entidades y asociaciones declaradas en este esquema son la base para asignar las entidades y asociaciones del esquema conceptual a las entidades correspondientes en el modelo de almacenamiento.

Una entidad declarada en el lenguaje de definición de esquemas de almacenamiento (SSDL) es muy similar a una entidad del lenguaje de definición de esquemas conceptuales (CSDL). La diferencia radica principalmente en los tipos de datos que se utilizan en las declaraciones SSDL. Los tipos de datos de las propiedades declaradas en archivos SSDL son los del modelo de almacenamiento. Los tipos de datos de los archivos CSDL son tipos simples que define el EDM. La asignación entre estos tipos es una de las funciones del EDM. Para obtener más información sobre los tipos de datos que se usan en CSDL y en SSDL, vea Tipos simples (EDM).

Asignación y metadatos

El nombre del espacio de nombres y el contenedor de entidades declarados en el esquema SSDL son los metadatos que usa la especificación de asignación para conectar las tablas del almacenamiento a las entidades en el esquema CSDL.

Nota

Los espacios de nombres SSDL son diferentes de los espacios de nombres XML. Los espacios de nombres SSDL se utilizan para certificar completamente los nombres de tipos de entidad y de asociaciones. Por ejemplo, cuando el lenguaje de especificación de asignaciones (MSL) hace referencia a los tipos de entidad, se debe proporcionar el nombre completo. SSDL está en el espacio de nombres XML https://schemas.microsoft.com/ado/2006/04/edm/ssdl. Los dos tipos de espacios de nombres son independientes y distintos, y no se deberían confundir.

Las líneas siguientes del esquema SSDL Human Resources declaran un espacio de nombres para los metadatos que contiene este esquema. El lenguaje de especificación de asignaciones (MSL) utilizará el nombre del espacio de nombres.

<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRTarget"
        Alias="Self"
        xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl">

El esquema SSDL incluye un elemento EntityContainer que también se usará en la especificación de asignación. El segmento SSDL siguiente muestra la declaración del contenedor de entidades.

  <EntityContainer Name="HumanResources">
    <EntitySet Name="Department" EntityType="Self.Department" />
    <EntitySet Name="Employee" EntityType="Self.Employee" />
    <EntitySet Name="EmployeeAddress" EntityType="Self.EmployeeAddress" />
    <EntitySet Name="EmployeeDepartmentHistory"
                      EntityType="Self.EmployeeDepartmentHistory" />
    <EntitySet Name="EmployeePayHistory"
                             EntityType="Self.EmployeePayHistory" />
    <EntitySet Name="JobCandidate" EntityType="Self.JobCandidate" />
    <EntitySet Name="Shift" EntityType="Self.Shift" />
    <AssociationSet Name="FK_Employee_Employee_ManagerID"
                  Association="Self.FK_Employee_Employee_ManagerID">
      <End Role="Employee" EntitySet="Employee" />
      <End Role="Employee63" EntitySet="Employee" />
    </AssociationSet>
    <AssociationSet Name="FK_JobCandidate_Employee_EmployeeID" 
            Association="Self.FK_JobCandidate_Employee_EmployeeID">
      <End Role="Employee" EntitySet="Employee" />
      <End Role="JobCandidate" EntitySet="JobCandidate" />
    </AssociationSet>
  </EntityContainer>

Las entidades y asociaciones de los metadatos SSDL especifican las tablas y las columnas del modelo de almacenamiento. Estos metadatos se necesitan para realizar la asignación entre las entidades del esquema CSDL y el almacenamiento.

Los elementos EntityContainer de los esquemas conceptual y de almacenamiento son independientes del elemento Schema aunque estén contenidos en el elemento Schema. El elemento EntityContainerMapping de MSL asigna el elemento EntityContainer del archivo SSDL a un elemento EntityContainer del archivo CSDL sin referencias a los nombres de espacio de nombres declarados en cada esquema: edm:CdmEntityContainer="HumanResources"``edm:StorageEntityContainer="HumanResources".

El encabezado siguiente de MSL muestra la asignación entre el contenedor de entidades HumanResources en el esquema conceptual, denominado aquí CdmEntityContainer, y los metadatos de almacenamiento, denominados StorageEntityContainer.

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

La sintaxis de SSDL utilizada en los ejemplos de este tema se describe con detalle en los temas siguientes:

Elemento Schema (SSDL)

Atributo Namespace (SSDL)

Elemento EntityType (SSDL)

Elemento Association (SSDL)

Elemento EntityContainer (SSDL)

Vea también

Conceptos

Tipos del Entity Data Model
Modelo completo (EDM) de AdventureWorks