C# 如何在xmlDataDocument.DataSet中填充表
我正在开发一个C应用程序,它使用XML模式文件作为消息定义的数据库,使用XML文件作为消息数据的数据库 我遵循我发现的例子: 我编写了自己的xsd和XML文件。我在示例中使用了相同的方法,读取xsd文件,然后加载 xml文件。但是我没有为我的数据表创建任何行。我使用调试器逐步检查我的代码。当我使用xmlDataDocument.DataSet.Tables[表格名称]获取我的DataTable时,该表格的Rows属性为0 有人知道在我用XML文件加载xmlDataDocument后,数据集表无法填充的原因吗 以下是XSD文件的一个片段:C# 如何在xmlDataDocument.DataSet中填充表,c#,xml,dataset,C#,Xml,Dataset,我正在开发一个C应用程序,它使用XML模式文件作为消息定义的数据库,使用XML文件作为消息数据的数据库 我遵循我发现的例子: 我编写了自己的xsd和XML文件。我在示例中使用了相同的方法,读取xsd文件,然后加载 xml文件。但是我没有为我的数据表创建任何行。我使用调试器逐步检查我的代码。当我使用xmlDataDocument.DataSet.Tables[表格名称]获取我的DataTable时,该表格的Rows属性为0 有人知道在我用XML文件加载xmlDataDocument后,数据集表无法
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="test"
targetNamespace="http://tempuri.org/test.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/test.xsd"
xmlns:mstns="http://tempuri.org/test.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="reboot_msg">
<xs:complexType>
<xs:complexContent>
<xs:extension base="header_s">
<xs:sequence>
<xs:element name="que_name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="4"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="priority" type="xs:unsignedShort"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
下面是XML文件的一个片段:
<?xml version="1.0" standalone="yes"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<reboot_msg>
<message_length>16</message_length>
<message_type>7</message_type>
<message_sequence>0</message_sequence>
<que_name>NONE</que_name>
<priority>5</priority>
</reboot_msg>
可能是我创建的XML和XSD文件遗漏了什么。请帮忙
感谢将XML模式与XmlDataDocument一起使用,您应该只在数据集设计器中创建模式。XmlDataDocument和DataSet通常只能处理XML模式的一个子集。为了确保您的模式只使用该子集,您应该使用数据集设计器创建它。XmlDataDocument现在不推荐使用。
尽可能使用XmlDocument。
使用DataSet.ReadXml,DataSet.ReadSchema。John,谢谢你的回答。你能给我指一份更能说明这一点的文件吗?什么是XML模式的子集。我使用visual studio 2008在我的项目中添加了一个新的xsd文件,从而创建了xsd文件。@alex:我怀疑是否有文档-XmlDataDocument甚至在.NET 4.0中被弃用。作为一个示例,考虑数据集设计器只生成可映射到数据集所使用的关系结构的XSD。这意味着没有xs:choice,没有类型被多个父类型用作子类型,等等。这些都是数据集无法使用的完全有效的XML模式特性。我已经解决了。我没有使用xmlDataDocument.load函数来加载xml文件,而是使用XmlDataDoc.DataSet.ReadXmlxml_文件名xmldreadmode.InferSchema。现在我可以看到为数据集中的表创建的新行。