首页 > 技术文章 > XML学习记录

jackzhoumine 2017-03-20 00:02 原文

XM的作用:
用于存储和传输数据。扩展性好,跨平台,独立于硬件和软件。
和HTML的区别:
HTML用于表现数据,XML用于存储和传输数据。
HTML对标签语写法要求弱,XML对标签写法要求低。

XML语法:

1、必须有根元素;
2、可选序言,则必须在文档开头;序言里可以包含国际编码方法,默认为UTF-8,版本。UTF-也是HTML5,CSS,JS,PHP,SQL的默认编码方式
3、必须有关闭元素;序言没关闭元素,不错,因为序言不是xml文档的一部分。
4、元素区分大小写,关闭和开始标签大小写必须相同;
5、必须正确嵌套;
6、属性值必须有双引号;
7、实体符号:像 < 包含在xml内部,必须用实体符号代替,否则将视为XML标签的开始。
< &lt;
> &gt;
& &amp;
' &apos;
" &quot;
只有 < &是严格非法的,但是用实体符号代替是好习惯
8、注释:<!--这是注释--> 两个连续的断线在注释内部是不合法的:

 

<!--这是--注释--> 这是合法的 <!--这是- -注释-->

 


9、空格不合并,空格是指tab 换行 space。html中所以空格和并为一个。
10、文件名后缀为.xml,可在浏览器中打开查看,元素会高亮,以文档树的形式呈现。
11、xml文档可用CSS装饰,不推荐这种用法。

 

<?xml version="1.0" encoding="UTF-8"?> <!--序言-->
<note><!--根元素-->
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note> 

 

 


 

XML元素:

元素:从开始标签的 “<” 到结束标签的 “>” 叫一个XML元素;元素可以包含 文本、属性、其他元素。
空元素:没有内容的元素叫空元素,空元素可以有属性。<element></element> 
XML命名规则:
①元素名字对区分大小写;②开始必须是英文字母或者下划线(_)④名字可以包含字母、数字、连字符号(-)、点号(.)⑤名字不包含空格和“xml、XML、Xml等”。
推荐命名方法:
标签名要有意义 <person>、<book_title>

②尽量用短名字

避免连字符(-),有写软件会视为排除符号

避免点号(.),有写软件是视为提取属性

避免冒号(:),有些软件是视为名名空间

⑥避免非英文字符

推荐名字习惯:
驼峰命名法:<firstName>,强烈推荐,以为JS通常也用此方式名字变量、函数名等。
②帕斯卡命名法:<FirstName>
③下划线连接单词:<first_name>
④所有单词小写:<firstname>
⑤所有单词大写:<FIRSTNAME>


 

元素属性:

用于描述元素的额外信息在开始元素中的一系列名值对,属性有多个值用分隔,属性值不用单引号或双引号包住。

 


gender作为属性

<person gender="female">
 <firstname>Anna</firstname>
 <lastname>Smith</lastname>
</person>

 


gender作为元素

<person>
 <gender>female</gender>
 <firstname>Anna</firstname>
 <lastname>Smith</lastname>
</person>

 

 

属性 VS 元素——如何适当用属性和元素

<note date="2008-01-10">
  <to>Tove</to>
  <from>Jani</from>
</note>
<note>
  <date>2008-01-10</date>
  <to>Tove</to>
  <from>Jani</from>
</note>

 

推荐写法:

<note>
  <date>
    <year>2008</year>
    <month>01</month>
    <day>10</day>
  </date>
  <to>Tove</to>
  <from>Jani</from>
</note>

 

如何避免使用属性:

①属性不能包含多种值,而元素能;
②属性不能包含树形结构,而元素能;
③属性不能呢个扩展,元素能;
④数据本身应该存为元素,元数据应该本存为属性。

用属性重写 上面的例子:

<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>

元素ID——元素的唯一标识符,和HTML的ID一样。


命名空间:
XML命名空间是为了避免元素或者属性同名冲突。
声明命名空间:
<element xmlns:prfix="uri">
①element是名字空间的规定范围,这个元素规定了名字空间,则其子元素也用于相同的命名空间
②命名空间前缀省略,就是默认的命名空间。不省略是书写元素时必须带上前缀。
③URI:名字空间的名字。

<root
xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3schools.com/furniture">

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root> 

 

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="http://www.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root> 

 

 

完!

 

推荐阅读