XML的自动编辑器(基于XSD方案)

有没有基于XSD方案生成XML文件编辑器的方法? (它应该是基于Java或Python的Web编辑器)。

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

Jaxe是一个Java应用程序,WebJaxe使用Jaxe作为编辑器的Java applet。

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

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

有趣的是,我对自己有类似的东西。 我正在构建一个编辑器(不是真正的WYSIWYG,但它抽象了DOM),因为XMLs Civilization 4(策略游戏)用来存储所有东西。 我考虑了很长一段时间并构建了两个原型(在Python中),其中一个看起来很有前景,所以我将在未来扩展它。 请注意,文明4 XML仅仅是一个符合流行语的数据库(只是您最好存储在JSON / YAML等中的数据类型,大多数是键值对,带有一些键值对的子列表 – 没有递归数据结构)。

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

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