我有一個XML文檔,其中包含來自2個XML模式的類型。其中一個(theirs.xsd)是我正在與之集成(並且無法編輯)的專有架構。爲此,我定義了我自己的類型(mine.xsd),它是'any'元素中的一個元素是專有類型。將XML反序列化爲多個模式中定義的對象
我使用Visual Studio的xsd.exe從模式生成C#類。但是,專有類型中的'any'元素生成爲XmlElement [],因此我的類型不會被反序列化。
所以我想我可以去兩種方式之一:或者生成將反序列化我的類型,而不是保留爲XmlElement的類,或者採取XmlElements並單獨反序列化它們。反序列化我需要一個XmlReader,所以我需要從一個XmlElement轉到一個XmlReader,我不知道該怎麼做。謝謝。
示例: 文件:theirs.xsd
<xs:element name="ProprietaryContainer">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
文件:mine.xsd
<xs:element name="MyPairType">
<xs:complexType>
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="value" type="xs:long"/>
</xs:sequence>
</xs:complexType>
</xs:element>
文件:message.xml
<their:ProprietaryContainer>
<their:name>pairContainer</their:name>
<mine:MyPairType>
<mine:key>abc</mine:key>
<mine:value>long</mine:value>
</mine:MyPairType>
</their:ProprietaryContainer>
(回覆評論) – 2009-06-09 14:26:24