我有以下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 标签 - 但我希望这是我的最后选择(因为我觉得我不是第一个遇到这个问题的人,因此必须有其他解决方案。
有什么建议吗?