初识XML 多功能语言
来源:互联网 发布:白t恤 知乎 编辑:程序博客网 时间:2024/06/10 06:00
XML
XML概述
网际交换数据的语言
广泛的应用于:数据描述、网络交换数据、和系统配置文件。
XML有三层元素:
数据、结构和显示样式。
比起HTML同宗兄弟,有很多优点,如:将显示和数据的描述分开,这样就增强了灵活性,便于程序重构等等。
初识XML
一个XML文档:
<?xml version="1.0" encoding="gb2312" standalone="no"?>
<!DOCTYPE books SYSTEM "Char_2_books.dtd">
<books>
<book>
<title>Java程序设计</title>
<author>魏去惰</author>
<print>东北大学出版社</print>
<price unit="人民币元">28.50</price>
<book>
<book>
<title>C++网路程序</title>
<author>姜永乐</author>
<print>东北大学出版社</print>
<price unit="人民币元">35.00</price>
<book>
</books>
如上部分是一个典型的XML文档,包括如下几个部分,我们来一一认识一下吧:
1
<?xml version="1.0" encoding="gb2312" standalone="no"?>
这一条叫做文档类型说明,形式如下:
<?xml version="" 其他可选项?>
Encoding默认是Unicode
Standalone表达的是是否使用外部dtd什么是dtd?马上就说了,别急。
2引用文档类型定义说明
<DOCTYPE books SYSTEM "Chat_2_books.dtd">
这个是可选的,当你的dtd文件独立于xml文档时,我们就使用此选项说明。
格式:
<DOCTYPE 根 SYSTEM URL>
或
<DOCTYPE 根 PUBLIC DTD名 URL>
其中SYSTEM代表此文档是私有的,而PUBLIC代表的是文档是公用的。
3
文档主体,也就是记录部分。
<books>
<book>
<title>Java程序设计</title>
<author>魏去惰</author>
<print>东北大学出版社</print>
<price unit="人民币元">28.50</price>
<book>
<book>
<title>C++网路程序</title>
<author>姜永乐</author>
<print>东北大学出版社</print>
<price unit="人民币元">35.00</price>
<book>
</books>
注:
这个文档使用的是外部的dtd,我们可以使用文档的内部dtd,格式如下;
<!DOCTYPE 定义 根[
内部同外部dtd
]>
先给大家前一个的Chat_2_books.dtd
<?xml version="1.o' encoding="gb2312"?>
<!ELEMENT books(book*)>
<!ELEMENT book(title,author,print,price)>
<!ELEMENT title(#PCDAA)>
<!ELEMENT author(#PCDATA)>
<!ELEMENT print(#PCDATA)>
<!ELEMENT price(#PCDATA)>
<!ATTLIST price unit CDATA "人民币元">
写成外部的就是:
<DOCTYPE books[
<!ELEMENT books(book*)>
<!ELEMENT book(title,author,print,price)>
<!ELEMENT title(#PCDAA)>
<!ELEMENT author(#PCDATA)>
<!ELEMENT print(#PCDATA)>
<!ELEMENT price(#PCDATA)>
<!ATTLIST price unit CDATA "人民币元">
]>
先解释一下dtd的语法吧!
Dtd定义了xml文档的数据结构,其中的元素、元素的属性、和他们之间的关系。
利用dtd可以检测xml是否规范。但是,xml文档不一定需要dtd。
经典文档类型定义范例:
<?xml version="1.0" enconding="gb2312">
<!DOCTYPE AS[
<!ELEMENT AS(A*)>
<!ELEMENT A(B|C)>
<!ELEMENT B(D,E)>
<!ELEMENT D(#PCDATA)>
<!ELEMENT E(#PCDATA)>
<!ELEMENT C(#PCDATA)>
]>
元素:
<!ELEMENT >
元素包含三个种类:
1复合元素2基本元素3空元素
1复合元素定义方法
<!ELEMENT 名(子元素1(出现的次数),子元素2(出现的次数)。。。。)
例如:
<!ELEMENT books(book*)>
代表books是复合的,包含或包含多个book
出现次数代表
?不出现或出现一次
*不出现或出现多次
+至少出现一次
无标记 代表出现且仅一次
2基本元素的定义方法
<!ELEMENT 名(#PCDATA)>
一般带有内容的使用PCDATA,还有CDATA,和ANY
3空元素定义
<!ELEMENT 元素名 EMPTY>
如定义:
<!ELEMENT hr EMPTY>
使用情况:
<hr />
属性说明:
<!ATTLIST 元素名 属性名 属性类型 赋值情况 默认值>
其中后两项是可选的。
属性的类型有:
CDATA 字符串
ENUMERED 枚举
NMTOKEN 命名字符串
NMTOKENS 多个命名字符串,以空格隔开
ID 唯一标识一条记录
IDREF 运用id
IDREFS
ENTITY 实体?
ENTITIES
NOTATION 注
赋值特征:
#REQUIRED 必须赋值
#IMPLIED 可以不赋值
#FIX 固定的值
默认值 字符数据
几个小例子:
<!ATTLIST student department(computer|network) "network">
<!ATTLIST student no ID #REQURIED>
<!ATTLIST student next IDREF #IMPLIED>
什么是实体(ENTITY)?
实体包含如下几种类型:
1内部实体
定义在本dtd当中,如:
<!ENTITY author "魏去惰">
使用时:
&author;
2外部实体
定义在外部。
使用时:
引入:
<!ENTITY author SYSTEM "DTD_URL">
使用:
&author;
3预定义的实体
直接使用即可:
< <
≷ >
& &
" "
' '
4参数实体
参数实体只能在dtd中使用,不能在xml中使用,是为了方便的定义dtd
目的是重用相同定义的元素,相同元素的属性结构,也就是它参数可以代表一个元素。
如:
一个dtd1文档中使用如下:
<!ENTITY %parameter "bp">
本文档使用:
<!ELEMENT %parameter(tiele, sdf)>
其实就是:
<!ELEMENT bp(tiele,sdf)>
若有相同定义的元素在外部,使用情况如下:
必须在引用时说明现在的值:
<!DOCTYPE 。。。。。。[
<!ENITTY %patameter "book">
]>
XML文档的注意事项:
区分大小写
PCDATA表示解析字符串,常用
CDATA未解析
注释:
<!-- sdfdsf -->
- 初识XML 多功能语言
- xml语言初识1
- 初识XML
- XML初识
- 初识xml
- 初识XML
- 初识xml
- 初识XML
- 初识XML
- 初识XML
- 初识XML
- 初识XML
- 初识XML
- 初识XML
- 初识XML
- 初识XML
- 初识xml
- 初识XML
- 去耦电容和旁路电容的区别
- Editplus的一些使用小方法
- 当元素在隐藏容器内 document.getElementById能不否得到
- @EJB注解
- Head First C# 中文版 图文皆译 第六章 继承 page227
- 初识XML 多功能语言
- GPS 简介
- SAP 用户权限解剖
- BPEL 消息相关性
- C#封装的海康DVR客户端SDK
- SAP常用BASIS技巧整理
- 没有窝的猪
- 正则表达式30分钟入门教程
- C++变量命名规则