Namespace 属性 (SSDL)
エンティティ データ モデル (EDM) で、ストレージ メタデータ Schema 要素は、名前空間名を格納します。名前空間名は、スキーマ内の宣言に完全修飾された名前が必要な場合に使用されます。名前空間名は、別名を使用して省略されることがあります。次の例では、Self という用語を AdventureWorksHRTarget スキーマの Alias 属性に割り当てます。
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRTarget"
Alias="Self"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl">
概念スキーマ定義言語 (CSDL) ファイルに似た行があります。唯一の違いは、Namespace 属性に割り当てられた名前と xmlns 属性に割り当てられた URL です。
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRModel"
Alias="Self"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm">
これらの宣言で使用される名前空間名は、作成されるデータ モデルでのそれぞれの目的を表しています。AdventureWorksHRTarget は、AdventureWorksHRModel で、定義した型をストレージに接続するために使用されるターゲット メタデータです。
マッピング スキーマでは、EntityContainerMapping 要素によって 2 つのエンティティ コンテナがマップされ、それらの namespace 名は参照されません。EntityContainer は、Schema で定義されている場合でも、Schema とは別個で独立しています。マッピング スキーマ言語 (MSL) 構文 CdmEntityContainer="HumanResources"``StorageEntityContainer="HumanResources"
に示されるように、マッピング スキーマが参照するのはコンテナ オブジェクトだけです。
<?xml version="1.0" encoding="utf-8"?>
<Mapping Space="C-S"
xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
<EntityContainerMapping CdmEntityContainer="HumanResources"
StorageEntityContainer="HumanResources">
別名
Alias 属性は、スキーマの残りで名前空間名を短縮するために使用されます。次の例では、文字列 Self を Alias 属性に割り当てます。
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRModel"
Alias="Self"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm">
Alias はスキーマの後続部分で非常に便利であり、次の構文に示されているように読みやすくなります。
<EntityContainer Name="HumanResources">
<EntitySet Name="Department" EntityType="Self.Department" />
<EntitySet Name="Employee" EntityType="Self.Employee" />
<EntitySet Name="EmployeeAddress" EntityType="Self.EmployeeAddress" />
Xmlns
前の例にも割り当てられた URL を使用する xmlns 属性が含まれています。この URL は、すべての SSDL スキーマで使用されます。
参照
概念
概念スキーマ (CSDL)
マッピング スキーマ (MSL)
AdventureWorks Complete Model (EDM)