数据集没有完全读取XML文件

本文关键字:读取 XML 文件 数据集 | 更新日期: 2023-09-27 18:06:35

我使用NDbunit对我的方法和数据库的功能进行单元测试。要使NDbunit工作,它首先加载一个xml模式文件(.xsd),然后读入包含将填充到数据库中的所有数据的xml文件。这是我的xml模式文件MessageDS.xsd:

<xs:schema id="MessageDS"
 xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" 
 xmlns:msprop="urn:schemas-microsoft-com:xml-msprop"
 targetNamespace="http://tempuri.org/MessageDS.xsd"
 elementFormDefault="qualified"
 xmlns="http://tempuri.org/MessageDS.xsd"
 xmlns:mstns="http://tempuri.org/MessageDS.xsd"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="MessageDS" msdata:IsDataSet="true" msdata:UseCurrentLocalexmlns="true" msprop:Generator_MessageDSName="MessageDS" msprop:Generator_DataSetName="MessageDS">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="MESSAGE">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="CREATED_AT" type="xs:dateTime" />
              <xs:element name="SUBJECT" type="xs:string" />
              <xs:element name="MESSAGE" type="xs:string" />
              <xs:element name="FROM" type="xs:string" />
              <xs:element name="TO" type="xs:string" />
              <xs:element name="TO_EMAIL" type="xs:string" />
              <xs:element name="EMAIL_SENT_AT" type="xs:dateTime" />
            </xs:sequence>
            <xs:attribute name="ID" type="xs:int" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

这是我的xml数据文件Message.xml:

<MessageDS xlmns="http://tempuri.org/MessageDS.xsd">
  <MESSAGE ID="1">
    <FROM>Test User 2</FROM>
    <TO>Test User 1</TO>
  <MESSAGE>
</MessageDS>

最初我只是使用NDbunit的dll引用,但最终我下载了源代码并开始通过问题进行调试。我注意到,在xml文件中读取xml模式文件后,没有正确加载到数据集(System.Data.DataSet)。唯一的xml格式是:

<MessageDS xmlns="http://tempuri.org/MessageDS.xsd" />

由于某些原因,我的MESSAGE对象没有被读入xml文件。我不确定这是因为我的xml文件没有根据xml模式文件正确创建,还是其他原因。我试着遵循https://code.google.com/p/ndbunit/wiki/QuickStartGuide上的NDbunit示例,我还查看了NDbunit测试文件中的xml文件。

数据集没有完全读取XML文件

首先,"xlmns"拼写错误:<MessageDS xlmns="http://tempuri.org/MessageDS.xsd">