개념 스키마(CSDL)

개념 스키마는 EDM(엔터티 데이터 모델)을 기반으로 하는 응용 프로그램에서 사용하는 개체 모델을 위한 디자인 템플릿입니다. 개념 스키마에서 선언된 네임스페이스 이름은 생성된 개체 모델에서 엔터티 및 연결 클래스를 정규화하는 네임스페이스 이름이 됩니다.

EDM 아키텍처에서는 엔터티 및 연결의 기본 구조를 제공합니다. 응용 프로그램 디자이너는 이러한 형식을 기반으로 엔터티와 연결을 파생시킵니다. 개념 스키마에 정의된 형식은 저장소 모델을 설명하는 메타데이터에 매핑됩니다.

개념 스키마는 CSDL(개념 스키마 정의 언어)이라는 XML 언어를 사용합니다. 저장소 메타데이터에서는 SSDL(저장소 스키마 정의 언어)이라는 XML 언어를 사용합니다.

Note참고

CSDL 네임스페이스는 XML 네임스페이스와 다릅니다. CSDL 네임스페이스는 엔터티 형식 이름 및 연결 이름을 정규화하는 데 사용합니다. 예를 들어, MSL(매핑 스키마 언어)에서 엔터티 형식을 참조할 때 정규화된 이름이 제공되어야 합니다. 또한 클래스가 생성될 때 해당 클래스는 이름이 동일한 CLR 네임스페이스에서 만들어집니다. CSDL은 XML 네임스페이스 https://schemas.microsoft.com/ado/2006/04/edm에서 찾을 수 있습니다. 두 유형의 네임스페이스는 서로 다르므로 혼동해서는 안 됩니다.

네임스페이스와 매핑

개념 스키마의 루트 요소는 Schema 요소입니다. 여기에는 CSDL 네임스페이스를 지정하는 Namespace 특성이 포함됩니다. 이 네임스페이스는 매핑 사양에서 CSDL 형식을 저장소 메타데이터에 연결하는 데 쓰입니다.

다음 CSDL 스키마의 선언에는 매핑 사양에서 샘플 응용 프로그램 AdventureWorksHRModel의 엔터티와 연결을 저장소 메타데이터에 매핑하는 데 쓰이는 네임스페이스가 포함됩니다.

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

SSDL 파일에도 유사한 줄이 있습니다.

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

이 선언에 사용된 네임스페이스 이름은 생성 중인 데이터 모델에서의 용도를 반영합니다. AdventureWorksHRModel은 이 예제에서 대상 메타데이터 네임스페이스 AdventureWorksHRTarget에 매핑되는 개념적 모델입니다.

개념 스키마 및 저장소 스키마의 엔터티 컨테이너 요소는 두 가지 모두 Schema 요소의 자식 요소이지만 Schema 요소에 독립적입니다.

매핑 사양에서 EntityContainerMapping 요소는 해당 네임스페이스 이름을 참조하지 않고 두 컨테이너 개체를 매핑합니다. edm:CdmEntityContainer="HumanResources"``edm:StorageEntityContainer="HumanResources". 스키마 네임스페이스 이름으로 정규화된 엔터티 컨테이너 이름을 사용하면 매핑 예외가 발생합니다.

다음 MSL(매핑 사양 언어) 머리글은 개념 스키마의 HumanResources 엔터티 컨테이너(여기서는 CdmEntityContainer)와 저장소 메타데이터(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">

다른 CSDL 스키마 요소도 이와 유사하게 매핑 사양에서 SSDL 사양에 매핑됩니다. 이 단원의 항목에서는 EDM을 기반으로 하는 개체 모델의 구현에 쓰이는 형식과 요소에 대해 설명합니다.

단원 내용

Schema 요소(CSDL)

Namespace 특성(CSDL)

EntityType 요소(CSDL)

Association 요소(CSDL)

EntityContainer 요소(CSDL)

참고 항목

개념

엔터티 구현(EDM)
연결 구현(EDM)
AdventureWorks 전체 모델(EDM)

기타 리소스

EDM 사양