在XML中验证不可打印的ascii字符的最佳方法

时间:2017-01-26 09:25:13

标签: java xml xsd

应用程序需要验证不可打印的ascii字符的不同输入XML消息。我们目前知道两种方法可以做到这一点。

  1. 更改XSD以包含限制。

  2. 使用正则表达式

  3. 验证java应用程序中的输入xml字符串

    哪种方法在性能方面更好,因为我们的应用程序必须在几秒钟内返回响应?还有其他选择吗?

2 个答案:

答案 0 :(得分:0)

这主要是一个意见问题,但如果你有一个XSD似乎是包含验证的自然地方。您可能需要考虑的唯一事情是,通过XSD,您将失败或通过,而使用临时Java验证,您可以忽略不可打印,或替换或采取操作而不会完全失败输入。

答案 1 :(得分:0)

在XML 1.0文档中,(a)ASCII,(b)不可打印和(c)允许的唯一字符是CR,NL和TAB。我发现很难理解为什么排除这三个字符特别重要,但是如果你已经有了XSD架构,那么在那里添加限制是有意义的。

通常的做法是不要使这三个字符无效,而是将它们视为等同于空格字符,您可以使用具有空白方面值的数据类型" normalize"或"崩溃"。