自动从 XML 模式创建 GUI

Posted

技术标签:

【中文标题】自动从 XML 模式创建 GUI【英文标题】:Create a GUI from a XML schema automatically 【发布时间】:2010-11-02 06:35:43 【问题描述】:

我必须编写一个桌面应用程序来编辑存储在 XML 文件中的数据。格式由 XML 模式文件 (.xsd) 定义。格式相当复杂。

是否有可以自动生成基本 GUI 的工具?尚未决定使用哪种语言。我有使用 wxWidgets 和 C# (.NET 1) 使用 Windows 窗体的 Python 和 C++ 的经验。

【问题讨论】:

你可能想看看 WPF/Xaml。 【参考方案1】:

选择 PyQt

http://www.riverbankcomputing.co.uk/software/pyqt/download

下载Qt Developers tool自动生成gui

www.qtsoftware.com/products/developer-tools

对于架构验证,请尝试 lxml

http://lxml.de/validation.html

【讨论】:

Qt 开发人员工具的链接似乎已损坏。您现在可以使用 Qt 设计器吗?【参考方案2】:

值得看看Jaxfront,它能够使用 XSD 并生成表单(包括 HTML)。您还可以提供一个实例 XML 文档以将其加载到 GUI 中,也可以保存实例 XML 文档。

我用我们相当复杂的 XSD 之一进行了尝试,效果很好。

遗憾的是它是用 Java 编写的 - 我仍在寻找可以生成 .NET Web 表单或 XAML/WPF 的东西!事实上,即使是 XFORMS 也不错。

【讨论】:

【参考方案3】:

一种解决方案是编写将 XML 文件转换为 XAML 文件的 XSL 转换。

【讨论】:

【参考方案4】:

如果 GUI 很简单,并且您不关心对话框中组件(小部件)的几何形状,Qt 将是一个不错的选择。实际上,我正在为我的项目执行类似的任务,我的目标是使用 XML 文件验证表单数据。

使用 Qt,可以在运行时通过使用其对象名称来访问对话框上的任何小部件。这样就可以将验证应用于对话框内容。

创建任何对话框将更加容易,因为您将拥有小部件类型和某些信息并使用布局,可以获得令人着迷的结果。

【讨论】:

【参考方案5】:

我不确定我是否可以完全帮助你@Adrian,但我一直在研究与你正在讨论的内容非常接近的东西......

使用 Linq to XML 之类的东西可以帮助您验证输入的数据,因为已经有一些方法可以为您验证数据。

我记得,有一些工具可以让您动态创建应用程序...link

希望这会有所帮助。

【讨论】:

链接失效 Jav - 抱歉...这是 10 年前微软的链接...不知道如何获取更新信息。你能帮忙吗? 嗨,理查德,很遗憾,我无法提供帮助,因为我不知道您指的是什么工具。我想那是丢失了信息..【参考方案6】:

有一个实验工具,它可以自动创建一个桌面 UI 来处理存储在 XML 中的数据。它被称为KXForms。它是一套以各种方式处理 XML 数据的工具的一部分,例如从 XML 模式创建 C++ 代码以在 C++ 中本地表示数据并封装解析和编写。

这可能不是您正在寻找的生产就绪解决方案,但它是一个开始和灵感来源。它是开源的,因此当然欢迎贡献。

【讨论】:

【参考方案7】:

"XAmple XML Editor 项目引入了一个基于 java Swing 的 XML 编辑器,它分析给定的模式,然后生成特定于文档的图形用户界面。与其他 XML 编辑器不同,XAmple XML 编辑器 GUI 不仅公开了 XML 的树表示文档,而是 XML 文档和相应 XML Schema 的逻辑组合。XML 编辑器的用户界面具有高度的逻辑性和直观的可理解性。为了能够准备非常复杂的有效 XML 文档,用户不需要熟悉XML 和 XML Schema 语言,并具备有关文档结构要求的任何先验知识。”

我已经尝试过了,甚至我的非技术老板也喜欢它。您可以按原样使用它,也可以将它用作一个库,以此作为您自己的基于 Java 的 UI 的基础。

【讨论】:

你知道什么(如果有的话)许可证适用于这个项目吗? 不,您必须点击该链接并可能与作者联系。

以上是关于自动从 XML 模式创建 GUI的主要内容,如果未能解决你的问题,请参考以下文章

使用 XML 模式类型进行 Qt GUI 输入验证

从 XElement 创建带有名称空间和模式的 XML

从 sql 脚本创建 xml 文件

Jmeter 命令行(非GUI模式)执行详解

从 graphQL 模式自动创建 ORM 模式和查询

可以查询 XML 模式集合的创建脚本吗?