У меня есть следующий 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>
Я создаю класс .net на основе этого xsd (сейчас использую xsd.exe).
Сгенерированный класс Person будет иметь свойство с именем id , но хотелось бы, чтобы это свойство называлось PersonID .
Я не могу изменить имя тега xml, так как я использую xsd в качестве контракта на связь, и теги исправлены.
И все же я хотел бы иметь больше контроля над тем, как выглядит сгенерированный код.
Какие у меня варианты?
На данный момент единственно верным вариантом является написание собственного генератора кода, который будет обрабатывать теги appinfo в соответствии с моими потребностями - но я бы хотел, чтобы это был мой последний вариант (поскольку я Я не первый, кто сталкивается с этой проблемой, поэтому должны быть и другие решения).
Есть предложения?