SQLXML 4.0의 xml 데이터 형식 지원
적용 대상: SQL Server
Azure SQL Database
SQL Server 2005(9.x)부터 SQL Server는 xml 데이터 형식을 사용하여 XML 형식 데이터를 지원합니다. 이 항목에서는 SQLXML 4.0이 xml 데이터 형식의 인스턴스를 인식하고 이에 대한 지원을 구현하는 방법에 대한 정보를 제공합니다.
xml 데이터 형식 작업
xml 데이터 형식 열을 구현하는 SQL 테이블을 사용하는 방법에 대한 자세한 내용을 이해하려면 다음 예제가 제공됩니다.
작업 | 예시 | 항목 |
---|---|---|
XML 뷰에 xml 열을 매핑하고 포함하는 방법 | "XML 요소를 XML 데이터 형식 열에 매핑" | 테이블 및 열에 XSD 요소 및 특성의 기본 매핑(SQLXML 4.0) |
updategram을 사용하여 xml 열에 데이터를 삽입하는 방법 | "XML 데이터 형식 열에 데이터 삽입" | XML Updategrams를 사용하여 데이터 삽입(SQLXML 4.0) |
XML 데이터를 xml 열로 대량 로드 | "xml 데이터 형식 열에서 대량 로드" | XML 대량 로드 예제(SQLXML 4.0) |
지침 및 제한 사항
<xsd:xml> 데이터 형식을 포함하여 열에 매핑할 수 없습니다. 이 시나리오에 대한 SQLXML 지원은 sql:overflow-field 주석을 통해 제공됩니다. 또 다른 해결 방법은 xml 데이터 형식 필드를 xsd:anyType의 요소로 매핑하는 것입니다. 이 해결 방법은 위의 표에서 참조한 "XML 요소를 XML 데이터 형식 열에 매핑" 예제에서 설명합니다.
xml 데이터 형식 열의 내용에 대한 XPath 쿼리는 지원되지 않습니다.
지원되지 않거나(예: sql:relationship 및 sql:key-fields) 허용된 주석에 xml 데이터 형식 열을 사용하면 SQLXML 4.0을 구현하는 중간 계층 구성 요소에 의해 트래핑되지 않는 SQL Server 오류가 발생합니다. 이는 SQLXML에 SQL 유형 정보가 필요 없기 때문에 발생합니다. 이는 BLOB 및 이진 형식과 같은 다른 데이터 형식에 대한 SQLXML의 동작과 유사합니다.
매핑 xml 열은 XSD 스키마에 대해서만 지원됩니다. XDR 스키마는 xml 열 매핑을 지원하지 않습니다.
SQLXML 4.0은 SQL Server에서 제공하는 XML 구문 분석 지원을 사용합니다. xml 열은 형식화된 XML 또는 형식화되지 않은 XML로 매핑될 수 있습니다. 두 경우 모두 SQLXML 4.0에서는 입력 XML의 유효성을 검사하지 않습니다. 입력 XML이 유효하지 않거나 올바른 형식이면 SQL Server는 이를 SQLXML에 보고하고 서버에서 반환한 관련 오류 정보를 사용자에게 전파합니다.
SQLXML 4.0은 SQL Server에서 제공되는 DTD에 대한 제한된 지원을 사용합니다. SQL Server를 사용하면 xml 데이터 형식 데이터에서 내부 DTD를 사용할 수 있으며, 기본값을 제공하고 엔터티 참조를 확장된 콘텐츠로 바꾸는 데 사용할 수 있습니다. SQLXML은 XML 데이터를 "있는 그대로" (내부 DTD 포함) 서버에 전달합니다. 타사 도구를 사용하여 DTD를 XSD(XML 스키마) 문서로 변환하고 인라인 XSD 스키마가 있는 데이터를 데이터베이스에 로드할 수 있습니다.
SQLXML 4.0은 SQL Server의 동작에 따라 XML 선언 처리 지침(예: )을 유지하지 않습니다. 대신 XML 선언은 SQL Server XML 파서에 대한 지시문으로 처리되며 데이터가 xml 데이터 형식으로 변환된 후 해당 특성(버전, 인코딩 및 독립 실행형)이 손실됩니다. XML 데이터는 UCS-2로 내부적으로 저장됩니다. XML 인스턴스의 다른 모든 처리 지침은 유지됩니다. xml 열에서 허용되며 SQLXML에서 지원될 수 있습니다.