XML eXtensible Markup Language 可扩展标记语言,是一种标记语言,用来表示包含结构信息的数据。
XML是一种树形的结构,通常用于储存数据,数据库是一种表的结构,也用来储存数据,树可以表示表,但是表不能表示树。
标记语言的历史, 一开始有个SGML的语言,为通用的文档结构描述符号化语言,然后有了HTML,超文本链接语言,是sgml的一种应用,但是只能编写网页,最后有了XML。
xml有四个特点
可扩展性 Extensible XML允许使用者创建和使用自己的标记。
灵活性 Flexibility XML提供了结构化的数据表示方式,使用户界面分离与结构化数据。
自描述性 Self-descibling XML表示数据的方式独立于应用系统,且数据能够重用
简洁性 Simplicity XML比SGML简单 ,更易实现
XML的编写:
第一行通常为声明部分
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>包含 版本声明 version 编码声明encoding 独立性声明 standalone.
版本声明必须有,且为声明中的第一个属性。 独立性声明说明当前文件是否需要与其他文件配套使用。
处理指令:
<?xml-stylesheet href=“style.xsl” type=“text/xsl”?>处理指令 使 XML用于特殊的应用程序时执行特定的操作。上面代码即使xsl执行引擎执行到这里时,根据style.xsl对XML文档进行相应的转换。但是XML解析器并不理解这些指令,也不进行操作。
注释
<!-- ........ -->注释中不能出现两个连续的-- 。 注释不能处于元素的标签内,也不能嵌套。
元素Element
属性Attribute
文本内容,为元素中的文本,一下几个字符使用预定义的实体替换:
< " < "
> " > "
& " &"
' " &apos"
" " ""
也可以直接使用CDATA进行输出,在其中写带有非法符号的文本
<![CDATA[......]]XML出现的空白字符为空格,回车,换行,制表四种,在缺省状态下,对于连续出现的空白字符,解析器为将其缩减为一个空格字符。
XML良构性,Well-formed 指其结构能够符合要求,使程序能进行正确解析。略
命名空间 namespace
xmlns:prefix-name="URI"xmlns:xml namespace 之后跟命名空间的名字
之后是几个直接用xmlspy画出来的xml用例
这里的三个用例都由下一篇文章中的 dtd文件规格 以及下下篇文章中的 xsd文件。
<?xml version="1.0" encoding="UTF-8"?> <!-- 被2012 () 使用XMLSpy v编辑的 (http://www.altova.com) by --> <info xsi:noNamespaceSchemaLocation="SpyBase1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <aliasTable> <row aID="1"> <spyREF>A001</spyREF> <alias>Spy Grrrl</alias> </row> <row aID="2"> <spyREF>A001</spyREF> <alias>La Femme Nikki</alias> </row> <row aID="3"> <spyREF>A006</spyREF> <alias>LL</alias> </row> <row aID="4"> <spyREF>A006</spyREF> <alias>Fred</alias> </row> <row aID="5"> <spyREF>A003</spyREF> <alias>Big Ears</alias> </row> <row aID="6"> <spyREF>A004</spyREF> <alias>Inspector Gadget</alias> </row> <row aID="7"> <spyREF>A004</spyREF> <alias>Don Adams</alias> </row> </aliasTable> <missionTable> <row mID="M101"> <spyREF>A001</spyREF> <date>2005-4-15</date> <description>Crack the code</description> <status>Mission Accomplished</status> </row> <row mID="M102"> <spyREF>A001</spyREF> <date>2006-2-15</date> <description>Get the source</description> <status>Mission Accomplished</status> </row> <row mID="M103"> <spyREF>A001</spyREF> <date>2006-5-4</date> <description>Hit the target</description> <status>In Progress</status> </row> <row mID="M104"> <spyREF>A006</spyREF> <date>2006-6-15</date> <description>Shoot the rapid</description> <status>In Progress</status> </row> <row mID="M105"> <spyREF>A003</spyREF> <date>2005-11-4</date> <description>Get the big cheese</description> <status>In Progress</status> </row> <row mID="M106"> <spyREF>A003</spyREF> <date>2006-4-4</date> <description>Map the area</description> <status>In Progress</status> </row> <row mID="M107"> <spyREF>A099</spyREF> <date>2006-5-2</date> <description>Get Smart</description> <status>In Progress</status> </row> <row mID="M108"> <spyREF>A004</spyREF> <date>1967-2-15</date> <description>Protect Chief</description> <status>In Progress</status> </row> <row mID="M109"> <spyREF>A004</spyREF> <date>2006-6-15</date> <description>Get some style</description> <status>Mission Accomplished</status> </row> </missionTable> <spyTable> <row spyID="A001"> <firstName>Nikki</firstName> <lastName>Devgood</lastName> </row> <row spyID="A006"> <firstName>Link</firstName> <lastName>Lister</lastName> </row> <row spyID="A003"> <firstName>Danger</firstName> <lastName>Mause</lastName> </row> <row spyID="A099"> <firstName>Barbara</firstName> <lastName>Feldon</lastName> </row> <row spyID="A004"> <firstName>Maxwell</firstName> <lastName>Smart</lastName> </row> </spyTable> </info>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE info SYSTEM "SpyBase2.dtd"> <info> <row spyID="A001"> <firstName>Nikki</firstName> <lastName>Devgood</lastName> <alias>Spy Grrrl</alias> <alias>La Femme Nikki</alias> <mission> <date>2005-4-15</date> <description>Crack the code</description> <status>Mission Accomplished</status> </mission> <mission> <date>2006-2-15</date> <description>Get the source</description> <status>Mission Accomplished</status> </mission> <mission> <date>2006-5-4</date> <description>Hit the target</description> <status>In Progress</status> </mission> </row> <row spyID="A006"> <firstName>Link</firstName> <lastName>Lister</lastName> <alias>LL</alias> <alias>Fred</alias> <mission> <date>2006-6-15</date> <description>Shoot the rapid</description> <status>In Progress</status> </mission> </row> <row spyID="A003"> <firstName>Danger</firstName> <lastName>Mause</lastName> <alias>Big Ears</alias> <mission> <date>2005-11-4</date> <description>Get the big cheese</description> <status>In Progress</status> </mission> <mission> <date>2006-4-4</date> <description>Map the area</description> <status>In Progress</status> </mission> </row> <row spyID="A099"> <firstName>Barbara</firstName> <lastName>Feldon</lastName> <mission> <date>2006-5-2</date> <description>Get Smart</description> <status>In Progress</status> </mission> </row> <row spyID="A004"> <firstName>Maxwell</firstName> <lastName>Smart</lastName> <alias>Inspector Gadget</alias> <alias>Don Adams</alias> <mission> <date>1967-2-15</date> <description>Protect Chief</description> <status>In Progress</status> </mission> <mission> <date>2006-6-15</date> <description>Get some style</description> <status>Mission Accomplished</status> </mission> </row> </info>
<?xml version="1.0" encoding="UTF-8"?> <!--用XMLSpy v2012产生的 XML文件(http://www.altova.com)--> <book xsi:noNamespaceSchemaLocation="book.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <title xsi:type="bookTitleType">Data On the Web</title> <author>text</author> <author>text</author> <author>text</author> <section id="text" difficulty="text"> <title xsi:type="sectionTitleType">1.xxxx</title> <p>text</p> </section> <section id="text" difficulty="text"> <title xsi:type="sectionTitleType">1-1.xxxx</title> <p>text</p> </section> <section id="text" difficulty="text"> <title>a</title> <figure width="12" height="24"> <title xsi:type="figureTitleType">1-1-1.xxxx</title> <image source=""></image> </figure> </section> <section id="text" difficulty="text"> <title xsi:type="sectionTitleType">120.250.215uafghaoh</title> <section> <title>afas</title> <figure width="" height=""> <title xsi:type="figureTitleType">1-1-1.xxxx</title> <image source=""></image> </figure> </section> </section> </book>