#PCDATA和CDATA的区别
2014-07-17 13:14
375 查看
在XML文档中, 能看到“CDATA"的地方有三处:
1)在DTD中,指定标签中某个属性的类型为字符型时,使用CDATA。因为XML解析器会去分析这段字符内容,因而里面如果需要使用>, <, &, ', "这5个特殊字符,应当用对应的替代替代字符来表示(必须以&开始,以;结束)。具体如下:
< - < (less than)
> - > (greater than)
& - & (ampersand)
' - ' (apostrophe)
" - " (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>标签之间可以插入字符或者子标签。
1)在DTD中,指定标签中某个属性的类型为字符型时,使用CDATA。因为XML解析器会去分析这段字符内容,因而里面如果需要使用>, <, &, ', "这5个特殊字符,应当用对应的替代替代字符来表示(必须以&开始,以;结束)。具体如下:
< - < (less than)
> - > (greater than)
& - & (ampersand)
' - ' (apostrophe)
" - " (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>标签之间可以插入字符或者子标签。
相关文章推荐
- XML中CDATA与#PCDATA与PACATA的区别
- #PCDATA和CDATA的区别
- XML中 CDATA and PCDATA 的区别
- xml元素类型PCDATA和CDATA的区别(DTD中)
- pcdata和cdata的区别
- xml元素类型PCDATA和CDATA的区别(DTD中)
- 区分XML中CDATA和#PCDATA
- XML 中CDATA段 #PCDATA CDATA类型
- Difference between PCDATA and CDATA
- xml备忘 DTD PCDATA CDATA
- XML中PCDATA与CDATA
- What is the difference between CDATA and PCDATA?
- XML 中CDATA段 #PCDATA CDATA类型
- XML(5) PCDATA, CDATA, escaping illegal character
- 说说DoDataExchange(CDataExchange* pDX)
- BDA - BIOS Data Area - PC Memory Map
- DataBinder.Eval(Container.DataItem,"Name")和Container.DataItem("Name")有什么区别?
- 说说DoDataExchange(CDataExchange* pDX)
- FB-D内存全局缓冲内存 比dd2 ecc还要好啊。服务器内存和普通PC内存的区别[转载]
- datatextfield 和datavaluefield 的区别