XML学习记录
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标签的开始。
< <
> >
& &
' '
" "
只有 < &是严格非法的,但是用实体符号代替是好习惯
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>
完!