有没有办法避免或设置架构以显示更好的用户友好消息?
我正在解析字符串并使用reg ex来解释它们,但可能有更好的方法。
实施例。
"cvc-complex-type.2.4.b: The content of element 'node' is not complete. One of '{\"\":offer,\"\":links}' is expected."
相反,我想:
"The element 'node' is not complete. The child elements 'offer' and 'links' are expected."
同样,我通过创建一个验证它的额外层来解决问题。但是当我必须使用带有模式验证的XML工具时,加密消息就是显示的那些。
谢谢
答案 0 :(得分:3)
不是我知道的。您可能需要创建一些自定义代码来调整您的错误消息。一种方法可能是定义一组正则表达式,它们可以提取验证器错误消息的相关部分,然后将它们插回到您自己的错误消息中。想到这样的东西(没有优化,不处理一般情况等等,但我认为你会得到这个想法):
String uglyMessage = "cvc-complex-type.2.4.b: The content of element 'node' is not complete. One of '{\"\":offer,\"\":links}' is expected.";
String findRegex = "cvc-complex-type\\.2\\.4\\.b: The content of element '(\\w+)' is not complete\\. One of '\\{\"\":(\\w+),\"\":(\\w+)}' is expected\\.";
String replaceRegex = "The element '$1' is not complete. The child elements '$2' and '$3' are expected.";
String userFriendlyMessage = Pattern.compile(findRegex).matcher(uglyMessage).replaceAll(replaceRegex);
System.out.println(userFriendlyMessage);
// OUTPUT:
// The element 'node' is not complete. The child elements 'offer' and 'links' are expected.
我怀疑这些验证程序错误消息是特定于供应商的,因此如果您无法控制部署的应用程序中的XML验证程序,这可能对您不起作用。
答案 1 :(得分:1)
如果他发送给我们的XML错误,我们正在使用Schematron向用户显示友好的错误消息。我们当前的实现有点简单,特别是在以下几点:
然而,通过以下返工可以很容易地解决这个问题:
答案 2 :(得分:0)