在XML模式中处理指令验证
我认为合理简单,我找不到任何确定的东西(除了缺乏确定性的事实)
有没有办法合并到模式中,处理指令节点在文档中的某个位置的要求,也可能验证处理指令目标? 例如: <node> <?my-instruction data ?> </node> 将验证,而: <node></node> 不会? 而且,更好的是: <node> <?my-other-instruction data ?> </node> 也不会(因为我可以提供my-instruction的必需目标) 如上所述,我在这个主题上找不到任何确定的(或根本没有),所以我不得不假设这是不受支持的.其他人已经提到PI用于“带外”数据和处理指令,因此在验证中不需要包含它们是合理的.虽然会很好. 解决方法
XSD完全忽略实例文档中的处理指令.
我不确定为什么你很难找到这个.搜索“处理指令”的规范给出了一个命中,即3.1.4中的句子“上述定义意味着注释和处理指令,即使在文本中,也会被忽略所有·验证·目的.” 事实上,在XSD 1.1中,我们对于断言是否可以看到注释和处理指令有一些争论.最后的决定是默认情况下它们不可见,但处理器可以提供一个开关来使它们可见.在Saxon 9.4中,您可以在命令行上使用–assertionsCanSeeComments:on来设置此开关.使用此开关集,您可以在模式中编写断言来测试是否存在处理指令 – 但是您不能将它们合并到复杂类型的语法中,这使得限制它们必须出现的确切位置变得棘手. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |