【问题标题】:Nightmare trying to generate code from XSDNightmare 试图从 XSD 生成代码
【发布时间】:2009-07-31 17:11:06
【问题描述】:

光环

我敢肯定这个问题在过去已经被问过很多次了,但我一直在做噩梦。

我有一组包含大量复杂类型的 XSD 模式。其中之一是:

<complexType name="commandType">
  <sequence>
    <choice>
      <element name="check" type="epp:readWriteType"/>
    </choice>
  </sequence>
</complexType>

但是,“check”实际上应该是一个“checkType”......但它不可能,因为这样做会在包含文件中创建某种疯狂的循环,所以设计工具就是不要让你来做这件事。所以,readWriteType 大概是作为 checkType 派生自的类(我不知道,我可能在撒谎)。

然而,readWriteType 看起来像这样:

<complexType name="readWriteType">
  <sequence>
    <any namespace="##other"/>
  </sequence>
</complexType>

所以代码生成工具只是不知道如何处理它,或者 checkType 与 readWriteType 的关系。真是令人沮丧。

不管怎样,只是希望这里的人可能有一个脑电波!

哦,XSD.exe 不适用于这些类,所以我正在尝试使用一些第三方工具,比如在 complexType 之前需要元素。

谢谢,P

【问题讨论】:

    标签: c# asp.net xsd xsd.exe


    【解决方案1】:

    我不知道您如何解决这个问题 - 只要您使用 &lt;any&gt; 元素类型,生成的代码将总是相当通用并使用大量 object 元素。

    为什么不能将元素 check 设为 checkType 类型?这确实是理顺事情的唯一方法——如果你有明确定义的类型,那么代码生成可以做一些事情。

    马克

    【讨论】:

    • 是的,我希望能够使用“checkType”作为检查类型,但它不验证。 file1.xsd 包含 commandType complexType file2.xsd 包含 checkType complexType,并在顶部包含 file1.xsd 因此,我不能在 file1.xsd 的顶部包含 file2.xsd,这意味着 checkType 不存在file1.xsd 中的可用类型
    猜你喜欢
    • 1970-01-01
    • 2010-09-22
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 2012-03-16
    • 2010-09-28
    • 2011-03-19
    相关资源
    最近更新 更多