是否有任何基于XSD方案生成XML文件编辑器的方法? (它应该是基于Java或Python的Web编辑器。)
答案 0 :(得分:2)
ExxEditor是一个基于XML Schema的XML编辑器。这是一个C ++项目,它根本不是基于Web的。
我从未使用它,但我认为XML Schema文件可以注释为“自定义”UI。
答案 1 :(得分:1)
我的第一种方法是基于以下事实:大多数键值对不适合利用XML的全部功能的文档(递归数据结构等)。我的新设计更复杂 - 到目前为止,我只是通过这种方式构建了一个(仍然有缺陷的)验证器工厂,但我期待扩展它,例如用于模式感知编辑小部件。基本思路是走XSD的DOM,识别预期的内容(其他节点的列表,特定格式的文本等),依次构建(递归)验证器,然后构建一个适用的高阶验证器以正确的顺序生成所有先前生成的验证器。它可以接受一些功能性编程,以适应这个想法。对于编辑部分(顺便说一下,我使用PyQt),我计划为包含文本的标签生成Label-LineEdit对,并为包含其他元素的标签生成标题(Label),可能缩进子元素和/或提供折叠。同样,递归是构建这些的关键。
Qt允许我们将验证器附加到文本输入小部件,因此一旦我们可以生成验证器,这部分就很容易了。包含“int”的标记。对于包含其他标记的标记,可以使用与上述类似的标记:为每个子元素生成验证器并将它们链接起来。需要改变的唯一部分是我们如何获得内容。忽略注释,属性,处理指令等,这仍然应该相对简单 - 对于“tag:content”对,生成“content”并将其提供给DOM解析器;对于具有子元素的元素,生成子元素的表示并将其放在“...”之间。属性也可以实现为键值对,只有额外的标志。
答案 2 :(得分:1)
使用Jaxe,您可以自动从XSD文件创建配置文件,并手动编辑以改进它。这为您提供了该语言的专用XML编辑器。然后,您可以将此配置文件与WebJaxe一起使用,以编辑Web上的文件。如果您一直更改XSD,则不适合(您没有指定)......
Jaxe是一个Java应用程序,WebJaxe使用Jaxe作为编辑器的Java applet。