다음을 통해 공유


sql:use-cdata를 사용하여 CDATA 섹션 만들기(XDR 스키마)

중요 정보중요

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

XML에서 CDATA 섹션은 태그로 인식될 문자가 포함된 텍스트 블록을 이스케이프하는 데 사용됩니다.

Microsoft SQL Server 데이터에는 XML 파서에서 특수하게 처리되는 문자가 포함될 수 있습니다. 예를 들어 <, >, <=, & 등과 같은 문자는 태그 문자로 처리됩니다. 특수 문자가 포함된 SQL Server 데이터를 태그로 처리하지 않게 하려면 해당 문자를 CDATA 섹션에 래핑할 수 있습니다. CDATA 섹션 내에 배치된 텍스트는 일반 텍스트로 처리됩니다.

sql:use-cdata 주석은 SQL Server에서 반환되는 데이터가 CDATA 섹션에 래핑되는지 여부를 지정하는 데 사용됩니다. sql:use-cdata 주석을 사용하여 sql:field에 지정된 열의 값을 CDATA 섹션으로 묶어야 하는지 여부를 지정할 수 있습니다. sql:use-cdata 주석은 <ElementType> 또는 **<element>**에 지정할 수 있으며 부울 값(0 = FALSE, 1 = TRUE)을 사용합니다. sql:url-encode 또는 ID, IDREF, IDREFS, NMTOKEN, NMTOKENS 등의 특성 유형에는 sql:use-cdata를 사용할 수 없습니다.

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

1. 요소에 sql:use-cdata 지정

다음 스키마에서는 <AddressLine1> 요소에 대해 sql:use-cdata를 1(TRUE)로 설정합니다. 따라서 **<AddressLine1>**의 데이터가 CDATA 섹션으로 반환됩니다.

<?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="AddressID" content="textOnly" />
   <ElementType name="AddressLine1" content="textOnly" />

   <ElementType name="Address" sql:relation="Person.Address">
      <element type="AddressID" />
      <element type="AddressLine1" sql:use-cdata="1"  />
   </ElementType>

</Schema>

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

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

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

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="UseCdataXdr.xml">
        /Address[@AddressID=1]
      </sql:xpath-query>
    </ROOT>
    

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

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

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

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

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Address>
    <AddressID>1</AddressID> 
    <AddressLine1>
       <![CDATA[ 1970 Napa Ct.]]> 
    </AddressLine1>
  </Address>
</ROOT>

참고 항목

참조