我尝试创建和填充数据库表时SQL XML批量加载错误

时间:2013-05-21 22:21:29

标签: c# sql-server xml xsd sql-server-2012

我正在使用包含大量XSD文件的XML数据。要将此数据加载到数据库(我需要从XSD创建表)我不能使用xsd2DB(因为XSD包含union和list),而不是SSID项目。所以我尝试批量加载但是有一个错误:架构:不支持在nilReason上派生类型的多个基础(HResult> 0x80004005)

任何人都可以帮我解决这个问题吗?

非常感谢!

下面是我的C#代码和XSD http://www.cuzk.cz/GenerujSoubor.ashx?NAZEV=10-AXSD的URL(由捷克办事处分发,用于调查,制图和CADASTRE); zip中的主要XSD文件位于路径中:* ... \ ruian \ xsd \ vymenny_format *

   SQLXMLBulkLoad4Class objBL = new SQLXMLBulkLoad4Class();
         objBL.ConnectionString = "Provider=sqloledb;server=mypc\\SQLSer; database=test;integrated security=SSPI";


   objBL.BulkLoad = true;
   objBL.SchemaGen = true;
   objBL.SGUseID = true;
   objBL.CheckConstraints = true;
   objBL.ForceTableLock = true;
   objBL.KeepIdentity = false;
   objBL.ErrorLogFile = filePath + "\\Project_Errors\\error.txt";
   objBL.Execute(@"D:\data\ruian\xsd\vymenny_format\test.xsd", @"D:\data\ruian\xsd\vymenny_format\test_data.xml");
   objBL.Execute(@"D:\data_RUIAN\ruian\xsd\vymenny_format\VymennyFormatTypy.xsd", @"D:\data_RUIAN\data\20130430_OB_500071_UKSH.xml");

1 个答案:

答案 0 :(得分:0)

并非所有可能的XSD都可以在数据库模式中自动翻译 - 我担心您处于其中一种情况。

您必须手动创建数据库表并将XML映射到它们。