【发布时间】:2009-11-25 16:26:36
【问题描述】:
我正在从 OTA(开放旅游联盟)XSD 文件生成 C# 类。你可以download the XSD file from here。
我在 Visual Studio 命令提示符中使用以下命令创建 C# 类:
xsd FS_OTA_VehLocDetailsNotifRQ.xsd /classes /nologo
在OTA_VehLocDetailsNotifRQ.POS[0].RequestorID 内,我希望找到ID 属性。然而,XSD.exe 工具生成的属性名为ID_Context。
您能解释一下它为什么这样做,以及我是否能够强制它生成正确的 (ID) 属性名称?
请不要建议我编辑生成的文件,因为那不是可维护的方法。
接受答案后进一步编辑:
更仔细地查看 XSD 并将引用替换为其属性组定义,可以在其属性组中看到 ID 属性:
<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>
我认为这是 XSD 工具中的一个错误。
【问题讨论】: