博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML中CDATA和#PCDATA的区别
阅读量:5338 次
发布时间:2019-06-15

本文共 1377 字,大约阅读时间需要 4 分钟。

在XML文档中, 能看到“CDATA"的地方有三处: 
1)在DTD中,指定标签中某个属性的类型为字符型时,使用CDATA。因为XML解析器会去分析这段字符内容,因而里面如果需要使用>, <, &, ', "这5个特殊字符,应当用对应的替代字符来表示(必须以&开始,以;结束)。具体如下: 
< - &lt;  (less than) 
> - &gt;  (greater than) 
& - &amp;  (ampersand) 
' - &apos;  (apostrophe) 
" - &quot;  (straight double quotation mark) 
例如在DTD中声明: 
    <!ATTLIST author period CDATA> 它表示在author这个标签中,period属性应该是字符类型。 
2) 在XML中,指定某段内容不必被XML解析器解析时,使用<![CDATA[...]]>。也就是说中括号中的内容解析器不会去分析。所以其中可以包含>, <, &, ', "这5个特殊字符。经常把一段程序代码嵌入到<![DATA[...]]>中。 因为代码中可能包含大量的 >, <, &, "这样的特殊字符。 
例如在XML中声明: 
    <![CDATA[ 
        if(i<10){ 
          System.out.println("i<10"); 
        } 
    ]]> 
3) 在DTD中,指定某个标签中的内容是字符数据时,使用(#PCDATA)。由于它的内容也是需要解析器来解析的,所有仍然需要转换>, <, &, ', "这5个特殊字符。 
例如在DTD中声明: 
    <!ELEMENT name (#PCDATA)> 它表示在<name>和</name>标签之间可以插入字符或者子标签。
 
#PCDATA是要给XML解析的数据,如 > 要写成 &gt;才不会出错。 
CDATA区域表示里面是什么数据XML不会解析。
 
【XML中CDATA与#PCDATA与PACATA的区别】
 

1. CDATA: Character Data, PCDATA: Parsable

CDATA,是可以分析的字符序列,CDATA就是指字符串,而PCDATA可以是字符串、子元素、字符串和子元素。  

2. CDATA是属性声明中的类型,就是字符串,&、<、“”和‘’ 等都具有特殊含义被解析,例如:"解析为双引号;#PCDATA是元素声明中的类型,指的是混合类型,即可以包子元素也可包含字符串, &和<也是具有特殊含义被解析。 

ANY 并不局限于“#PCDATA”,只是说明该元素可以包含任何内容,一般来讲,解析器无法验证其有效性(一般也不会验证),#PCDATA源于“可解析的字符”,对于有特殊含于的< 会按照子元素开始进行解析。

#PCDATA    该内容模型说明元素中可以同时出现文本和元素.

ANY           ANY关键子表明DTD中声明的任何元素都可以使用作该元素的子元素
CDATA       属性值是字符数据

#PCDATA和ANY用于元素声明

CDATA用于属性声明

来源:https://www.cnblogs.com/efforts-will-be-lucky/p/7594341.html


转载于:https://www.cnblogs.com/yibeimingyue/p/9971237.html

你可能感兴趣的文章
markdown 语法备忘
查看>>
Ubuntu系统没声音
查看>>
Linux下启动Oracle服务和监听程序
查看>>
gift1
查看>>
Servlet的请求处理
查看>>
mapreduce 依赖组合
查看>>
【原】设计稿中字体pt与px之间的转化
查看>>
颓废笔记
查看>>
基础字符串处理_C++
查看>>
NOIP总结
查看>>
Java 之泛型通配符 ? extends T 与 ? super T 解惑
查看>>
关于小程序后台post不到数据的问题
查看>>
mysql left join,right join,inner join用法分析
查看>>
Oracle scott解锁 以及连接数据库
查看>>
浅谈C语言中的联合体
查看>>
【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器
查看>>
照着书写的几个经典排序算法(插入、希尔、堆、归并、快排)
查看>>
[Swift]LeetCode753. 破解保险箱 | Cracking the Safe
查看>>
2017-2018-1 20155330《信息安全技术》实验二——Windows口令破解
查看>>
20155210 实验一 逆向与Bof基础
查看>>