.net код из xsd - укажите имя созданного свойства - PullRequest
1 голос
/ 01 марта 2012

У меня есть следующий 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 в соответствии с моими потребностями - но я бы хотел, чтобы это был мой последний вариант (поскольку я Я не первый, кто сталкивается с этой проблемой, поэтому должны быть и другие решения).

Есть предложения?

...