c# - System.Data.DataSet 未完全读取 XML 文件

标签 c# unit-testing xsd dataset ndbunit

我正在使用 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 文件。

最佳答案

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

关于c# - System.Data.DataSet 未完全读取 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022212/

相关文章:

c# - 使用 log4net-loggly 发送日志

c# - EmptyEnumerable<T>.实例赋值与多线程设计

c# - 使用改变环境的代码进行单元测试的实用方法

c# - 如何在 C# 中从泛型创建对象

enums - JAXB 不会为受限元素创建枚举

c# - 这个 C# 语法叫什么?

c# - 即使使用具有容量的构造函数,列表 C# 容量始终为 0?

c# - 模拟抽象保护方法

xsd - 如何判断 XSD 文件中的 XML 元素是否被标记为必需

Python:有没有办法根据xml例子生成xsd文件