可以使用Ace编辑器根据指定的XSD编辑 XML吗? 如果没有,有没有其他选择? 事实上,使用Ace验证XSD是可能的,它不受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 …事实上,它可能会更容易.