다음을 통해 공유


sql:target-namespace를 사용하여 대상 네임스페이스 지정(XDR 스키마)

중요 정보중요

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

sql:target-namespace 주석을 사용하면 기본 네임스페이스의 요소와 특성을 다른 네임스페이스에 배치할 수 있습니다. sql:target-namespace 특성은 XDR 스키마의 <Schema> 태그에만 추가할 수 있습니다.

sql:target-namespace 값은 매핑 스키마에 지정된 요소와 특성을 생성하는 데 사용되는 네임스페이스 URI(Uniform Resource Identifier)입니다. 이 URI는 기본 네임스페이스의 모든 요소와 특성에 적용됩니다. 이 스키마에 대한 쿼리에서 반환되는 XML 문서에는 xmlns:prefix="uri" 선언이 포함되어 있으며 해당 선언에 따라 요소 및 특성 이름에 접두사가 추가됩니다. 사용되는 URI는 sql:target-namespace 주석 값에서 가져옵니다. 하지만 접두사는 임의로 생성되고 스키마의 어떤 값에도 대응하지 않습니다. 이것은 해당 접두사가 스키마에 사용되는 경우에도 마찬가지입니다.

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

1. 대상 네임스페이스 지정

이 예에서는 sql:target-namespace 주석을 사용하여 대상 네임스페이스를 지정합니다. 그 결과 기본 네임스페이스를 갖는 모든 요소와 특성이 대상 네임스페이스(MyNamespace)로 리디렉션됩니다.

<?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"
        sql:target-namespace="urn:MyNamespace">
<ElementType name="Sales.SalesOrderHeader" >
   <AttributeType name="SalesOrderID" />
   <attribute type="SalesOrderID"/>
</ElementType>
<ElementType name="Sales.Customer" >
   <AttributeType name="CustomerID" />
   <attribute type="CustomerID" />
   <element type="Sales.SalesOrderHeader" >
      <sql:relationship 
            key="CustomerID" 
            foreign-key="CustomerID" 
            key-relation="Sales.Customer" 
            foreign-relation="Sales.SalesOrderHeader" />
   </element>
</ElementType>
</Schema>

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

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

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

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="TargetNS-Xdr.xml" 
                       xmlns:x="urn:MyNamespace" >
        x:Sales.Customer[@CustomerID=1]
      </sql:xpath-query>
    </ROOT>
    

    템플릿의 XPath 쿼리에서 "MyNamespace" 네임스페이스에 정의된 모든 <Customer> 요소를 요청합니다. 템플릿에는 접두사 x가 네임스페이스에 바인딩되어 있습니다.

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

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

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

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

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <y0:Sales.Customer xmlns:y0="urn:MyNamespace" CustomerID="1">
    <y0:Sales.SalesOrderHeader SalesOrderID="43860" /> 
    <y0:Sales.SalesOrderHeader SalesOrderID="44501" /> 
    <y0:Sales.SalesOrderHeader SalesOrderID="45283" /> 
    <y0:Sales.SalesOrderHeader SalesOrderID="46042" /> 
  </y0:Sales.Customer>
</ROOT>

생성되는 접두사는 임의적이지만 동일한 네임스페이스에 매핑됩니다.

참고 항목

참조