【问题标题】:GUI for generating XML用于生成 XML 的 GUI
【发布时间】:2011-02-12 20:04:34
【问题描述】:

有人知道生成 XML 的 GUI 吗?这意味着用户将不会看到支持 XML 的 IDE,以便他键入 XML 代码。这对使用该系统的非技术人员很有帮助。

我知道这听起来很简单,因为有许多库可以帮助生成 XML。这里的问题是,该模式确实非常灵活,而不是像在图书馆中用它们的属性来表示书籍那样简单。

想象一下 HTML,我们可以在其中创建字体标签在正文、表格、div 中,甚至嵌套在其自身中。该解决方案是一个所见即所得的应用程序,它允许用户生成 html 代码 (XML)。然而,这对于应用在网页中的 XML 是有好处的,因为它们涉及视觉方面和设计。我的 XML 应用程序将专注于表示一些概念和计算定义,很像类似 sql 的语法,但不止于此。

我实际上是在使用该方法或以前完成或尝试过的工作,尽管为此提供一个库/工作框架会更好。顺便说一句,我在这个项目中使用 Java。目前,我只是在考虑呈现元素标签,用户可以在其中拖放它们并将它们相互嵌套。或许,可以通过表单帮助他们输入 XML 属性的值。我仍然希望社区是否有更好的想法。

谢谢。

【问题讨论】:

  • 在我看来,任何旨在“生成 XML 来表示某些数据”的 GUI 都注定会失败。相反,您将需要设计一个 GUI,该 GUI 旨在生成有关您处理的实际业务对象的信息。稍后可能将其保存为 XML 的事实是技术细节,不应过多影响 UI。
  • 您好,感谢 cmets。我认为这对于大多数应用程序来说都是正确的。但是,我的 XML 应用程序需要灵活性,因为它可以定义一些计算。我意识到它可能看起来很复杂,因为我的应用程序就像使用 XML 作为表示的“编程语言”一样工作。

标签: java xml user-interface generator


【解决方案1】:

我认为您需要将最终表示 (XML) 与呈现给用户的抽象分开。你的信息是以树的形式呈现给用户的吗?如果没有,请做对用户方便的事情并自己进行 XML 转换。

有许多基于树的编辑器使用“有意义的图块和图标”而不是 XML。比如看看Eclipse的插件编辑器是怎么做现有点的扩展的。您将获得一个树视图并可以添加属性(通常在单独的组框中)。但是您可以编写一个更智能的编辑器,将所有内容都包含在树中。

另一方面,尽管 XML 表示具有灵活性,但有时确实应该隐藏它。一个很好的例子是 Eclipse 插件的 plugin.xml。看看那个文件的编辑器看起来不像 XML。其结构符合用户需求,由后台代码生成 XML。

【讨论】:

  • 感谢您引用应用程序。这是 Eclipse PDE (eclipse.org/pde) 吗?
  • 是的。 PDE 是使用 XML(和其他格式)的编辑器的一个很好的例子。你应该也能找到 plugin.xml 的语法,如果你有耐心看看他们是怎么做的,PDE 的源代码是可用的。
【解决方案2】:

几个月前,我一直在寻找这个确切的东西。我找到的唯一一个是http://www.jaxfront.org/pages/。它是基于 Java 的。

请注意,我最终使用了 Actipro Software 的 SyntaxEditor for .NET WinForms,虽然它没有给我 GUI,但在编辑 XML 时为应用程序提供了良好的类似 IntelliSense 的提示(源自底层 XSD)。

【讨论】:

    【解决方案3】:

    W3C 对您的问题的回答是 XForms。不幸的是,浏览器并不直接支持 XForms,尽管有一个 Mozilla 插件(显示和编辑甚至本地文件,但仅在 Mozilla 中)。有许多 XForms 解决方案可用,一个有趣且免费的解决方案是 XSLTForms (http://sourceforge.net/projects/xsltforms/),它将 XForms 转换为 HTML 表单(适用于所有主流浏览器,但由于 Javascript 的限制,只能显示本地文件,不能编辑)。 还可以看看 Altova Authentic。

    【讨论】:

      【解决方案4】:

      我知道非技术人员有时很难熟悉像 eclipse 这样的工具,但它带有非常好用且易于使用的 XML 编辑器。支持自动完成验证验证。我不确定是否有一个预配置的 Eclipse 衍生工具,它专注于 xml 编辑,但你可以很容易地配置这样的东西。

      【讨论】:

      • 我认为至少对于程序开发人员来说,这将是最后也是最方便的解决方案,以使用户尽可能轻松地使用 XML 文件。
      猜你喜欢
      • 2010-11-04
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 2012-05-07
      相关资源
      最近更新 更多