xsd中的.net代码-指定所创建属性的名称

xsd中的.net代码-指定所创建属性的名称,.net,xml,xsd,xsd.exe,.net,Xml,Xsd,Xsd.exe,我有以下xsd: <xs:element name="Person" type="PersonType"> <xs:annotation> <xs:documentation> This will be my person class</xs:documentation> </xs:annotation> </xs:element> <xs:complexType name="P

我有以下xsd:

<xs:element name="Person" type="PersonType">
    <xs:annotation>
            <xs:documentation> This will be my person class</xs:documentation>
    </xs:annotation>
</xs:element>
<xs:complexType name="PersonType">
    <xs:all>
        <xs:element ref="id" minOccurs="1"  >
         <xs:annotation>
             <xs:appinfo>
                 <property name="PersonID"/>
             </xs:appinfo>
         </xs:annotation>
        </xs:element>
        <xs:element ref="description" minOccurs="1"/>
    </xs:all>
</xs:complexType>
<xs:element name="id" type="char40"/>
<xs:element name="description" type="char255"/>
<xs:simpleType name="char40">
    <xs:restriction base="xs:string">
        <xs:maxLength value="40"/>
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="char255">
    <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
    </xs:restriction>
</xs:simpleType>

这将是我的个人课
我正在基于这个xsd生成一个.net类(现在使用xsd.exe)

生成的Person类将有一个名为id的属性,但我希望该属性名为PersonID

我无法更改xml标记的名称,因为我使用xsd作为通信契约,并且标记是固定的

然而,我希望对生成的代码的外观有更多的控制。 我的选择是什么?

目前唯一有效的选择似乎是编写我自己的代码生成器,根据我的需要处理appinfo标记——但我希望这是我的最后一个选择(因为我觉得我不是第一个遇到这个问题的人,所以肯定还有其他解决方案)

有什么建议吗?

(1)看看哪个比xsd.exe更灵活。(2)考虑继承自动生成的类并根据您的需要公开新的属性。