Je génère des classes C# à partir d'un fichier XSD OTA (Open Travel Alliance). Vous pouvez download the XSD file from here.Pourquoi certaines propriétés de classe C# générées ne correspondent-elles pas aux attributs XSD?
Je crée la classe C# avec la commande suivante dans une invite de commande Visual Studio:
xsd FS_OTA_VehLocDetailsNotifRQ.xsd /classes /nologo
Dans OTA_VehLocDetailsNotifRQ.POS[0].RequestorID
j'attendre à trouver une propriété ID
. Pourtant, la propriété générée par l'outil XSD.exe est nommée ID_Context
.
Pouvez-vous expliquer pourquoi cela fait, et si je suis capable de le forcer à générer le nom de propriété correct (ID
)?
S'il vous plaît ne pas suggérer que je modifie le fichier généré car ce n'est pas une approche maintenable.
plus modifier après avoir accepté la réponse:
En regardant le XSD de plus près et en remplaçant les références avec leurs définitions de groupes d'attributs, l'attribut ID peut être vu dans son groupe d'attributs:
<xs:attributeGroup name="UniqueID_Group">
<xs:attribute name="URL" type="xs:anyURI" />
<xs:attribute name="Type" type="OTA_CodeType" use="required" />
<xs:attribute name="Instance" type="StringLength1to32" />
<xs:attributeGroup name="ID_Group">
<xs:attribute name="ID" type="StringLength1to32" use="required" />
</xs:attributeGroup>
<xs:attribute name="ID_Context" type="StringLength1to32" use="optional" />
</xs:attributeGroup>
Je crois qu'il s'agit d'un bug dans l'outil XSD.
Wow, j'ai manqué cette étape, bravo, comme vous le dites, le saut de 'ID_Group' est le problème, quel dommage c'est l'attribut –