XML 1.0中的转义控制字符

时间:2018-02-19 09:02:56

标签: xml escaping fix-protocol

我理解why control characters are illegal in XML 1.0,但我仍然需要以某种方式将它们存储在XML有效负载中,我找不到任何关于转义它们的建议。我无法升级到XML 1.1。

我该如何逃避,例如SOH character\u0001 - FIX消息的标准分隔符)?

以下不起作用:

<data>&#x01;</data>

2 个答案:

答案 0 :(得分:2)

一种方法是使用处理说明:<?hex 01?>。但这只适用于元素内容,而不适用于属性。当然,接收应用程序需要理解处理指令。

您还可以使用元素:<hex value="01"/>但元素在XSD架构或DTD中可见,而处理指令则隐藏。

另一种方法是,如果一个有效负载可以包含这样的字符,那么将整个有效负载放在Base64编码中。

答案 1 :(得分:0)

在记录/打印FIX消息时,将SOH替换为“|”等其他字符是很常见的。你能在这里做同样的事吗?