リレーショナル データの XML ビューは、XDR (xml-Data simplified) スキーマを使用して作成できます。これらのビューは、XPath クエリを使用してクエリできます。これは、CREATE VIEW ステートメントを使用してビューを作成し、そのビューに対して SQL クエリを指定するのと似ています。
XML スキーマは、XML ドキュメントの構造とドキュメント内のデータに対するさまざまな制約を記述します。そのスキーマに対して XPath クエリを指定すると、返される XML ドキュメントの構造は、XPath クエリが実行されたスキーマによって決まります。
Microsoft® SQL Server™ 2000 では、簡素化された XML データ (XDR) 言語を使用してスキーマを作成します。 XDR は、ドキュメントの構造を記述するために使用されるドキュメント タイプ定義 (DTD) の制限の一部を克服する柔軟な言語です。 DTD とは異なり、XDR スキーマは XML ドキュメントと同じ構文を使用してドキュメント構造を記述します。 さらに、DTD では、データの内容はすべて文字データです。 XDR 言語スキーマを使用すると、要素または属性のデータ型を指定できます。
XDR スキーマでは、
最小限の XDR スキーマは次のとおりです:
<?xml version="1.0" ?> <Schema xmlns="urn:schemas-microsoft-com:xml-data"> ... </Schema> <Schema> 元素是从 xml-data 命名空间 (urn:schemas-microsoft-com:xml-data) 派生出的。
説明 このドキュメントは、読者が XML データ言語に精通していることを前提としています。
XDR スキーマの注釈
データベースへのマッピングを記述する XDR スキーマの注釈を使用してデータベースをクエリし、結果を XML ドキュメントとして返すことができます。 SQL Server 2000 では、XDR スキーマをデータベース内のテーブルや列にマップするために使用できる多数の注釈が導入されました。 XDR スキーマによって作成された XML ビューに XPath クエリを指定して、データベースにクエリを実行し、結果を XML 形式で取得できます。
これは、FOR XML EXPLICIT パターンを使用して XML ドキュメント構造をクエリの一部として記述する、より複雑な SQL クエリ作成プロセスに代わるものです。 SELECT クエリでの FOR XML EXPLICIT モードの使用の詳細については、「EXPLICIT モードの使用」を参照してください。ただし、マッピング スキーマに関する XPath クエリのほとんどの制限を克服するには、XML ドキュメント形式で結果を返す SQL クエリに FOR XML EXPLICIT モードを使用します。
パブリック XDR スキーマ (Microsoft BizTalk™ スキーマなど) がある場合は、次のいずれかを実行できます。
· 生成されたデータがパブリック XDR スキーマに対して有効になるように、FOR XML EXPLICIT モードでクエリを作成します。の場合、FOR XML EXPLICIT クエリを記述するとさらに問題が発生する可能性があります。
· パブリック XDR スキーマのプライベート コピーを作成します。その後、注釈がプライベート レプリカに追加され、マッピング スキーマが作成されます。マッピング スキーマの XPath クエリを指定できます。クエリは共通スキーマ名前空間にデータを生成します。注釈付きスキーマを作成し、そのスキーマに対して XPath クエリを指定するプロセスは、複雑な FOR XML EXPLICIT クエリを作成するよりもはるかに簡単です。以下の画像は、このプロセスを示しています。
説明 Microsoft BizTalk™ フレームワークは、契約、注文、予定などの一般的に使用されるビジネス オブジェクトの標準 XML 形式を定義するように設計されています。これらのビジネス アーキテクチャのコピーは、http://biztalk.org/BizTalk/default.asp にあります。
スキーマのマッピング
リレーショナル データベースのコンテキストでは、任意の XDR スキーマをリレーショナル ストアにマッピングすると非常に便利です。これを実現する 1 つの方法は、XDR スキーマに注釈を付けることです。注釈付きの XDR スキーマは「マッピング スキーマ」と呼ばれ、XML データがリレーショナル ストアにマッピングされる方法に関する情報を提供します。マッピング スキーマは、実際にはリレーショナル データの XML ビューです。これらのマッピングを使用して、リレーショナル データを XML ドキュメント形式で取得できます。
Microsoft SQL Server 2000 では、要素と属性をデータベースのテーブルと列にマップするために XDR スキーマで使用できる多数の注釈が導入されました。 XPath (XML パス) を使用して、マッピング スキーマ (XML ビュー) へのクエリを指定できます。マッピング スキーマは、結果として得られるドキュメント構造を記述します。
注釈の名前空間
XDR スキーマでは、次の名前空間を使用して注釈を指定します: urn:schemas-microsoft-com:xml-sql。
次の例は、名前空間を指定する最も簡単な方法が、
<?xml version="1.0" ?> <Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:sql="urn:schemas-microsoft-com:xml-sql" > ........... </Schema>
によって使用される名前空間プレフィックスは任意です。 このドキュメントでは、SQL プレフィックスは、注釈名前空間を示し、この名前空間の注釈を他の名前空間の注釈と区別するために使用されます。
データ型名前空間
XDR スキーマを使用すると、要素または属性のデータ型を指定できます。データ型を指定するには、名前空間 urn:schemas-microsoft-com:datatypes を使用します。
以下は、名前空間宣言を含む最小限の XDR スキーマです。
<?xml version="1.0" ?> <Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:sql="urn:schemas-microsoft-com:xml-sql" xmlns:dt="urn:schemas-microsoft-com:datatypes"> ... </Schema>
所用的命名空间前缀是任意的。 在本文档中,dt 前缀用于表示数据类型命名空间和使此命名空间中的批注区别于其它命名空间中的批注。
XDR 架构示例
下例显示如何将批注添加到 XDR 架构中。XDR 架构由
<?xml version="1.0" ?> <Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <ElementType name="Employee" > <AttributeType name="EmpID" /> <AttributeType name="FName" /> <AttributeType name="LName" /> <attribute type="EmpID" /> <attribute type="FName" /> <attribute type="LName" /> </ElementType> </Schema>
现在,将批注添加到此 XDR 架构中,使架构的元素和特性映射到数据库的表和列。 带批注的 XDR 架构如下:
<?xml version="1.0" ?> <Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <ElementType name="Employee" sql:relation="Employees" > <AttributeType name="EmpID" /> <AttributeType name="FName" /> <AttributeType name="LName" /> <attribute type="EmpID" sql:field="EmployeeID" /> <attribute type="FName" sql:field="FirstName" /> <attribute type="LName" sql:field="LastName" /> </ElementType> </Schema>
在此映射架构中,使用 sql:relation 批注将
此带批注的 XDR 架构提供关系数据的 XML 视图。使用 Xpath(XML 路径)语言可以查询该 XML 视图。Xpath 查询返回 XML 文档形式的结果,而不是 SQL 查询所返回的行集。
说明 在映射架构中,指定的关系值(如表名和列名)区分大小写。
以上就是使用带批注的 XDR 架构创建 XML 视图的内容,更多相关内容请关注PHP中文网(www.php.cn)!