XML
指可扩展标记语言(eXtensible
Markup
Language
)
XML 被设计用来传输和存储数据。几乎所有语言都支持XML。
现在的XML是两个版本1.0,2.0。http://www.w3.org/TR/xml-c14n2/
目前的写法还是<?xml version='1.0' ?>
在平常的工作中用XML也就是交换数据格式、然而在webservice
上会经常性的用到它、所以认真的自学一遍,并写出总结笔记。
<?xml version="1.0" ?>
<students>
<student>
<id>100</id>
<name>李四</name>
</student>
</students>
xml第一点:只有一个根元素(即:顶层元素)students,不能有多个。
XML第二点:可以自定义标签。
XML第三点:标签是成对出现的、有开始有结束。代码规范非常严格。元素嵌套关系要保持正确性。
<?xml version="1.0" ?>
<students>
<student>
<id>100</id>
<name>李四</name>
</student>
<student>
<id>100</id>
<name>李四</name>
</student>
</students>
这种格式是正确合法的。根元素是保函所有元素的元素。
XML第四点:与HTML
对比,XML
描述的是文档的内容与语义是结构化数据,而不是文档应当如何显示样式。
XML第五点:XML
是自描述的语言。
XML的优越性
- 信息共享
- 数据传递
- 数据重用
- 可扩展
- 文档保函语义
- 树形结构面向对象编程
XML的声明
<?xml version="1.0" encoding='utf-8' standalone="yes"?>
必须顶格写。?号前面不能有空格,如果不写encoding默认是utf-8(不用写),注意encoding和standalone的先后顺序。standalone="yes"
代表这个一个独立的XML文档、没有约束类型DTD、schema存在。
XML标签的定义
XML标签里面可定义属性、中间要空格分开。和HTML一样
<?xml version="1.0" ?>
<students>
<student gender="male" isHandsone="true">
<id>100</id>
<name>李四</name>
</student>
</students>
同上文描述有开始和结束。XML严格区分大小写
XML修饰标签样式
XML如果要引入CSS需要执令<?xml-stylesheet type="text/css" href="hello.css"?>
定义CSS,hello.css文件
student{color:red;font-size: 24pt;}
执行结果
XML的注释和正常的HTML一样声明、但不允许嵌套
必须<!– –>
横线必须标准
<?xml version="1.0" encoding='utf-8' standalone="yes"?>
<students>
<!-- test -->
<student gender="male" isHandsone="true">
<id>100</id>
<name>李四</name>
<score>50</score>
</student>
<student>
<id>101</id>
<name>张三</name>
<score/>
</student>
</students>
可以<score/>这种自结束写法(表示开始结束在一起)。
特定的属性名不能重复(示例student标签里的gender属性)、属性值不能包含<,>,&特殊字符。
实体
作用:避免重复输入 –(变量)
内置实体 <
< 。>
> 。&
& 。"
” 。'
‘
XML自定义实体语法
<!DOCTYPE 根元素[<!ENTITY 实体名”实体内容” ]>
引用已定义的实体:
&实体名;
<?xml version="1.0"?>
<!DOCTYPE company[
<!ENTITY address "北京">
<!ENTITY dongli "动力">
]>
<company>
<name>&dongli;</name>
<address>&address;</address>
</company>
页面输出结果为
<company>
<name>动力</name>
<address>北京</address>
</company>
CDATA节
用于把整段文本解释为纯字符数据而不是标记的情况。包含大量的<、>、&或者”、’字符。
CDATA
节中的所有字符都会被当做元素字符数据、而不是XML标记
语法
<![CDATA[ …… ]]>
可以输入任意字符( 除 ]]> 外 )也不能嵌套使用
<?xml version="1.0"?>
<!DOCTYPE company[
<!ENTITY address "北京">
<!ENTITY dongli "动力">
]>
<company>
<![CDATA[
<user>
<pass>
]]>
<name>&dongli;</name>
<address>&address;</address>
</company>
页面输出结果
<company>
<![CDATA[ <user> <pass> ]]>
<name>动力</name>
<address>北京</address>
</company>
文档类型定义 –DOCTYPE
文档类型声明,紧跟XML声明之后,包含所有实体声明
语法:
<?xml version="1.0" ?>
<!DOCTYPE 根元素标记名[
<!–实体声明 –>
]>
如上面的代码示例
XML元素语法总结
名称中可以包含字母、数字或者其他字符。
名称不能以数字开头
不能以XML/xml/Xml/…开头
名称中不能包含空格
名称中不能含冒号(注:冒号留给命名空间使用)