XML文檔的規范與約束


## XML:
 1. 概念:Extensible Markup Language 可擴展標記語言
  * 可擴展:標簽都是自定義的。 <user>  <student>
  * 功能
   * 存儲數據
    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. 文檔聲明
    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[ 數據 ]]>
 
一個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 &lt; b &amp;&amp; a &gt; 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:一種復雜的約束技術

    * 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">
 

   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>

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM