可以使用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 举报,一经查实,本站将立刻删除。