2009-11-25 76 views
2

我从OTA(开放式旅游联盟)XSD文件生成C#类。你可以download the XSD file from here为什么有些生成的C#类属性不匹配XSD属性?

我在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工具中的一个错误。

回答

2

让我们来看看....

  • RequestorID包含类型UniqueID_Type
  • UniqueID_Type复杂的内容包含了一组属性称为UniqueID_Group
  • UniqueID_Group引用是一个属性组,其中包含以下属性:
    • URL
    • Type
    • Instance
    • 一个参考到ID_Group
    • ID_Context

我想C#代码 “ID_Context”,是因为该属性组中的 “ID_COntext” 属性的生成。 ..我没有看到任何问题。

但我不同意 - 那ID_Group应包括“ID”属性,但它似乎已XSD.EXE是下降嵌套参考ID_Group - 无论出于何种原因......它似乎是别人无意中发现一个问题在其他情况下也是如此。貌似XSD.EXE无法完成这一任务:-(

也许还检查了这个讨论:

http://groups.google.com/group/OTA-Impl-Forum/browse_thread/thread/fa476cfb6e1fa7f7

更新:我也是从WCF(.NET 3试过svcutil.exe。0及以上) - 没有运气:-(任何

Error: Type 'DateOrTimeOrDateTimeType' in namespace ' http://www.opentravel.org/OTA/2003/05 ' cannot be imported. Simple types with ** <union> content are not supported. Either change the schema so that the types can map to data contract types or use ImportXmlTyp e or use a different serializer.

+0

哇,我错过了这一步;做得很好,正如你所说,ID_Group的跳过是问题,这太可惜了,它的属性是 – 2009-11-25 16:51:22

1

有点晚了,但我想我也许找到了解决你的问题(而现在我的问题太):

http://www.opentravelcommunityforum.com/forum/viewtopic.php?f=8&t=19

我还没有尝试,但我即将

+0

我不认为这解决了这个问题,但如果它确实请在这里分享修复。谢谢小号! – 2010-04-26 06:30:08

+0

是的,它为我工作。我有同样的问题,通过嵌套我可以修复它! – Luiggi 2010-05-13 01:26:01

相关问题