## XML:
1. 概念:Extensible Markup Language 可擴展標記語言
* 可擴展:標簽都是自定義的。 <user> <student>
1. 概念:Extensible Markup Language 可擴展標記語言
* 可擴展:標簽都是自定義的。 <user> <student>
* 功能
* 存儲數據
1. 配置文件
2. 在網絡中傳輸
* xml與html的區別
1. xml標簽都是自定義的,html標簽是預定義。
2. xml的語法嚴格,html語法松散
3. xml是存儲數據的,html是展示數據
* 存儲數據
1. 配置文件
2. 在網絡中傳輸
* xml與html的區別
1. xml標簽都是自定義的,html標簽是預定義。
2. xml的語法嚴格,html語法松散
3. xml是存儲數據的,html是展示數據
* w3c:萬維網聯盟
2. 語法:
* 基本語法:
1. xml文檔的后綴名 .xml
2. xml第一行必須定義為文檔聲明
3. xml文檔中有且僅有一個根標簽
4. 屬性值必須使用引號(單雙都可)引起來
5. 標簽必須正確關閉
6. xml標簽名稱區分大小寫
* 基本語法:
1. xml文檔的后綴名 .xml
2. xml第一行必須定義為文檔聲明
3. xml文檔中有且僅有一個根標簽
4. 屬性值必須使用引號(單雙都可)引起來
5. 標簽必須正確關閉
6. xml標簽名稱區分大小寫
* 組成部分:
1. 文檔聲明
1. 格式:<?xml 屬性列表 ?>
2. 屬性列表:
* version:版本號,必須的屬性
* encoding:編碼方式。告知解析引擎當前文檔使用的字符集,默認值:ISO-8859-1
* standalone:是否獨立
* 取值:
* yes:不依賴其他文件
* no:依賴其他文件
2. 指令(了解):結合css的
* <?xml-stylesheet type="text/css" href="a.css" ?>
3. 標簽:標簽名稱自定義的
* 規則:
* 名稱可以包含字母、數字以及其他的字符
* 名稱不能以數字或者標點符號開始
* 名稱不能以字母 xml(或者 XML、Xml 等等)開始
* 名稱不能包含空格
1. 文檔聲明
1. 格式:<?xml 屬性列表 ?>
2. 屬性列表:
* version:版本號,必須的屬性
* encoding:編碼方式。告知解析引擎當前文檔使用的字符集,默認值:ISO-8859-1
* standalone:是否獨立
* 取值:
* yes:不依賴其他文件
* no:依賴其他文件
2. 指令(了解):結合css的
* <?xml-stylesheet type="text/css" href="a.css" ?>
3. 標簽:標簽名稱自定義的
* 規則:
* 名稱可以包含字母、數字以及其他的字符
* 名稱不能以數字或者標點符號開始
* 名稱不能以字母 xml(或者 XML、Xml 等等)開始
* 名稱不能包含空格
4. 屬性:
id屬性值唯一
5. 文本:
* CDATA區:在該區域中的數據會被原樣展示
* 格式: <![CDATA[ 數據 ]]>
id屬性值唯一
5. 文本:
* CDATA區:在該區域中的數據會被原樣展示
* 格式: <![CDATA[ 數據 ]]>
一個XML小例子:
1 <?xml version="1.0" encoding="utf-8" standalone='no' ?> 2 <!--<?xml-stylesheet type="text/css" href="a.css" ?>--> 3 4 <users> 5 6 <user id='1'> 7 <name>張三</name> 8 <age>23</age> 9 <gender>male</gender> 10 <br/> 11 </user> 12 13 <user id='2'> 14 <name>lisi</name> 15 <age>24</age> 16 <gender>female</gender> 17 18 <code> 19 <!-- if(a < b && a > c){}--> 20 <![CDATA[ 21 if(a < b && a > c) {} 22 ]]]> 23 24 25 </code> 26 27 </user> 28 29 </users>
* 約束:
約束與XML文件的作用與關系:

概念:規定xml文檔的書寫規則
* 作為框架的使用者(程序員):
1. 能夠在xml中引入約束文檔
2. 能夠簡單的讀懂約束文檔
* 分類:
1. DTD:一種簡單的約束技術
2. Schema:一種復雜的約束技術
1. 能夠在xml中引入約束文檔
2. 能夠簡單的讀懂約束文檔
* 分類:
1. DTD:一種簡單的約束技術
2. Schema:一種復雜的約束技術
* DTD:
* 引入dtd文檔到xml文檔中
* 內部dtd:將約束規則定義在xml文檔中
* 外部dtd:將約束的規則定義在外部的dtd文件中
* 本地:<!DOCTYPE 根標簽名 SYSTEM "dtd文件的位置">
* 網絡:<!DOCTYPE 根標簽名 PUBLIC "dtd文件名字" "dtd文件的位置URL">
DTD的引入和使用舉例:(了解)
dtd文件的創建:student.dtd
1 <!ELEMENT students (student+) > 2 <!ELEMENT student (name,age,sex)> 3 <!ELEMENT name (#PCDATA)> 4 <!ELEMENT age (#PCDATA)> 5 <!ELEMENT sex (#PCDATA)> 6 <!ATTLIST student number ID #REQUIRED>
dtd文件在XML文件中的引入和使用:student.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE students SYSTEM "student.dtd"> 3 4 <!--<!DOCTYPE students [ 5 6 <!ELEMENT students (student+) > 7 <!ELEMENT student (name,age,sex)> 8 <!ELEMENT name (#PCDATA)> 9 <!ELEMENT age (#PCDATA)> 10 <!ELEMENT sex (#PCDATA)> 11 <!ATTLIST student number ID #REQUIRED> 12 13 14 ]>--> 15 <students> 16 17 <student number="s001"> 18 <name>zhangsan</name> 19 <age>abc</age> 20 <sex>hehe</sex> 21 </student> 22 23 <student number="s002"> 24 <name>lisi</name> 25 <age>24</age> 26 <sex>female</sex> 27 </student> 28 29 </students>
* Schema:
* 引入:
1.填寫xml文檔的根元素
2.引入xsi前綴. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3.引入xsd文件命名空間. xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"
4.為每一個xsd約束聲明一個前綴,作為標識 xmlns="http://www.itcast.cn/xml"
<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.itcast.cn/xml"
xsi:schemaLocation="http://www.itcast.cn/xml student.xsd">
xmlns="http://www.itcast.cn/xml"
xsi:schemaLocation="http://www.itcast.cn/xml student.xsd">
Schema的引用和使用舉例:(了解)
xsd文件的創建:
student.xsd
1 <?xml version="1.0"?> 2 <xsd:schema xmlns="http://www.itcast.cn/xml" 3 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 4 targetNamespace="http://www.itcast.cn/xml" elementFormDefault="qualified"> 5 <xsd:element name="students" type="studentsType"/> 6 <xsd:complexType name="studentsType"> 7 <xsd:sequence> 8 <xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/> 9 </xsd:sequence> 10 </xsd:complexType> 11 <xsd:complexType name="studentType"> 12 <xsd:sequence> 13 <xsd:element name="name" type="xsd:string"/> 14 <xsd:element name="age" type="ageType" /> 15 <xsd:element name="sex" type="sexType" /> 16 </xsd:sequence> 17 <xsd:attribute name="number" type="numberType" use="required"/> 18 </xsd:complexType> 19 <xsd:simpleType name="sexType"> 20 <xsd:restriction base="xsd:string"> 21 <xsd:enumeration value="male"/> 22 <xsd:enumeration value="female"/> 23 </xsd:restriction> 24 </xsd:simpleType> 25 <xsd:simpleType name="ageType"> 26 <xsd:restriction base="xsd:integer"> 27 <xsd:minInclusive value="0"/> 28 <xsd:maxInclusive value="256"/> 29 </xsd:restriction> 30 </xsd:simpleType> 31 <xsd:simpleType name="numberType"> 32 <xsd:restriction base="xsd:string"> 33 <xsd:pattern value="heima_\d{4}"/> 34 </xsd:restriction> 35 </xsd:simpleType> 36 </xsd:schema>
xsd約束文件在XML文件中的引用和使用:
student.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!-- 3 1.填寫xml文檔的根元素 4 2.引入xsi前綴. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 3.引入xsd文件命名空間. xsi:schemaLocation="http://www.itcast.cn/xml student.xsd" 6 4.為每一個xsd約束聲明一個前綴,作為標識 xmlns="http://www.itcast.cn/xml" 7 8 9 --> 10 <students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 11 xmlns="http://www.itcast.cn/xml" 12 xsi:schemaLocation="http://www.itcast.cn/xml student.xsd" 13 > 14 <student number="heima_0001"> 15 <name>tom</name> 16 <age>18</age> 17 <sex>male</sex> 18 </student> 19 20 </students>