【发布时间】:2014-11-27 13:15:33
【问题描述】:
我必须将 XML 数据导入 SQL Server 数据库。我有以下 XML(例如):
<ROOT xmlns="http://www.w3.org/1999/xhtml">
<Customer CustomerID="1" CompanyName="xyz" />
<Customer CustomerID="2" CompanyName="abc" />
</ROOT>
使用架构:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Customer" sql:relation="Customers" >
<xsd:complexType>
<xsd:attribute name="CustomerID" type="xsd:string" />
<xsd:attribute name="CompanyName" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
运行标准 MSDN (http://msdn.microsoft.com/ru-ru/library/ms172633.aspx) VBScript SQLXMLBulkLoad 会成功,但不会加载任何数据。
如果删除命名空间引用(xmlns 属性),它会起作用。
XSD 不允许您映射属性“xmlns”,因此sql:mapped='false' 在这里不起作用。
问题是,源 XML 无法更改,是否甚至可以仅使用 XSD 架构来解决问题?
【问题讨论】:
标签: sql-server xml xsd sqlxml bulk-load