[英]Deserializing XML to Objects defined in multiple schemas
我有一個XML文檔,其中包含2種XML模式的類型。 一個(theirs.xsd)是我正在集成(不能編輯)的專有模式。 為此,我定義了自己的類型(mine.xsd),該類型是'any'元素中的元素,是專有類型。
我使用Visual Studio的xsd.exe從架構生成C#類。 但是,專有類型中的“ any”元素將作為XmlElement []生成,因此我的類型不會反序列化。
因此,我想我可以采用以下兩種方法之一:生成將反序列化我的類型的類,而不是將其保留為XmlElement;或者采用XmlElements分別對它們進行反序列化。 要反序列化,我需要一個XmlReader,所以我需要從XmlElement轉到XmlReader,但我不確定該怎么做。 謝謝。
示例:文件:themes.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>
從問題:
要反序列化,我需要一個XmlReader,所以我需要從XmlElement轉到XmlReader,但我不確定該怎么做
using(XmlReader reader = new XmlNodeReader(element)) {
//... use reader
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.