다음을 통해 공유


주석이 추가된 XDR 스키마 소개(SQLXML 4.0에서는 더 이상 사용되지 않음)

중요 정보중요

이 항목은 레거시 응용 프로그램에 대한 참조용으로 포함되었습니다. 이 기능에 대해서는 이후 개발 작업이 진행되지 않습니다. 새 개발 작업에서는 이 기능을 사용하지 마십시오. 대신 주석이 추가된 XSD 스키마를 사용하여 XML 뷰를 만드십시오. 자세한 내용은 주석이 추가된 XSD 스키마 소개(SQLXML 4.0)을 참조하십시오. 주석이 추가된 기존 XDR 스키마를 XSD 스키마로 변환할 수 있습니다. 자세한 내용은 주석이 추가된 XDR 스키마를 해당 XSD 스키마로 변환(SQLXML 4.0)을 참조하십시오.

XDR(XML-Data Reduced) 스키마를 사용하여 관계형 데이터에 대한 XML 뷰를 만들 수 있습니다. 그런 다음 XPath 쿼리를 사용하여 뷰를 쿼리할 수 있습니다. 이는 CREATE VIEW 문을 사용하여 뷰를 만들고 뷰에 대해 SQL 쿼리를 지정하는 것과 유사합니다.

XML 스키마는 XML 문서의 구조뿐만 아니라 문서 내의 데이터에 대한 다양한 제약 조건을 설명합니다. 스키마에 대해 XPath 쿼리를 지정하면 XPath 쿼리가 실행되는 스키마에 따라 반환되는 XML 문서의 구조가 결정됩니다.

XDR(XML-Data Reduced) 언어는 XML 스키마를 만들기 위해 MicrosoftSQL Server 2000에서 처음 도입되었습니다. 당시 XDR은 융통성이 뛰어났으며 DTD(문서 유형 정의)의 몇 가지 한계를 극복했습니다. DTD도 XML 문서 구조를 설명하는 데 사용할 수 있지만, DTD와 달리 XDR 스키마는 XML 문서와 동일한 구문을 사용하여 문서의 구조를 설명합니다. 또한 DTD에서는 모든 데이터 콘텐츠가 문자 데이터이지만 XDR 언어 스키마를 사용하면 요소나 특성의 데이터 형식을 지정할 수 있습니다.

XDR 스키마에서는 <Schema> 요소로 스키마 전체를 묶습니다. 따라서 스키마 이름 및 스키마가 있는 네임스페이스를 정의하는 특성을 <Schema> 요소의 속성으로 설명할 수 있습니다. XDR 언어에서는 모든 요소 선언을 <Schema> 요소 내에 포함해야 합니다.

최소 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 문서 형식으로 반환할 수 있습니다. XDR 스키마를 SQL 데이터베이스 테이블 및 열에 매핑하는 데 사용할 수 있는 다양한 주석은 SQL Server 2000에서 처음 도입되었습니다. XDR 스키마로 생성된 XML 뷰에 대해 XPath 쿼리를 지정하여 데이터베이스를 쿼리하고 결과를 XML 형식으로 얻을 수 있습니다.

이 방법은 쿼리의 일부로 XML 문서 구조를 설명하기 위해 FOR XML EXPLICIT 모드를 사용하는 SQL 쿼리를 작성하는 더 복잡한 방법 대신 사용할 수 있습니다. 그러나 매핑 스키마에 대한 XPath 쿼리의 한계 대부분을 극복하려면 FOR XML EXPLICIT 모드로 SQL 쿼리를 사용하여 결과를 XML 문서 형식으로 반환하십시오.

공용 XDR 스키마(예: Microsoft BizTalk 스키마)가 있으면 다음 두 가지 작업 중 하나를 수행할 수 있습니다.

  • 공용 XDR 스키마에 올바른 데이터가 생성되도록 FOR XML EXPLICIT 모드 쿼리를 작성합니다. 하지만 FOR XML EXPLICIT 모드 쿼리 작성 작업은 복잡할 수 있습니다.

  • 공용 XDR 스키마의 전용 복사본을 만듭니다. 그런 다음 이 전용 복사본에 주석을 추가하여 매핑 스키마를 생성합니다. 매핑 스키마에 대해 XPath 쿼리를 지정합니다. 이렇게 하면 쿼리에서 공용 스키마의 네임스페이스에 있는 데이터를 생성합니다. 주석이 추가된 스키마를 만들고 이러한 스키마에 대해 XPath 쿼리를 지정하는 작업은 복잡한 FOR XML EXPLICIT 쿼리를 작성하는 것보다 훨씬 간단합니다. 다음 그림은 이 프로세스를 보여 줍니다.

