XDR(xml-Data 단순화) 스키마를 사용하여 관계형 데이터의 XML 보기를 생성할 수 있습니다. 그런 다음 XPath 쿼리를 사용하여 이러한 뷰를 쿼리할 수 있습니다. 이는 CREATE VIEW 문을 사용하여 뷰를 생성하고 뷰에 대해 SQL 쿼리를 지정하는 것과 유사합니다.
XML 스키마는 XML 문서의 구조와 문서의 데이터에 대한 다양한 제약 조건을 설명합니다. 해당 스키마에 대해 XPath 쿼리를 지정하면 반환된 XML 문서의 구조는 XPath 쿼리가 실행된 스키마에 의해 결정됩니다.
Microsoft® SQL Server™ 2000에서는 단순화된 XDR(XML-Data) 언어를 사용하여 스키마를 생성합니다. XDR은 문서 구조를 설명하는 데 사용되는 DTD(문서 유형 정의)의 일부 제한 사항을 극복하는 유연한 언어입니다. DTD와 달리 XDR 스키마는 XML 문서와 동일한 구문을 사용하여 문서 구조를 설명합니다. 또한 DTD에서는 모든 데이터 내용이 문자 데이터입니다. XDR 언어 스키마를 사용하면 요소나 속성의 데이터 유형을 지정할 수 있습니다.
XDR 스키마에서 1de00b41ae8be4b3c03a631e9569276b 요소에는 전체 스키마가 포함됩니다. 1de00b41ae8be4b3c03a631e9569276b 요소의 속성으로 스키마 이름과 스키마가 있는 네임스페이스를 정의하는 속성을 설명할 수 있습니다. XDR 언어에서는 모든 요소 선언을 1de00b41ae8be4b3c03a631e9569276b 요소로 묶어야 합니다.
최소 XDR 스키마는 다음과 같습니다.
<?xml version="1.0" ?> <Schema xmlns="urn:schemas-microsoft-com:xml-data"> ... </Schema> <Schema> 元素是从 xml-data 命名空间 (urn:schemas-microsoft-com:xml-data) 派生出的。
참고: 이 문서에서는 사용자가 XML-Data 언어에 익숙하다고 가정합니다.
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™ 스키마)가 있는 경우 다음 중 하나를 수행할 수 있습니다.
· 생성된 데이터가 공개적으로 유효하도록 FOR XML EXPLICIT 모드에서 쿼리를 작성합니다. 그러나 XDR 스키마는 FOR XML EXPLICIT 쿼리를 작성하는 것이 번거로울 수 있습니다.
· 공개 XDR 스키마의 비공개 복사본을 만듭니다. 그런 다음 주석이 개인 복제본에 추가되어 매핑 스키마가 생성됩니다. 매핑 스키마에 대한 XPath 쿼리를 지정할 수 있습니다. 쿼리는 공통 스키마 네임스페이스에 데이터를 생성합니다. 주석이 달린 스키마를 생성하고 해당 스키마에 대해 XPath 쿼리를 지정하는 것은 복잡한 FOR XML EXPLICIT 쿼리를 작성하는 것보다 훨씬 간단한 프로세스입니다. 아래 이미지는 이 과정을 보여줍니다.
설명 Microsoft BizTalk™ 프레임워크는 계약, 주문, 약속 등 일반적인 비즈니스 개체에 대한 표준 XML 형식을 정의하도록 설계되었습니다. 이러한 비즈니스 아키텍처의 사본은 http://biztalk.org/BizTalk/default.asp에서 찾을 수 있습니다.
스키마 매핑
관계형 데이터베이스의 맥락에서 임의의 XDR 스키마를 관계형 저장소에 매핑하는 것은 매우 유용합니다. 이를 달성하는 한 가지 방법은 XDR 스키마에 주석을 추가하는 것입니다. 주석이 달린 XDR 스키마는 "매핑 스키마"라고 하며 XML 데이터가 관계형 저장소에 매핑되는 방법에 대한 정보를 제공합니다. 매핑 스키마는 실제로 관계형 데이터의 XML 보기입니다. 이러한 매핑을 사용하여 XML 문서 형식의 관계형 데이터를 검색할 수 있습니다.
Microsoft SQL Server 2000에는 XDR 스키마에서 요소와 속성을 데이터베이스 테이블 및 열에 매핑하는 데 사용할 수 있는 다양한 주석이 도입되었습니다. XPath(XML 경로)를 사용하여 매핑 스키마(XML 보기)에 대한 쿼리를 지정할 수 있습니다. 매핑 스키마는 결과 문서 구조를 설명합니다.
주석의 네임스페이스
XDR 스키마에서 주석은 urn:schemas-microsoft-com:xml-sql 네임스페이스를 사용하여 지정됩니다.
다음 예에서는 네임스페이스를 지정하는 가장 간단한 방법이 1de00b41ae8be4b3c03a631e9569276b 태그에 지정하는 것임을 보여줍니다. 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 前缀用于表示数据类型命名空间和使此命名空间中的批注区别于其它命名空间中的批注。
1de00b41ae8be4b3c03a631e9569276b 元素来源于 xml-data 命名空间:urn:schemas-microsoft-com:xml-data。
XDR 架构示例
下例显示如何将批注添加到 XDR 架构中。XDR 架构由 a7c15504e26c2dc9d33fa17ec3230b5f 元素和 EmpID、Fname 及 Lname 特性组成。
<?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 批注将 a7c15504e26c2dc9d33fa17ec3230b5f 元素映射到 Employees 表。使用 sql:field 批注将特性 EmpID、Fname 和 Lname 映射到 Employees 表中的 EmployeeID、FirstName 和 LastName 列。
此带批注的 XDR 架构提供关系数据的 XML 视图。使用 Xpath(XML 路径)语言可以查询该 XML 视图。Xpath 查询返回 XML 文档形式的结果,而不是 SQL 查询所返回的行集。
说明 在映射架构中,指定的关系值(如表名和列名)区分大小写。
以上就是使用带批注的 XDR 架构创建 XML 视图的内容,更多相关内容请关注PHP中文网(www.php.cn)!