使用Ace通过XSD编辑XML

可以使用Ace编辑器根据指定的XSD编辑 XML吗?

如果没有,有没有其他选择?

解决方法

事实上,使用Ace验证XSD是可能的,它不受Ace附带的库所支持,因此您需要使用其他东西来根据XSD文件验证XML.然后,您只需将收到的错误输出转换为注释,并使用以下命令禁用认语法验证器:

editor.getSession().setUseWorker(false);

例如,我使用的是AgeGWT,它是一个允许在Java和GWT中使用Ace的包装器.请注意,github版本具有非常过时的库(3 – 4年……可能它们将来会更新,但看起来不像页面被主动维护),所以我只需使用npm下载并设置Ace,以便我可以复制并使用Ace的最新库(具有额外功能).

然后,我使用了一个Java XML验证器来返回所有错误,类似于找到的错误here.

这将检索SAXParseException的List / Array.此类型允许查询错误文本以及行号和列号 – 这是设置注释所需的最少信息(我将它们全部设置为具有错误注释类型).

注释本身是在Ace Callback上设置的,每次编辑器中的文本发生更改时都会触发:

06001

然后我使用验证器先前收集的信息在Ace编辑器中设置注释.

您不必使用Java或指定的库来使其工作.在JavaScript中以类似的方式执行此操作应该没有问题,也许使用sax js …事实上,它可能会更容易.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念