Мне нужно импортировать данные XML в базу данных SQL Server. У меня есть следующий XML (например):MS SQLXML. Импорт 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?
Спасибо! Это действительно хороший способ справиться с этой проблемой. Тем не менее, мне все же интересно, можно ли это сделать с помощью SQLXMLBulkLoad и правильной схемы XSD. –