C# 从xsd动态创建winform

C# 从xsd动态创建winform,c#,xsd,dynamic,C#,Xsd,Dynamic,我正在编写一个XSD解析器,它动态地构建简单的WinForm(基于输入XSD方案) 我只想使用xsd定义的结构,不想添加xsd标准元素以外的任何内容。 问题: 我希望xsd:element定义一个控件。如何区分哪个xsd:element定义了哪个控件类型(尤其是粗体的)?(基本的有文本框、文本区域(多行文本框)、组合框、射线组(单选按钮组)、日期时间选择器、复选框、面板、按钮) 标签呢?也许在包含数据的其他控件(文本框等)的xsd:element中定义标签更好吗?怎么做 我需要这个解析器,使客户

我正在编写一个XSD解析器,它动态地构建简单的WinForm(基于输入XSD方案)
我只想使用xsd定义的结构,不想添加xsd标准元素以外的任何内容。

问题:
  • 我希望xsd:element定义一个控件。如何区分哪个xsd:element定义了哪个控件类型(尤其是粗体的)?(基本的有文本框、文本区域(多行文本框)、组合框射线组(单选按钮组)、日期时间选择器、复选框、面板按钮
  • 标签呢?也许在包含数据的其他控件(文本框等)的xsd:element中定义标签更好吗?怎么做

  • 我需要这个解析器,使客户端能够通过第三方工具生成一个模式,然后将XSD填充到我的应用程序中并打开WinForm(无需编程),然后在进一步的步骤中生成带有数据和一些输出的xml。

    我想您可以通过查看。具体来说,他们的技术可能与您试图实现的目标非常相似


    我认为这也突出了您的总体概念中的一个问题——XSD不包含关于如何捕获XML将表示的数据的所有必要信息。您可以假设特定类型的默认编辑器,等等,但很快您就会遇到这样的情况:有人希望以不同的方式工作,而XSD在默认情况下不支持它。我敢肯定,您最终会得到一些非标准的扩展(没有现成的工具支持),或者您自己的XML语言来定义屏幕。尽管如此,我还是建议您看看XMLSpy,他们的一些工具非常优秀,应该会给您一些想法。

    XMLSpy作为客户端的工具看起来不错,但每个许可证的最低价格是399欧元(不太好)。有这样的免费药片吗?或者是基于xsd的其他想法?我已经看到这是一个免费的替代方案,尽管乍一看它只有XMLSpy功能集的一小部分。我不再深入研究XSD,但在我研究XSD时(大约2006年),我从来没有发现任何真正可比的东西。我认为他们的网格编辑和真实视图是比较独特的;我只是想我会向你指出这个方向,以防你想从它们的实现中借鉴一些想法。