微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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 …事实上,它可能会更容易.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。