sql:encode를 사용하여 BLOB 데이터에 대한 URL 참조 요청(SQLXML 4.0)
적용 대상: SQL ServerAzure SQL Database
주석이 추가된 XSD 스키마에서 특성(또는 요소)이 Microsoft SQL Server의 BLOB 열에 매핑되면 데이터는 XML 내에서 Base 64로 인코딩된 형식으로 반환됩니다.
나중에 BLOB 데이터를 이진 형식으로 검색하는 데 사용할 수 있는 데이터(URI)에 대한 참조를 반환하려면 sql:encode 주석을 지정합니다. 단순 형식의 특성 또는 요소에 sql:encode를 지정할 수 있습니다.
필드 값 대신 필드에 대한 URL을 반환해야 함을 나타내도록 sql:encode 주석을 지정합니다. sql:encode 는 URL에서 싱글톤 선택을 생성하기 위해 기본 키에 따라 달라집니다. sql:key-fields 주석을 사용하여 기본 키를 지정할 수 있습니다.
sql:encode 주석에는 "url" 또는 "default" 값이 할당될 수 있습니다. "default" 값은 Base 64로 인코딩된 형식으로 데이터를 반환합니다.
sql:use-cdata 또는 ID, IDREF, IDREFS, NMTOKEN 또는 NMTOKENS 특성 형식에서는 sql:encode 주석을 사용할 수 없습니다. XSD 고정 특성과 함께 사용할 수도 없습니다.
참고 항목
BLOB 유형의 열은 키 또는 외래 키의 일부로 사용할 수 없습니다.
예제
다음 예제를 사용하여 작업 샘플을 만들려면 특정 요구 사항을 충족해야 합니다. 자세한 내용은 SQLXML 실행 요구 사항 예제를 참조 하세요.
A. sql:encode를 지정하여 BLOB 데이터에 대한 URL 참조 얻기
이 예제에서 매핑 스키마는 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 쿼리를 테스트하려면
위 스키마 코드를 복사한 후 텍스트 파일에 붙여넣습니다. 파일을 sqlEncode.xml 저장합니다.
다음 템플릿을 복사하여 텍스트 파일에 붙여넣습니다. 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"
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>
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기