1
我的數據的子元素直接從根元素寫入,而不是在架構中作爲父元素的元素。由xsd.exe生成的DataSet不會寫入根元素的屬性
我的xsd:
<xs:schema xmlns="MyNameSpace" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="MyNameSpace" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xs:import/>
<xs:element name="DataFile">
<xs:complexType>
<xs:sequence>
<xs:element name="LastUpdatedBy" type="xs:string"/>
<xs:element name="DateTimeLastUpdate" type="xs:dateTime"/>
<xs:element name="DataValues" maxOccurs="unbounded">
<xs:complexType>
<xs:all>
<xs:element name="Num1" type="xs:int"/>
<xs:element name="Num2" type="xs:int"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我的輸入文件:
<DataFile xmlns="MyNameSpace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="MyNameSpace MySchema.xsd">
<LastUpdatedBy>Dan</LastUpdatedBy>
<DateTimeLastUpdate>2009-12-07T16:40:30.0Z</DateTimeLastUpdate>
<DataValues>
<Num1>0</Num1>
<Num2>0</Num2>
</DataValues>
<DataValues>
<Num1>2</Num1>
<Num2>0</Num2>
</DataValues>
</DataFile>
什麼被撲出MyDataSet.WriteXml(filename)
<DataFile xmlns="MyNameSpace">
<LastUpdatedBy>Dan</LastUpdatedBy>
<DateTimeLastUpdate>2009-12-07T16:40:30.0Z</DateTimeLastUpdate>
<DataValues>
<Num1>0</Num1>
<Num2>0</Num2>
</DataValues>
<DataValues>
<Num1>2</Num1>
<Num2>0</Num2>
</DataValues>
</DataFile>
的XMLNS:XSI和XSI:的schemaLocation屬性不能寫。我需要做些什麼來保護它們?
這只是改變了什麼是錯的。它失去了對模式中大多數元素值的限制(由於長度的原因未在上面顯示)。然後它創建一個以MyDataSet.DataSetName命名的新頂層元素,該元素包含數據和損壞的模式。然後添加一個包含xsd except版本中所有屬性的元素,以及三個新元素:xs:schema id =「MyDataSet.DataSetName」xmlns:mstns =「MyNameSpace」xmlns:msdata =「urn:schemas-microsoft-com: xml-msdata「 – 2009-12-11 21:46:50
我喜歡清理。 – 2009-12-11 22:11:34
至少在默認情況下,它的功能與DataSet.WriteXml()相同 – 2009-12-14 13:43:22