XML简介及基本语法
目錄
一、xml的簡介(了解)
二、xml的語法
1.文檔聲明
2.元素/標簽定義
3.屬性
4.注釋
5.轉義字符
6.CDATA區(qū)
7.PI指令(處理指令)
三、xml的約束
四、DTD約束
五、dtd的三種引入方式
1. 內部DTD
2. 外部DTD
3. 外部DTD
六、使用dtd定義元素
1.約束元素的嵌套層級
2.約束元素體里面的數(shù)據(jù)
3.數(shù)量詞
4.屬性聲明
七、w3cschool實例代碼演示: ? ?(能看懂就行)
一、xml的簡介(了解)
XML 指可擴展標記語言(EXtensible Markup Language)
XML 是一種標記語言,很類似 HTML,HTML文件也是XML文檔
XML 的設計宗旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù)
XML 標簽沒有被預定義。您需要自行定義標簽。
XML 被設計為具有自我描述性(就是易于閱讀)。
XML 是 W3C 的推薦標準
W3C在1988年2月發(fā)布1.0版本,2004年2月又發(fā)布1.1版本,單因為1.1版本不能向下兼容1.0版本,所以1.1沒
有人用。同時,在2004年2月W3C又發(fā)布了1.0版本的第三版。我們要學習的還是1.0版本。
二、xml的語法
1.文檔聲明
文檔聲明必須寫在 第一行第一列
<?xml version="1.0" encoding="utf-8"?>
屬性:
version:xml的版本 1.0(使用) 1.1
encoding:xml編碼,默認為utf-8
2.元素/標簽定義
格式1:<person></person> 格式2:<person/>(1)元素是XML文檔中最重要的組成部分;
(2)普通元素的結構由開始標簽、元素體、結束標簽組成。
(3)元素體:元素體可以是元素,也可以是文本,例如: <person><name>張三</name></person>
(4)空元素:空元素只有標簽,而沒有結束標簽,但元素必須自己閉合,例如: <sex/>
(5)元素命名
區(qū)分大小寫
不能使用空格,不能使用冒號
不建議以XML、xml、Xml開頭
(6) 格式化良好的XML文檔,有且僅有一個根元素。
3.屬性
<person id="110">(1) 屬性是元素的一部分,它必須出現(xiàn)在元素的開始標簽中
(2)屬性的定義格式:屬性名=“屬性值”,其中屬性值必須使用單引或雙引號括起來
(3)一個元素可以有0~N個屬性,但一個元素中不能出現(xiàn)同名屬性
(4)屬性名不能使用空格 , 不要使用冒號等特殊字符,且必須以字母開頭
4.注釋
<!‐‐注釋內容‐‐>5.轉義字符
XML中的轉義字符與HTML一樣。因為很多符號已經(jīng)被文檔結構所使用,所以在元素體或屬性值中想使用這些符號
就必須使用轉義字符(也叫實體字符),例如:">"、"<"、"'"、"""、"&"。
注意:嚴格地講,在 XML 中僅有字符 "<"和"&" 是非法的。省略號、引號和大于號是合法的,但是把它們替換為實體引用是個好的習慣。
6.CDATA區(qū)
<![CDATA[ 文本數(shù)據(jù) ]]>(1) CDATA 指的是不應由 XML 解析器進行解析的文本數(shù)據(jù)(Unparsed Character Data)
(2)CDATA 部分由 "<![CDATA[" 開始,由 "]]>" 結束;
(3)當大量的轉義字符出現(xiàn)在xml文檔中時,會使可讀性大幅度降低。這時使用CDATA段就會好一些。
注意:
CDATA 部分不能包含字符串 "]]>"。也不允許嵌套的 CDATA 部分。
標記 CDATA 部分結尾的 "]]>" 不能包含空格或折行。
7.PI指令(處理指令)
可以在xml中設置樣式
寫法:
? ? ? ? ? ? <?xml-stylesheet type="text/css" href="css的路徑"?>
設置樣式,只能對英文標簽名稱起作用,對中文的標簽名稱不起作用。? ??
<?xml version="1.0" encoding="GBK"?> <?xml-stylesheet type="text/css" href="a.css"?> <person><name>張三</name><age>22</age><aaa>1<2</aaa><![CDATA[<p>www.badu.com</p>]]> </person>三、xml的約束
在XML技術里,可以編寫一個文檔來約束一個XML文檔的書寫規(guī)范,這稱之為XML約束。
常見的xml約束:DTD、Schema
四、DTD約束
創(chuàng)建一個文件 后綴名 .dtd
(1)看xml中有多少個元素 ,有幾個元素,在dtd文件中寫幾個 <!ELEMENT>
(2)判斷元素是簡單元素還是復雜元素
(3)需要在xml文件中引入dtd文件
xml文檔演示:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE person SYSTEM "1.dtd"> <person><student><name>張三</name><age>18</age></student><student><name>李四</name><age>20</age></student> </person>該xml的dtd約束文檔:
<!ELEMENT person (student+)> <!ELEMENT student (name,age)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)>五、dtd的三種引入方式
1. 內部DTD
<?xml version="1.0" encoding="UTF‐8"?> <!DOCTYPE 根元素 [...//具體語法]><!‐‐內部DTD‐‐> <根元素> </根元素>2. 外部DTD
<?xml version="1.0" encoding="UTF‐8"?> <!DOCTYPE 根元素 SYSTEM "bookshelf.dtd"><!‐‐外部本地DTD‐‐> <根元素> </根元素>3. 外部DTD
<?xml version="1.0" encoding="UTF‐8"?> <!DOCTYPE web‐app PUBLIC "‐//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web‐app_2_3.dtd"> <web‐app> </web‐app>六、使用dtd定義元素
1.約束元素的嵌套層級
語法:
<!ELEMENT 父標簽 (子標簽1,子標簽2,…)>2.約束元素體里面的數(shù)據(jù)
<!ELEMENT 標簽名字 標簽類型>標簽類型:
3.數(shù)量詞
4.屬性聲明
<!ATTLIST 標簽名稱 屬性名稱1 屬性類型1 屬性說明1 屬性名稱2 屬性類型2 屬性說明2 … >屬性類型:
屬性說明:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE books[<!ELEMENT books (book+)><!ELEMENT book (name,writer,time,price)><!ELEMENT name (#PCDATA)><!ELEMENT writer (#PCDATA)><!ELEMENT time (#PCDATA)><!ELEMENT price EMPTY> ]> <books><book><name>三體</name><writer>劉慈欣</writer><time>2008.1</time><price></price></book><book><name>平凡的世界</name><writer>路遙</writer><time>1986.12</time><price></price></book> </books>七、w3cschool實例代碼演示: ? ?(能看懂就行)
<!ELEMENT TVSCHEDULE (CHANNEL+)> <!ELEMENT CHANNEL (BANNER,DAY+)> <!ELEMENT BANNER (#PCDATA)> <!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)> <!ELEMENT HOLIDAY (#PCDATA)> <!ELEMENT DATE (#PCDATA)> <!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)> <!ELEMENT TIME (#PCDATA)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT DESCRIPTION (#PCDATA)><!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED> <!ATTLIST CHANNEL CHAN CDATA #REQUIRED> <!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED> <!ATTLIST TITLE RATING CDATA #IMPLIED> <!ATTLIST TITLE LANGUAGE CDATA #IMPLIED> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE TVSCHEDULE SYSTEM "cctv.dtd"> <TVSCHEDULE NAME="CCTV"><CHANNEL CHAN="5"><BANNER></BANNER><DAY><DATE></DATE><HOLIDAY></HOLIDAY></DAY></CHANNEL><CHANNEL CHAN="6"><BANNER></BANNER><DAY><DATE></DATE><PROGRAMSLOT VTR="xxx"><TIME></TIME><TITLE></TITLE></PROGRAMSLOT></DAY></CHANNEL> </TVSCHEDULE>?
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的XML简介及基本语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript案例练习
- 下一篇: java设计模式之委派模式