加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml转义符规则

发布时间:2020-12-16 02:10:23 所属栏目:百科 来源:网络整理
导读:最近在写一个xml解析器,我百度xml转义符被坑过,为了防止更多的人被坑,所以写下这篇博客。 强制要求转义的符号只有两个 与,转义符规则如下: 1、转义符以 开始 2、转义符以 ; 结束 3、大小写敏感 4、单独的字符,不管在什么位置,都是错误。 不需要转义,

最近在写一个xml解析器,我百度xml转义符被坑过,为了防止更多的人被坑,所以写下这篇博客。


强制要求转义的符号只有两个 &与<,转义符规则如下:

1、转义符以 & 开始

2、转义符以 ; 结束

3、大小写敏感

4、单独的&字符,不管在什么位置,都是错误。


>不需要转义,不管在哪都一样,不要以为xml提供了它的转义符它就必须要转义。


在标签内,例如属性值引号与双引号不是必须转义:

1、使用单引号来描述属性值中的双引号不是必须转义 例如'123"45'

2、使用双引号来描述属性值中的单引号不是必须转义 例如"abc'de"


在标签外的双引号与单引号,不是必须转义:例如<text>"111" '222'</text>


此外,xml支持直接索引utf16字符值,例如:&#65;&#x0041;规则如下:

1、以 &# 开始

2、以 ; 结束

3、&#x表示16进制

4、&#后面直接是数字表示10进制

5、大小写不敏感

6、数字前可以有n个0


utf16存在4字节的字符,在xml中,4字节的字符范围 0x10000 ~ 0x10FFFF,在msdn可以查到计算方式如下:

val = (高代理字符值 - 0xD800) * 0x400 + (低代理字符值 - 0xDC00) + 0x10000

高代理字符范围:0xD800 ~ 0xDBFF,在这个范围内的索引都是不允许的。

低代理字符范围:0xDC00 ~ 0xDFFF,在这个范围内的索引都是不允许的。

0xFFFF是不允许的。

小于0x20的字符中,仅允许制表符('t') 换行符('n') 回车('r') 其他的都不允许。

超过0x10FFFF的都是溢出,不允许。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读