【发布时间】:2010-11-02 06:35:43
【问题描述】:
我必须编写一个桌面应用程序来编辑存储在 XML 文件中的数据。格式由 XML 模式文件 (.xsd) 定义。格式相当复杂。
是否有可以自动生成基本 GUI 的工具?尚未决定使用哪种语言。我有使用 wxWidgets 和 C# (.NET 1) 使用 Windows 窗体的 Python 和 C++ 的经验。
【问题讨论】:
-
你可能想看看 WPF/Xaml。
我必须编写一个桌面应用程序来编辑存储在 XML 文件中的数据。格式由 XML 模式文件 (.xsd) 定义。格式相当复杂。
是否有可以自动生成基本 GUI 的工具?尚未决定使用哪种语言。我有使用 wxWidgets 和 C# (.NET 1) 使用 Windows 窗体的 Python 和 C++ 的经验。
【问题讨论】:
选择 PyQt:
http://www.riverbankcomputing.co.uk/software/pyqt/download
下载Qt Developers tool自动生成gui
www.qtsoftware.com/products/developer-tools
对于架构验证,请尝试 lxml
【讨论】:
值得看看Jaxfront,它能够使用 XSD 并生成表单(包括 HTML)。您还可以提供一个实例 XML 文档以将其加载到 GUI 中,也可以保存实例 XML 文档。
我用我们相当复杂的 XSD 之一进行了尝试,效果很好。
遗憾的是它是用 Java 编写的 - 我仍在寻找可以生成 .NET Web 表单或 XAML/WPF 的东西!事实上,即使是 XFORMS 也不错。
【讨论】:
一种解决方案是编写将 XML 文件转换为 XAML 文件的 XSL 转换。
【讨论】:
如果 GUI 很简单,并且您不关心对话框中组件(小部件)的几何形状,Qt 将是一个不错的选择。实际上,我正在为我的项目执行类似的任务,我的目标是使用 XML 文件验证表单数据。
使用 Qt,可以在运行时通过使用其对象名称来访问对话框上的任何小部件。这样就可以将验证应用于对话框内容。
创建任何对话框将更加容易,因为您将拥有小部件类型和某些信息并使用布局,可以获得令人着迷的结果。
【讨论】:
我不确定我是否可以完全帮助你@Adrian,但我一直在研究与你正在讨论的内容非常接近的东西......
使用 Linq to XML 之类的东西可以帮助您验证输入的数据,因为已经有一些方法可以为您验证数据。
我记得,有一些工具可以让您动态创建应用程序...link
希望这会有所帮助。
【讨论】:
有一个实验工具,它可以自动创建一个桌面 UI 来处理存储在 XML 中的数据。它被称为KXForms。它是一套以各种方式处理 XML 数据的工具的一部分,例如从 XML 模式创建 C++ 代码以在 C++ 中本地表示数据并封装解析和编写。
这可能不是您正在寻找的生产就绪解决方案,但它是一个开始和灵感来源。它是开源的,因此当然欢迎贡献。
【讨论】:
"XAmple XML Editor 项目引入了一个基于 java Swing 的 XML 编辑器,它分析给定的模式,然后生成特定于文档的图形用户界面。与其他 XML 编辑器不同,XAmple XML 编辑器 GUI 不仅公开了 XML 的树表示文档,而是 XML 文档和相应 XML Schema 的逻辑组合。XML 编辑器的用户界面具有高度的逻辑性和直观的可理解性。为了能够准备非常复杂的有效 XML 文档,用户不需要熟悉XML 和 XML Schema 语言,并具备有关文档结构要求的任何先验知识。”
我已经尝试过了,甚至我的非技术老板也喜欢它。您可以按原样使用它,也可以将它用作一个库,以此作为您自己的基于 Java 的 UI 的基础。
【讨论】: