XML的学习

1.1 XML简介
1、XML(eXtensible Markup Language,可扩展标记语言),可以自定义标签。
2、基于文本格式,所以XML可以跨平台、跨语言
3、标签没有预定义,需要自定义
4、XML用来保存和传输数据,不是用来显示数据的。(HTML用来显示数据)
5、XML是元语言(可以通过此语言创造其他语言的语言成为元语言)


1.2 XML文档结构
1、第一行是XML声明,包括版本和字符编码
<?xml version="1.0" encoding="utf-8" ?>
2、XML文档是一个树型结构,它总是从“树根”开始,然后扩展到树叶。
3、XML文档必须要包含根元素。


1.3 XML节点的分类
<stu id="001"> 小明 </stu>

1、stu 为元素节点
2、小明 为值节点
3、 id 为属性节点

1.4 数据的分类
1、PCDATA:parse character data(可解析字符数据)由解析器解析
2、CDATA:character data,不会由解析器解析
3、元素后一般是PCDATA,属性后一般是CDATA


1.5 DTD

1、DTD:document type definition(文档类型定义)
2、DTD用来验证XML文档是否有效
3、DTD可以是一个独立的文件(外部DTD),也可以是嵌套在XML文档中(内部DTD)

1.5.1 语法:

<!ELEMENT 元素 (子元素) >
<!ELEMENT 元素 (#PCDATA)>
<!ELEMENT 元素 EMPTY>    空标记    
<!ELEMENT 元素 ANY >

1.5.2 引用外部DTD

引用外部DTD有两个关键字

1、SYSTEM:引用自定义的DTD文件
<!DOCTYPE 根元素 SYSTEM “文件名”>
2、PUBLIC:引用互联网的DTD文件
<!DOCTYPE HTML PUBLIC "DTD名称" "dtd的域名地址">


<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE movies [
    <!ELEMENT movies (movie+)>
    <!ELEMENT movie (title,actor+,rating)>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT actor (#PCDATA)>
    <!ELEMENT rating (#PCDATA)>
]>



<?xml version="1.0" encoding="UTF-8"?>

<movies>
	<movie>
		<title>西游记</title>
		<actor>六小龄童</actor>
	<actor>马德华</actor>
	<rating>大家一起看</rating>
</movie>
<movie>
	<title>水浒传</title>
	<actor>宋江</actor>
	<rating>大人陪同</rating>
</movie>
</movies>

1.5.3 引用内部DTD

   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE movies [
    <!ELEMENT movies (movie+)>
    <!ELEMENT movie (title,actor+,rating)>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT actor (#PCDATA)>
    <!ELEMENT rating (#PCDATA)>
    ]>

<movies>
<movie>
	<title>西游记</title>
	<actor>六小龄童</actor>
	<actor>马德华</actor>
	<rating>大家一起看</rating>
</movie>
<movie>
	<title>水浒传</title>
	<actor>宋江</actor>
	<rating>大人陪同</rating>
</movie>
</movies>

1.6 实体

实体又分为:一般实体,参数实体。

一般实体中分为:预定义实体,自定义实体。

1.6.1 预定义实体

实体名称 字符
lt ---------- <
gt --------- >
amp ------ &
quot ------- “
apos ------- ‘


1.6.2 自定义实体

语法:<!ENTITY 实体名 实体值 >

调用实体:&实体名;

1.6.3 参数实体

参数实体和一般实体声明的时候很相似,区别是参数实体前面有”%”

语法:<!ENTITY % 实体名 ‘实体默认值’>

例子:

<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % p 'test'>
<!ELEMENT roster ((%p;)+)>
<!ELEMENT %p; (name,sex,birthday,score?,skill+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>
<!ELEMENT score (#PCDATA)>
<!ELEMENT skill (#PCDATA)>
<!ATTLIST %p; id ID #REQUIRED>


XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE roster SYSTEM "10-demo.dtd"[
<!ENTITY % p "teacher">
]>
<roster>
<teacher id="t001">
	<name></name>
	<sex></sex>
	<birthday></birthday>
	<skill></skill>
	<skill></skill>
</teacher>
</roster>
posted @ 2019-10-16 14:16  zpchcbd  阅读(227)  评论(0)    收藏  举报