C# myXmlDataDoc.DataSet.ReadXml问题
我正在使用C# myXmlDataDoc.DataSet.ReadXml问题,c#,xml,C#,Xml,我正在使用 myXmlDataDoc.DataSet.ReadXml(xml_file_name, XmlReadMode.InferSchema); 要在通过读取xml架构创建的数据集中填充表,请使用: myStreamReader = new StreamReader(xsd_file_name); myXmlDataDoc.DataSet.ReadXmlSchema(myStreamReader); 我面临的问题是在读取xml标记时: <xs:element name="para
myXmlDataDoc.DataSet.ReadXml(xml_file_name, XmlReadMode.InferSchema);
要在通过读取xml架构创建的数据集中填充表,请使用:
myStreamReader = new StreamReader(xsd_file_name);
myXmlDataDoc.DataSet.ReadXmlSchema(myStreamReader);
我面临的问题是在读取xml标记时:
<xs:element name="parameters" minOccurs="0" maxOccurs="12" type="xs:unsignedInt"/>
在我的xsd文件中,我使用以下方式表示一个数组:
<xs:element name="test_data">
<xs:complexType>
<xs:complexContent>
<xs:extension base="test_base">
<xs:sequence>
<xs:element name="a" type="xs:unsignedShort"/>
<xs:element name="b" type="xs:unsignedShort"/>
<xs:element name="c" type="xs:unsignedInt"/>
<xs:element name="parameters" minOccurs="0" maxOccurs="12" type="xs:unsignedInt"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
有人知道出了什么问题吗?使用数据集会限制您使用映射到关系模型的XML模式。这有时不是你所期望的
我建议您手动创建一个数据集,或者使用Visual Studio中的数据集设计器创建一个您认为与正在使用的数据最匹配的数据集。然后查看结果XSD或使用DataSet.WriteXmlSchema将模式写入文件。看看这个文件——这是您应该使用的XML模式
我认为您不会让它接受complexContent甚至是扩展。请为test_base发布XSD。
<xs:element name="test_data">
<xs:complexType>
<xs:complexContent>
<xs:extension base="test_base">
<xs:sequence>
<xs:element name="a" type="xs:unsignedShort"/>
<xs:element name="b" type="xs:unsignedShort"/>
<xs:element name="c" type="xs:unsignedInt"/>
<xs:element name="parameters" minOccurs="0" maxOccurs="12" type="xs:unsignedInt"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<test_data>
<a>100</a>
<b>2</b>
<c>1</c>
<parameters>1</parameters>
<parameters>2</parameters>
<parameters>3</parameters>
<parameters>4</parameters>
<parameters>5</parameters>
<parameters>6</parameters>
<parameters>7</parameters>
<parameters>8</parameters>
<parameters>9</parameters>
<parameters>10</parameters>
<parameters>11</parameters>
<parameters>12</parameters>
</test_data>
TableName: test_data
100 2 1 1 2 3 4 5 6 7 8 9 10 11 12