주석 해석 - sql:mapped
적용 대상: SQL Server Azure SQL Database
XML 대량 로드는 XSD 스키마의 sql:mapped 주석을 예상대로 처리합니다. 즉, 매핑 스키마가 모든 요소 또는 특성에 대해 sql:mapped="false"를 지정하는 경우 XML 대량 로드는 관련 데이터를 해당 열에 저장하려고 시도하지 않습니다.
XML 대량 로드는 매핑되지 않은 요소 및 특성을 무시합니다(스키마에 설명되지 않았거나 sql:mapped="false"를 사용하여 XSD 스키마에 주석이 추가되었기 때문). 매핑되지 않은 모든 데이터는 sql:overflow-field를 사용하여 이러한 열을 지정하는 경우 오버플로 열로 이동합니다.
예를 들어 다음 XSD 스키마를 고려합니다.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="ROOT" sql:is-constant="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Customers" sql:relation="Cust"
sql:overflow-field="OverflowColumn" >
<xsd:complexType>
<xsd:attribute name="CustomerID" type="xsd:integer" />
<xsd:attribute name="CompanyName" type="xsd:string" />
<xsd:attribute name="City" type="xsd:string" />
<xsd:attribute name="HomePhone" type="xsd:string"
sql:mapped="false" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
HomePhone 특성은 sql:mapped="false"를 지정하므로 XML 대량 로드는 이 특성을 해당 열에 매핑하지 않습니다. XSD 스키마는 XML 대량 로드가 이 미해결 데이터를 저장하는 오버플로 열(OverflowColumn)을 식별합니다.
작업 샘플을 테스트하려면
tempdb 데이터베이스에서 다음 테이블을 만듭니다.
USE tempdb CREATE TABLE Cust (CustomerID int PRIMARY KEY, CompanyName varchar(20) NOT NULL, City varchar(20) DEFAULT 'Seattle', OverflowColumn nvarchar(200)) GO
이 예제에 제공된 스키마를 SampleSchema.xml 저장합니다.
다음 예제 XML 데이터를 SampleXMLData.xml로 저장합니다.
<ROOT> <Customers CustomerID="1111" CompanyName="Sean Chai" City="NY" HomePhone="111-1111" /> <Customers CustomerID="1112" CompanyName="Dont Know" City="LA" HomePhone="222-2222" /> </ROOT>
XML 대량 로드를 실행하려면 다음 Microsoft VBScript(Visual Basic Scripting Edition) 예제를 Sample.vbs로 저장하고 실행합니다.
set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0") objBL.ConnectionString = "provider=SQLOLEDB;data source=localhost;database=tempdb;integrated security=SSPI" objBL.ErrorLogFile = "c:\error.log" objBL.CheckConstraints=True objBL.Execute "c:\SampleSchema.xml", "c:\SampleXMLData.xml" set objBL=Nothing
해당하는 XDR 스키마입니다.
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:sql="urn:schemas-microsoft-com:xml-sql" >
<ElementType name="ROOT" sql:is-constant="1">
<element type="Customers" />
</ElementType>
<ElementType name="Customers" sql:relation="Cust"
sql:overflow-field="OverflowColumn" >
<AttributeType name="CustomerID" />
<AttributeType name="CompanyName" />
<AttributeType name="City" />
<AttributeType name="HomePhone" />
<attribute type="CustomerID" />
<attribute type="CompanyName" />
<attribute type="City" />
<attribute type="HomePhone" sql:map-field="0" />
</ElementType>
</Schema>