XML/SOAP中制表符(TAB)是否为有效字符?元素间空白允许使用吗?
关于XML/SOAP中制表符的合法性问题
嘿,这个问题问到点子上了,我来给你详细拆解:
1. 制表符(\t=0x09)是否属于XML/SOAP的有效字符?
绝对是!根据XML核心规范,制表符(Unicode编码U+0009)属于合法的空白字符范畴,和普通空格(U+0020)、换行(U+000A)、回车(U+000D)一样,是XML文档允许使用的字符。而SOAP是完全基于XML的协议,自然也遵循这个规则——制表符在SOAP消息里完全是有效字符,不会被判定为非法。
2. 元素间的空白位置是否允许使用制表符?
当然允许!你给出的示例代码:
<a> <b>test</b> </a>
(注:上面的空白为制表符)
是完全符合XML/SOAP规范的,解析器可以正常识别处理。不过这里要提个小细节:XML默认会对元素内容中的连续空白(包括制表符、空格、换行)做规范化处理——也就是把多个连续空白合并成一个空格。如果你的业务场景需要保留制表符的原始格式(比如要保留缩进结构),只需要给对应的元素加上xml:space="preserve"属性就行,比如:
<a xml:space="preserve"> <b>test</b> </a>
这样解析器就会原封不动保留所有空白字符,包括制表符。
内容的提问来源于stack exchange,提问作者chris01
相关产品推荐
相关产品推荐

