sql:use-cdata를 사용하여 CDATA 섹션 만들기(SQLXML 4.0)

적용 대상:SQL ServerAzure SQL Database

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

Microsoft SQL Server의 데이터베이스에는 XML 파서에서 태그 문자로 처리되는 문자가 포함될 수 있습니다. 예를 들어 꺾쇠 괄호(< 및 >), 작거나 같음 기호(<=) 및 앰퍼샌드(>)는 태그 문자로 처리됩니다. 그러나 CDATA 섹션에서 이러한 유형의 특수 문자를 래핑하여 태그 문자로 처리되지 않도록 할 수 있습니다. CDATA 섹션 내의 텍스트는 XML 파서에서 일반 텍스트로 처리됩니다.

sql:use-cdata 주석은 SQL Server에서 반환된 데이터를 CDATA 섹션에 래핑하도록 지정하는 데 사용됩니다. 즉, sql:field로 지정된 열의 값을 CDATA 섹션에 묶어야 하는지 여부를 나타냅니다. sql:use-cdata 주석은 데이터베이스 열에 매핑되는 요소에서만 지정할 수 있습니다.

sql:use-cdata 주석은 부울 값(0 = false, 1 = true)을 사용합니다. 허용되는 값은 0, 1, true 및 false입니다.

이 주석은 sql:url 인코딩 또는 ID, IDREF, IDREFS, NMTOKEN 및 NMTOKENS 특성 형식에서 사용할 수 없습니다.

예제

다음 예제를 사용하여 작업 샘플을 만들려면 특정 요구 사항을 충족해야 합니다. 자세한 내용은 SQLXML 실행 요구 사항 예제를 참조 하세요.

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

다음 스키마에서 sql:use-cdata는 Address> 요소 내<의< AddressLine1에 대해 1(True)로> 설정됩니다. 결과적으로 데이터는 CDATA 섹션에 반환됩니다.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Address"   
               sql:relation="Person.Address"   
               sql:key-fields="AddressID" >  
   <xsd:complexType>  
        <xsd:sequence>  
          <xsd:element name="AddressID"  type="xsd:string" />  
          <xsd:element name="AddressLine1" type="xsd:string"   
                       sql:use-cdata="1" />  
        </xsd:sequence>  
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  
스키마에 대해 샘플 XPath 쿼리를 테스트하려면
  1. 위 스키마 코드를 복사한 후 텍스트 파일에 붙여넣습니다. 파일을 UseCData.xml로 저장합니다.

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

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

    매핑 스키마(UseCData.xml)에 대해 지정된 디렉터리 경로는 템플릿이 저장된 디렉터리를 기준으로 합니다. 절대 경로도 지정할 수 있습니다. 예를 들면 다음과 같습니다.

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

    자세한 내용은 ADO를 사용하여 SQLXML 4.0 쿼리를 실행합니다.

다음은 결과 집합의 일부입니다.

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