我有以下架构:
<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片段。
在我看来,我有两个选择:
答案 0 :(得分:0)
我建议您使用以下结构进行序列化/反序列化:
<User>
<Company language="en">In English</Company>
</User>
和
<User>
<Company language="fr">In French</Company>
</User>
如果您的原始XML不符合这样的固定结构,您可以使用XSLT对其进行转换。