XSD验证失败时的自定义错误消息

use*_*524 6 xml xsd

我用xsd验证xml文件,我想向用户返回有意义的消息.有没有办法在xsd中构建自定义消息.

C. *_*een 5

答案“否”和“是”(或“是,但是...”)在这里都适用,具体取决于您要的内容。不幸的是,对于所有实际目的,答案都是“否”。

XSD规范没有指定或约束API或用户界面,因此,在XSD架构文档中,没有标准的方法可以指定在违反特定约束时向用户提供什么消息。模式处理器允许您某种方式控制错误消息是完全合法的,并且部分包含xs:appinfo元素可以使类似的事情变得可行。但是我不知道实际上有提供这种功能的任何模式验证器(我很高兴得知有任何功能)。

一种可能的解决方法:XSD会建议验证者使用特定的错误代码,因此,如果您的验证者提供了用于验证结果的API,则您可能能够识别出所引发的错误,并使用错误代码和位置信息为您生成合适的错误消息。用户。如果您的处理器产生可以解析的书面输出,则可能同样如此。

要获得漂亮的,用户可指定的错误消息(可根据发生的问题进行自定义)的最简单方法是使用Schematron,它确实规定处理器使用模式作者指定的错误消息。(我希望在某些地方可以处理国际化问题,但我不知道任何细节。)