【问题标题】:How to include the xsd:documentation in the C# class generated with XSD.exe?如何在使用 XSD.exe 生成的 C# 类中包含 xsd:documentation?
【发布时间】:2011-01-13 18:28:12
【问题描述】:

我正在使用xsd.exe 从一组 xsd 文件中生成一个 C# 类。 xsd 文件使用<xsd:documentation> 标记来包含有用的描述。示例:

<xsd:complexType name="AddressType">
    <xsd:annotation>
        <xsd:documentation>A formatted or free form address and its intended use.</xsd:documentation>
    </xsd:annotation>

不幸的是,所有这些都在生成的 C# 类中丢失了。有趣的是,每个类都附有一个空的 remarks 文档标签。

/// <remarks/>

如何在生成的 C# 类中包含此文档(在标签中或文档标签中)?

【问题讨论】:

  • 这将是一个有用的功能,让这个 XSD.exe 根据 XSD / 生成对象摘要

标签: c# .net documentation xsd xml-documentation


【解决方案1】:

xsd.exe 基于 Codedom。

您可以反汇编 xsd.exe,并在其中添加功能并重新编译。 代码相当简单。

我已对其进行了修改,以便在生成代码时跳过 xsd 中的一些命名空间。[否则,如果我在其他 2 个 xsd 中包含一个 common.xsd,则该类将生成两次。]

当然,我可以访问源代码本身 [我是 Microsoft 的一名开发人员],但使用反汇编代码的过程也应该很简单。

【讨论】:

  • 为什么微软不分享这段代码?其他程序员将免费修复 xsd.exe 代码并对其进行改进。
【解决方案2】:

抱歉,没有办法做到这一点。

【讨论】:

  • 无法使用 xsd.exe 或无法使用任何工具?
  • “任何足够先进的技术都与魔法无异”。我相信你可以编写一个工具来做到这一点。
  • 除了 XSD.exe 之外,还有其他工具可以将 XSD 转换为 C# 魔术吗?我看到了对 XSDObjectGen 的引用,但我能找到的唯一下载是从 2006 年开始的。它仍然有效吗? +1 供克拉克参考。
  • Visual Studio 中有一个内置技术。请参阅msdn.microsoft.com/en-us/library/bb126445.aspx,并忽略 DSL 工具的提及(暂时)。提示是您希望使用 .NET System.Xml.Schema API 使用一组 XSD,然后将该架构集用作 T4 模板的输入,该模板可以生成代码。
猜你喜欢
  • 2018-10-26
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
相关资源
最近更新 更多