XML

全称:Extensible Markup Language:可扩展标记语言。是一种很像HTML的标记语言,标签没有被预定义,需要自行定义标签。

可扩展指的是:即使一份XML文档已经被读取,再向XML文档中添加新的元素,不会影响之前元素的读取。

XML设计用来传输和存储数据。应用于Web开发的许多方面,常用于简化数据的存储和共享。

XML树结构:

    示例:

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

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Dont forget me this weekend!</body>

</note>

第一行是xml声明,定义了XML的版本:1.0和所使用的编码:UTF-8。xml的声明可以不写。

接下来便是成对出现的标签。

XML的标签是大小写敏感的。

XML可以给标签自定义属性,如:<note date="10/06/2017">

XML中的一些字符拥有特殊的含义,不能再XML元素中直接使用,需要使用实体引用代替。XML有5个预定义的实体引用:

&it -- <    ;    &gt -- >    ; &amp -- &    ;    &apos -- '    ;    &quote -- "    ;

XML的注释与HTML写法相同。

XML的空格会保留。(HTML的空格多个合并为1个)

XML属性:

    XML的元素具有属性,属性提供了有关元素的额外信息。这些信息与数据本身无关,但具有辅助作用。

    属性值需要被引号包围,单双引号均可。

    XML不建议过多使用属性。尽量用元素来描述数据,而属性用来提供和数据无关的信息。

XML DTD:

    拥有正确语法的XML被称为形式良好的XML。通过DTD验证的XML是合法的XML。

    DTD的目的是定义XML文档的结构。使用一系列合法的元素来定义文档的结构。

    DTD可被成行的声明于XML文档,也能作为外部引用。

    内部使用时,需要声明:

    <!DOCTYPE root-element [element-declarations]>   

    示例:

<?xml version="1.0"?>
<!DOCTYPE note [    //定义文档为note类型(即根元素为note)
<!ELEMENT note (to,from,heading,body)>    //定义note有4个元素:to,from,heading,body
<!ELEMENT to (#PCDATA)>    //定义to元素为#PCDATA类型。PCDATA表示 被解析的字符数据(parsed character data)。些文本将被解析器检查实体以及标记
<!ELEMENT from (#PCDATA)>    //文本中的标签会被当作标记来处理,实体引用会被展开。
<!ELEMENT heading (#PCDATA)>    //还有一种#CDATA类型。CDATA表示 字符型数据(character data)。这些文本中的标签不会被当作标记来处理,而实体也不会被展开。
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>

外部引用时,需要声明:

<!DOCTYPE root-element System "filename">

如上面的例子,使用外部引用方式的写法:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

DTD文件:note.dtd

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值