다음을 통해 공유


sql:encode를 사용하여 BLOB 데이터에 대한 URL 참조 요청(SQLXML 4.0)

주석이 추가된 XSD 스키마에서 특성(또는 요소)이 Microsoft SQL Server의 BLOB 열에 매핑되면 데이터는 XML 내에서 Base 64로 인코딩된 형식으로 반환됩니다.

나중에 BLOB 데이터를 이진 형식으로 검색하는 데 사용할 수 있는 데이터(URI)에 대한 참조를 반환하려면 주석을 sql:encode 지정합니다. 단순 형식의 특성 또는 요소에 지정할 sql:encode 수 있습니다.

필드 값 sql:encode 대신 필드에 대한 URL을 반환해야 함을 나타내는 주석을 지정합니다. sql:encode 는 URL에서 싱글톤 선택을 생성하기 위한 기본 키에 따라 달라집니다. 주석을 사용하여 sql:key-fields 기본 키를 지정할 수 있습니다.

주석에 sql:encode "url" 또는 "default" 값을 할당할 수 있습니다. "default" 값은 Base 64로 인코딩된 형식으로 데이터를 반환합니다.

이 주석은 sql:encode ID, IDREF, IDREFS, NMTOKEN 또는 NMTOKENS 특성 형식과 함께 sql:use-cdata 사용할 수 없습니다. XSD 고정 특성과 함께 사용할 수도 없습니다.

비고

BLOB 형식 열은 키 또는 외래 키의 일부로 사용할 수 없습니다.

예시

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

A. BLOB 데이터에 대한 URL 참조를 가져오기 위해 sql:encode 지정

이 예제에서 매핑 스키마는 Base 64로 인코딩된 형식으로 이진 데이터를 검색하는 대신 특정 제품 사진에 대한 URI 참조를 검색하도록 LargePhoto 특성에 지정 sql:encode 합니다.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  
  <xsd:element name="ProductPhoto" sql:relation="Production.ProductPhoto"   
               sql:key-fields="ProductPhotoID" >  
   <xsd:complexType>  
      <xsd:attribute name="ProductPhotoID"  type="xsd:int"  />  
     <xsd:attribute name="LargePhoto" type="xsd:string" sql:encode="url" />  
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  
스키마에 대해 샘플 XPath 쿼리를 테스트하려면
  1. 위 스키마 코드를 복사한 후 텍스트 파일에 붙여넣습니다. 파일을 sqlEncode.xml저장합니다.

  2. 다음 템플릿을 복사하여 텍스트 파일에 붙여넣습니다. 파일을 sqlEncode.xml저장한 디렉터리에 sqlEncodeT.xml 저장합니다.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="sqlEncode.xml">  
            /ProductPhoto[@ProductPhotoID=100]  
        </sql:xpath-query>  
    </ROOT>  
    

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

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

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

다음은 결과입니다.

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
   <ProductPhoto ProductPhotoID="100"  
                 LargePhoto="dbobject/Production.ProductPhoto[@ProductPhotoID="100"]/@LargePhoto" />   
</ROOT>