我有xml(xsd)文件。我需要在SQLite数据库中创建db表,并将数据从XML加载到该表(在C#应用程序中)。
我尝试使用此代码:
string ConnectionStr = "Data Source=mydb.sqlite;Version=3; New=True; Compress = True;";
NDbUnit.Core.INDbUnitTest Database = new NDbUnit.Core.SqlLite.SqlLiteDbUnitTest(ConnectionStr);
Database.ReadXmlSchema("AS_ACTSTAT.xsd");
Database.ReadXml("AS_ACTSTAT.xml");
Database.PerformDbOperation(NDbUnit.Core.DbOperationFlag.CleanInsertIdentity);
但我有这个错误(读取xml架构):
SqlDbCommandBuilder.CreateSelectCommand(DataSet,string)失败 tableName ='ActualStatus'
架构文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:usch="http://www.unisoftware.ru/schematron-extensions" xmlns:sql="urn:schemas-microsoft-com:mapping-schema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="ActualStatuses" sql:is-constant="true" >
<xs:annotation>
<xs:documentation>sostav</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ActualStatus" maxOccurs="unbounded" sql:relation="AS_ACTSTAT">
<xs:annotation>
<xs:documentation>status</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="ACTSTATID" use="required">
<xs:annotation>
<xs:documentation>key</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:totalDigits value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="NAME" use="required">
<xs:annotation>
<xs:documentation>name
0 – non actual
1 – actual
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
ps此外,我尝试使用Microsoft的SqlXml 4.0(它适用于MS SQL 2008),但找不到SQLite的OLEDB驱动程序。
有什么想法吗?我需要像SqlXml 4.0这样的SQlite,因为我以前不知道xml文件的结构。