【发布时间】:2010-12-28 17:37:23
【问题描述】:
我有以下架构:
<xs:element name="Company" type="xs:string" />
<xs:element name="Companhia" substitutionGroup="Company"/>
<xs:element name="Société" substitutionGroup="Company"/>
<xs:complexType name="User">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="Company" />
</xs:sequence>
</xs:complexType>
这使我能够成功验证以下 XML 片段:
<User>
<Company>In English</Company>
</User>
和
<User>
<Société>In French</Société>
</User>
恐怕 xsd 生成的 c# 类和对应的 XMLSerializer 只能与第一个 XML 片段一起使用。
在我看来,我有两个选择:
- 在反序列化之前使用 XSLT 处理 XML 文件,以便将元素名称提升为英文。
- 编写自定义反序列化代码。
你怎么看? 样品将不胜感激。 TIA。
【问题讨论】:
标签: c# xml-serialization