我认为合理简单,我找不到任何确定的东西(除了缺乏确定性的事实) 有没有办法合并到模式中,处理指令节点在文档中的某个位置的要求,也可能验证处理指令目标? 例如: node ?my-instruc
有没有办法合并到模式中,处理指令节点在文档中的某个位置的要求,也可能验证处理指令目标?
例如:
<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来设置此开关.使用此开关集,您可以在模式中编写断言来测试是否存在处理指令 – 但是您不能将它们合并到复杂类型的语法中,这使得限制它们必须出现的确切位置变得棘手.