【问题标题】:Automatic editor of XML (based on XSD scheme) [closed]XML 的自动编辑器(基于 XSD 方案)[关闭]
【发布时间】:2010-08-30 10:33:10
【问题描述】:

是否有任何方法可以基于 XSD 方案生成 XML 文件的编辑器? (它应该是基于 Java 或 Python 网络的编辑器)。

【问题讨论】:

  • 在这种情况下,“编辑”是什么意思?您是指所见即所得的编辑器,还是一种以编程方式编辑 DOM 树的方法或其他东西?
  • 我认为您的意思是“模式”而不是“计划”。它们是不同的术语,使用错误的术语会使人们不得不更加努力地理解您。

标签: java python xml xsd


【解决方案1】:

ExxEditor 是一个基于 XML Schema 的 XML 编辑器。这是一个 C++ 项目,它根本不是基于 Web 的。

我从未使用过它,但我认为 XML Schema 文件可以被注释以“自定义”UI。

【讨论】:

    【解决方案2】:

    使用Jaxe,您可以从 XSD 文件自动创建配置文件,并手动对其进行编辑以改进它。这为您提供了该语言的专用 XML 编辑器。然后,您可以将此配置文件与 WebJaxe 一起使用,以在 Web 上编辑您的文件。但是,如果您一直更改 XSD,则不适合(您没有指定)...

    Jaxe 是一个 Java 应用程序,而 WebJaxe 将 Jaxe 用作编辑器的 Java 小程序。

    【讨论】:

      【解决方案3】:

      有趣的是,我正在为自己担心类似的事情。我正在为 XMLs Civilization 4(策略游戏)构建一个编辑器(不是真正的 WYSIWYG,但它抽象了 DOM)用于存储所有内容。我考虑了很长时间,并构建了两个原型(在 Python 中),其中一个看起来很有希望,所以我将来会扩展它。请注意,Civ 4 XML 不仅仅是一个符合流行语的数据库(只是您最好在 JSON/YAML 等中存储的那种数据,主要是键值对和一些键值对子列表 - 没有递归数据结构)。

      我的第一种方法是基于这样一个事实,即主要是键值对,它不适合利用 XML 的全部功能(递归数据结构等)的文档。我的新设计更加复杂 - 到目前为止,我只以这种方式构建了一个(仍然有问题的)验证器工厂,但我期待扩展它,例如用于模式敏感的编辑小部件。基本思想是遍历 XSD 的 DOM,识别预期内容(其他节点列表、特定格式的文本等),依次(递归)为这些构建验证器,然后构建应用的高阶验证器所有先前生成的验证器都以正确的顺序排列。可能需要对函数式编程进行一些接触才能对这个想法感到满意。对于编辑部分(顺便说一句,我使用 PyQt),我计划为包含文本的标签生成一个 Label-LineEdit 对,为包含其他元素的标签生成一个标题(标签),可能缩进子元素和/或提供折叠。同样,递归是构建这些的关键。

      Qt 允许我们将验证器附加到文本输入小部件,因此一旦我们可以为例如生成验证器,这部分就很容易了。一个包含“int”的标签。对于包含其他标签的标签,类似于上面的事情是可能的:为每个子元素生成一个验证器并将它们链接起来。唯一需要改变的部分是我们如何获取内容。忽略 cmets、属性、处理指令等,这仍然应该相对简单 - 对于“标签:内容”对,生成“内容”并将其提供给您的 DOM 解析器;对于具有子元素的元素,生成子元素的表示并将其放在“...”之间。属性也可以实现为键值对,只是带有一个额外的标志。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-07
        • 2023-03-21
        相关资源
        最近更新 更多