使用 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 验证器,类似于此处找到的错误。

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

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

  editor.addOnChangeHandler(new AceEditorCallback() {
        @Override
        public void invokeAceCallback(JavaScriptObject obj) {
            // validate XSD...

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

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

显然不是,根据2013年谷歌小组的讨论

CodeMirror 是另一个具有 XML 提示功能的 JS 编辑器。请参阅演示。可以自定义架构。

有几种具有完整验证功能的桌面替代方案。请参阅 O'Reilly 选择 XML 编辑器。

相关内容

  • 没有找到相关文章

最新更新