SQLite从xml(xsd)创建数据库表

时间:2015-03-25 14:20:53

标签: c# xml sqlite xsd sqlxml

我有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文件的结构。

0 个答案:

没有答案