스키마 복사본을 사용한 주석 만들기

매핑 스키마

관계형 데이터베이스 컨텍스트에서는 임의의 XDR 스키마를 관계형 저장소에 매핑하는 것이 유용합니다. 이를 수행하는 한 가지 방법은 XDR 스키마에 주석을 추가하는 것입니다. 주석이 추가된 XDR 스키마를 mapping schema라고 하며 매핑 스키마는 XML 데이터가 관계형 저장소에 매핑되는 방법에 대한 정보를 제공합니다. 매핑 스키마는 궁극적으로 관계형 데이터에 대한 XML 뷰로 생각할 수 있습니다. 이러한 매핑을 사용하여 관계형 데이터를 XML 문서로 검색할 수 있습니다.

SQL Server 2000에는 요소와 특성을 데이터베이스 테이블과 열에 매핑하기 위해 XDR 스키마에 사용할 수 있는 많은 주석이 도입되었습니다. XPath(XML 경로)를 사용하여 매핑 스키마(XML 뷰)에 대해 쿼리를 지정할 수 있습니다. 매핑 스키마는 결과 문서의 구조를 설명합니다.

주석에 대한 네임스페이스

XDR 스키마에서 주석은 urn:schemas-microsoft-com:xml-sql 네임스페이스를 사용하여 지정합니다.

다음 예에서는 네임스페이스를 지정하는 가장 간단한 방법인 <Schema> 태그에 네임스페이스를 지정하는 방법을 보여 줍니다. 주석은 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 접두사는 데이터 형식 네임스페이스를 나타내고 이 네임스페이스의 주석을 다른 네임스페이스의 주석과 구별하기 위해 사용되었습니다.

<Schema> 요소는 xml-data 네임스페이스인 urn:schemas-microsoft-com:xml-data에서 파생됩니다.

XDR 스키마 예

이 예에서는 XDR 스키마에 주석을 추가하는 방법을 보여 줍니다. 이 XDR 스키마는 <Contacts> 요소와 CID, FNameLName 특성으로 구성됩니다.

<?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="Contacts" >
    <AttributeType name="CID" />
    <AttributeType name="FName" />
    <AttributeType name="LName" />

    <attribute type="CID" />
    <attribute type="FName" />
    <attribute type="LName" />
</ElementType>
</Schema>

이제 해당 요소와 특성을 AdventureWorks 예제 데이터베이스의 SQL 테이블 및 열 이름에 매핑하기 위해 이 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="Contacts" sql:relation="Person.Contact" >
    <AttributeType name="CID" />
    <AttributeType name="FName" />
    <AttributeType name="LName" />

    <attribute type="CID" sql:field="ContactID" />
    <attribute type="FName" sql:field="FirstName" />
    <attribute type="LName" sql:field="LastName" />
</ElementType>
</Schema>

이 매핑 스키마에서 <Contacts> 요소는 sql:relation 주석을 사용하여 Person.Contact 테이블에 매핑됩니다. CID, FNameLName 특성은 sql:field 주석을 사용하여 Person.Contact 테이블의 ContactID, FirstName 및 LastName 열에 매핑됩니다.

주석이 추가된 이 XDR 스키마는 관계형 데이터에 대한 XML 뷰를 제공합니다. 이 XML 뷰는 XPath(XML 경로) 언어를 사용하여 쿼리할 수 있습니다. SQL 쿼리에서 행 집합을 반환하는 것과는 달리 이 쿼리에서는 XML 문서를 반환합니다.

[!참고]

매핑 스키마에서 지정된 관계형 값(예: 테이블 이름 및 열 이름)은 대/소문자를 구분합니다.