XSD.exe并创建对父元素的引用。

时间:2011-07-29 18:04:59

标签: c# xsd xsd.exe

假设我有以下架构

<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Company" type="Employer" />
<xs:complexType name="Employer">
    <xs:sequence>
        <xs:element name="Address" type="xs:string" />
        <xs:element name="Phone" type="xs:string" />
        <xs:element name="Employees" type="Person" maxOccurs="unbounded" />
    </xs:sequence>
</xs:complexType>
<xs:complexType name="Person">
    <xs:sequence>
        <xs:element name="Name" type="xs:string" />
        <xs:element name="SSN" type="xs:string" />
    </xs:sequence>
</xs:complexType>
</xs:schema>`

我使用XSD生成Person和Employer类。 Employer类按预期包含一个Persons列表,但我也希望每个人都包含一个指向它的父元素Employer的指针。我怎样才能让XSD这样做?

1 个答案:

答案 0 :(得分:0)

解决方案可以是将自己的扩展编写到包含父成员的生成类中。这不是一个很好的解决方案,因为XML序列化器不会自动填充Parent属性,因此必须手动完成。