Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有自定义错误msgs的复杂XML验证_Xml_Xpath_Schematron - Fatal编程技术网

带有自定义错误msgs的复杂XML验证

带有自定义错误msgs的复杂XML验证,xml,xpath,schematron,Xml,Xpath,Schematron,我一直在寻找一种技术,使我能够: 验证复杂的(大型结构、许多可选的元素子/序列、固定顺序等)XML 为每个检查/检查块/规则定义自定义错误消息(XSD处理器类错误对我没有用处) 如有可能,以人类可读的方式有效地定义验证模式/规则 换句话说,类似于Schematron的东西(允许自定义错误MSG、可读性等),但对于复杂的结构检查仍然很优雅(XPath对于顺序检查之类的事情效率很低) 有什么合适的技术可以满足我所描述的需求吗?我可以使用Schematron和(过时的)工具,如XSD2SCH,尽管使用

我一直在寻找一种技术,使我能够:

  • 验证复杂的(大型结构、许多可选的元素子/序列、固定顺序等)XML
  • 为每个检查/检查块/规则定义自定义错误消息(XSD处理器类错误对我没有用处)
  • 如有可能,以人类可读的方式有效地定义验证模式/规则 换句话说,类似于Schematron的东西(允许自定义错误MSG、可读性等),但对于复杂的结构检查仍然很优雅(XPath对于顺序检查之类的事情效率很低)

    有什么合适的技术可以满足我所描述的需求吗?我可以使用Schematron和(过时的)工具,如XSD2SCH,尽管使用这些工具的结果看起来真的很惊人


    谢谢

    您可以尝试混合使用XSD和Schematron。利用XSD的排序、标记计数、tage数据类型功能。然后,对于其他复杂的验证,您可以使用Schematron

    XSD给出的错误消息对人类来说有点困难,但它非常强大

    您可以尝试查看是否有理解XSD 1.1语义的库。在尝试时,我没有找到支持。因此,我们尝试将XSD和Schematron结合起来