如何在用xsd.exe生成的C#类中包含xsd:documentation?
我正在使用从xsd文件集合生成一个C#类。xsd文件利用如何在用xsd.exe生成的C#类中包含xsd:documentation?,c#,.net,documentation,xsd,xml-documentation,C#,.net,Documentation,Xsd,Xml Documentation,我正在使用从xsd文件集合生成一个C#类。xsd文件利用标记包含有用的描述。例如: <xsd:complexType name="AddressType"> <xsd:annotation> <xsd:documentation>A formatted or free form address and its intended use.</xsd:documentation> </xsd:annotation&
标记包含有用的描述。例如:
<xsd:complexType name="AddressType">
<xsd:annotation>
<xsd:documentation>A formatted or free form address and its intended use.</xsd:documentation>
</xsd:annotation>
格式化或自由格式的地址及其预期用途。
不幸的是,所有这些都在生成的C#类中丢失了。有趣的是,每个类都附加了一个空的备注文档标记
/// <remarks/>
//
如何将此文档包括在生成的C#类中(在或文档标记中)?抱歉,没有办法这样做。xsd.exe基于Codedom 您可以反汇编xsd.exe,并在其中添加功能并重新编译。 代码相当简单 我对它进行了修改,以便在生成代码时跳过xsd中的一些名称空间。[否则,如果我在另外两个xsd中包含common.xsd,则该类将生成两次。]
诚然,我有权访问源代码本身(我是微软的一名开发人员),但这一过程也应该很简单,代码也可以分解 没有办法用xsd.exe或任何工具来实现它?“任何足够先进的技术都无法与魔法区分开来”。我相信你可以编写一个工具来实现这一点。除了XSD.exe之外,还有其他工具可以实现XSD到C#magic吗?我看到了一个对XSDObjectGen的引用,但我能找到的唯一下载是2006年的。它还能用吗+1供Clarke参考。Visual Studio中有一项内置技术。请参阅,忽略DSL工具的提及(目前)。提示是,您希望使用.NET System.Xml.Schema API使用一组XSD,然后将该模式集用作T4模板的输入,该模板可以生成代码。这是一个有用的功能,可以让此XSD.exe基于XSD/生成对象的摘要,为什么Microsoft不共享此代码?其他程序员将免费修复xsd.exe代码并对其进行改进。