다음을 통해 공유


테이블 및 열에 대한 XDR 요소 및 특성의 기본 매핑

중요 정보중요

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

주석이 추가된 XDR 스키마에서 요소는 기본적으로 같은 이름을 가진 테이블/뷰에 매핑되고, 특성은 같은 이름을 가진 열에 매핑됩니다.

스키마의 복잡하지 않은 하위 요소를 데이터베이스 열에 매핑할 수 있습니다. 요소를 데이터베이스의 열에 매핑하기 위해 textOnly 값을 사용하여 해당 요소에 대해 content 특성이 지정됩니다. 요소를 데이터베이스 열에 매핑할 때 content=textOnly를 지정하지 않은 경우 <요소>를 데이터베이스 열에 매핑하기 위해 sql:field 주석을 명시적으로 지정해야 합니다. 자세한 내용은 테이블 및 열에 대한 XDR 요소 및 특성의 명시적 매핑을 참조하십시오.

다음 예를 사용하여 작업 예제를 만들려면 특정 요구 사항이 충족되어야 합니다. 자세한 내용은 SQLXML 예 실행을 위한 요구 사항을 참조하십시오.

1. 기본 매핑 지정

이 예에서 <Person.Contact> 요소는 AdventureWorks 데이터베이스의 Person.Contact 테이블에 매핑되고, 모든 특성은 Person.Contact 테이블에서 같은 이름을 가진 열에 매핑됩니다. 이 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="Person.Contact" >
    <AttributeType name="ContactID" />
    <AttributeType name="FirstName" />
    <AttributeType name="LastName" />

    <attribute type="ContactID" />
    <attribute type="FirstName" />
    <attribute type="LastName" />
</ElementType>
</Schema>

스키마에 대해 예제 XPath 쿼리를 테스트하려면

  1. 위 스키마 코드를 복사한 후 텍스트 파일에 붙여넣습니다. 파일을 DefaultXdr.xml로 저장합니다.

  2. 다음 템플릿을 복사한 후 텍스트 파일에 붙여넣습니다. DefaultXdr.xml을 저장한 디렉터리와 같은 디렉터리에 DefaultXdrT.xml로 파일을 저장합니다.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="DefaultXdr.xml">
            /Person.Contact[@ContactID &lt; 3]
        </sql:xpath-query>
    </ROOT>
    

    매핑 스키마(DefaultXdr.xml)에 대해 지정된 디렉터리 경로는 템플릿이 저장된 디렉터리에 상대적입니다. 또한 다음과 같이 절대 경로를 지정할 수 있습니다.

    mapping-schema="C:\MyDir\DefaultXdr.xml"
    
  3. SQLXML 4.0 테스트 스크립트(Sqlxml4test.vbs)를 만든 다음 이 스크립트를 사용하여 템플릿을 실행합니다.

    자세한 내용은 ADO를 사용하여 SQLXML 4.0 쿼리 실행을 참조하십시오.

결과 집합은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
  <Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong"/>
  <Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel">
</ROOT>

2. XML <요소>를 데이터베이스 열에 매핑

기본적으로 XML 요소는 데이터베이스 테이블에 매핑되고, 특성은 데이터베이스 열에 매핑됩니다. 요소를 데이터베이스 열에 매핑하기 위해 textOnly 값을 사용하여 해당 요소에 대해 content 특성이 지정됩니다.

이 XDR 스키마는 앞의 예와 동일한 <Person.Contact> 요소로 구성되어 있지만, SQL 필드(ContactID, FirstName, LastName)가 특성 대신 하위 요소에 매핑되었습니다.

<?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="ContactID" content="textOnly" />
<ElementType name="FirstName" content="textOnly" />
<ElementType name="LastName"  content="textOnly" />

<ElementType name="Person.Contact" >
    <element type="ContactID" />
    <element type="FirstName" />
    <element type="LastName"  />
</ElementType>
</Schema>

기본적으로 XDR 스키마의 <Person.Contact> 요소는 AdventureWorks 데이터베이스의 Person.Contact 테이블에 매핑됩니다. content 특성은 <FirstName><LastName> 하위 요소에 지정됩니다. 따라서 이러한 하위 요소는 Person.Contact 테이블에서 같은 이름을 가진 열에 매핑됩니다.

[!참고]

혼합된 콘텐츠(텍스트와 하위 요소가 모두 포함된 요소)는 지원되지 않습니다.

스키마에 대해 예제 XPath 쿼리를 테스트하려면

  1. 위 스키마 코드를 복사한 후 텍스트 파일에 붙여넣습니다. 파일을 ElementXdr.xml로 저장합니다.

  2. 다음 템플릿을 복사한 후 텍스트 파일에 붙여넣습니다. ElementXdr.xml을 저장한 디렉터리와 같은 디렉터리에 ElementXdrT.xml로 파일을 저장합니다.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="ElementXdr.xml">
            /Person.Contact[ContactID &lt; 3]
        </sql:xpath-query>
    </ROOT>
    

    매핑 스키마(ElementXdr.xml)에 대해 지정된 디렉터리 경로는 템플릿이 저장된 디렉터리에 상대적입니다. 또한 다음과 같이 절대 경로를 지정할 수 있습니다.

    mapping-schema="C:\MyDir\ElementXdr.xml"
    
  3. SQLXML 4.0 테스트 스크립트(Sqlxml4test.vbs)를 만든 다음 이 스크립트를 사용하여 템플릿을 실행합니다.

    자세한 내용은 ADO를 사용하여 SQLXML 4.0 쿼리 실행을 참조하십시오.

결과 집합은 다음과 같습니다.

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Person.Contact>
    <ContactID>1</ContactID> 
    <FirstName>Gustavo</FirstName> 
    <LastName>Achong</LastName> 
  </Person.Contact>
  <Person.Contact>
    <ContactID>2</ContactID> 
    <FirstName>Catherine</FirstName> 
    <LastName>Abel</LastName> 
  </Person.Contact>
</ROOT>

참고 항목

참조