我創建了XSD數據集表的xml:創建
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="test" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Extension">
<xs:complexType>
<xs:sequence>
<xs:element name="parent">
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="parentItem">
<xs:complexType>
<xs:sequence>
<xs:element name="child">
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" default="10" name="childItem" type="xs:integer" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我希望加載這個架構到DataSet中,然後編輯和創建XML
所以我儘量填滿childItem元素值爲100:
DataSet a = new DataSet();
a.ReadXmlSchema(mySchema);
a.Tables[3].Rows.Add(100);
然後我執行:
a.getXml()
- 結果:
<Extension xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="test">
<childItem xmlns="">100</childItem>
</Extension>
正如你可以看到它完全地忽略模式的關係 - 在該模式中,你可以看到,上面childItem每個父元素是必需的,所以如果我增加價值到最深的孩子我期望XML這樣的:
<Extension>
<Parent>
<ParentItem>
<Child>
<ChildItem>100<ChildItem/>
<Child/>
<ParentItem/>
<Parent/>
<Extension/>
我錯過了什麼,或者這是DataSet的標準行爲?非常感謝 我使用c#和net4.0,winforms
mySchema是什麼樣子?你的模式是否在一個文件中? –
mySchema是以上架構 –
不,我的意思是我想看看你如何定義變量mySchema。它是一個流?一個文件名的字符串路徑? XMLReader的? –