java web一: xml
xml:extensible markup language(可擴(kuò)展標(biāo)記語言),xml是由w3c組織發(fā)布.
在現(xiàn)實(shí)生活中,存在大量有關(guān)系的數(shù)據(jù). 如下:
? ? 那么,這樣的數(shù)據(jù)如果交給計(jì)算機(jī)處理呢?
? ? ? ? ?xml的出現(xiàn)就是為了描述生活中經(jīng)常出現(xiàn)的有關(guān)系的數(shù)據(jù)。
? ?在xml語言中,它允許用戶自定義標(biāo)簽。一個(gè)標(biāo)簽用于描述一段數(shù)據(jù);一個(gè)標(biāo)簽可分為開始標(biāo)簽和結(jié)束標(biāo)簽。在開始標(biāo)簽和結(jié)束標(biāo)簽之間,又可以使用其他標(biāo)簽來描述其他數(shù)據(jù),以此來實(shí)現(xiàn)數(shù)據(jù)關(guān)系的描述。
? ?xml技術(shù)除了用于保存有關(guān)系的數(shù)據(jù)之外,它還經(jīng)常用作軟件配置文件,以描述程序模塊之間的關(guān)系。
? ?
? ?編寫xml文檔:
? ? ? ?在編寫xml文檔時(shí),需要先使用文檔聲明,聲明xml文檔的類型。
? ? ? ?最簡(jiǎn)單的聲明語法: ?<?xml version="1.0" ?> ?
? ? ? ?可以使用encoding屬性說明文檔的文字編碼?<?xml version="1.0" encoding="UTF-8"?>
? ? ? ?用standalone屬性說明文檔是否獨(dú)立?<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
? ? ? ?元素:
? ? ? ? ?xml元素是指xml中出現(xiàn)的標(biāo)簽。一個(gè)標(biāo)簽有如下幾種書寫形式。
? ? ? ? ?包含標(biāo)簽體: <a>www.csdn.com</a>
? ? ? ? ? 不包含標(biāo)簽體:<a></a> 簡(jiǎn)寫為<a/>
? ? ? ? 元素命名規(guī)范: 1. 元素區(qū)分大小寫. <p>和<P>是兩個(gè)不同的標(biāo)記. ? ? 2. 不能以數(shù)字和"_"(下劃線)開頭
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3. 不能以xml開頭 ? 4. 不能包含空格? ? 5. 名稱中間不能包含冒號(hào)(:)
? ? ? 屬性:
? ? ? ? ? 一個(gè)標(biāo)簽可以有多個(gè)屬性,每個(gè)屬性都有它自己的名稱和取值.
? ? ? ? ? 例如 <input name="text">
? ? ? ? ?屬性值一定要用單引號(hào)或雙引號(hào)括起來。
? ? ? ? 定義屬性必須遵循和標(biāo)簽相同的命名規(guī)范。
? ? ? ? ? 在xml技術(shù)中,標(biāo)簽屬性所代表的信息,也可以被改成用子元素的形式來描述,例如:
? ? ? ? ?<input>
? ? ? ? ? ? ? ? ? <name>text</name>
? ? ? ? </input> ?
? ? ? 處理指令:
? ? ? ? ? ? 處理指令簡(jiǎn)稱PI(processing instruction).處理指令用來指揮解析引擎如何解析xml文檔內(nèi)容。
? ? ? ? ? ? 例如: 在xml文檔中可以使用xml-stylesheet指令,通知xml解析引擎,應(yīng)用css文件顯示xml文檔內(nèi)容。
? ? ? ? ? ? ? ? <?xml-stylesheet type="text/css" href="1.css"?>
? ? ? ? ? ? 處理指令必須以"<?"開頭,以"?>"作為結(jié)尾,xml聲明語句就是最常見的一種處理指令。
?
? xml約束:
? ? ? ? 在xml技術(shù)里,可以編寫一個(gè)文檔來約束一個(gè)xml文檔的書寫規(guī)范,這稱之為xml約束。
? ? ? ? ?常見的約束技術(shù):
? ? ? ? ? ?xml dtd, ?xml schema
? ? ? ? ? ? DTD(document type definition) 全稱為: 文檔類型定義
? ? ? ? ? ? ? ? ? dtd約束既可以作為一個(gè)單獨(dú)的文件編寫,也可以在xml文件內(nèi)編寫。
? ①dtd約束既可以作為一個(gè)單獨(dú)的文件編寫
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE country SYSTEM "province.dtd"><country><province><name>上海</name><nickname>滬</nickname></province><province><name>河南</name><nickname>豫</nickname></province></country>? ? 如下為: province.dtd文件 ? ? ??
<!ELEMENT country (province+)> <!ELEMENT province (name,nickname)> <!ELEMENT name (#PCDATA)> <!ELEMENT nickname (#PCDATA)>? ?ps: dtd文件應(yīng)該使用UTF-8 或unicode保存
??
在IE瀏覽器中打開xml文件,ie瀏覽器不會(huì)自動(dòng)校驗(yàn)xml是否遵循dtd約束,那么就需要我們自己編寫一個(gè)html文件,使用javascript來校驗(yàn)xml文件。
<html><head><meta charset="utf-8"><script>var xmldoc = new ActiveXObject("Microsoft.XMLDOM");xmldoc.validateOnParse = true;xmldoc.load("config.xml");document.write("錯(cuò)誤的原因:"+xmldoc.parseError.reason+"<br/>");document.write("錯(cuò)誤的行號(hào):"+xmldoc.parseError.line);</script></head><body></body> </html>? ② 在xml文件內(nèi)編寫dtd
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE country[ <!ELEMENT country (province+)> <!ELEMENT province (name,nickname)> <!ELEMENT name (#PCDATA)> <!ELEMENT nickname (#PCDATA)> ]> <country><province><name>上海</name><nickname>滬</nickname></province><province><name>河南</name><nickname>豫</nickname></province> </country>?DOCTYPE聲明語句 ?
xml文件通過使用DOCTYPE聲明語句來指明它所遵循的DTD文件,DOCTYPE聲明語句有兩種形式。
? ? ?①當(dāng)引用的文件在本地時(shí),采用如下方式:
? ? <!DOCTYPE 文檔根節(jié)點(diǎn) ?SYSTEM "DTD的URL" >? 如:?<!DOCTYPE country SYSTEM "province.dtd">
? ? ?②當(dāng)引用的文件是一個(gè)公共文件時(shí),采用如下方式:
? ?<!DOCTYPE 文檔根節(jié)點(diǎn) ?PUBLIC "DTD名稱" ? "DTD的URL"> 如下:
? ?<!DOCTYPE struts PUBLIC
? ? "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
? ? "http://struts.apache.org/dtds/struts-2.0.dtd">
? ?DTD的語法細(xì)節(jié)
? ? ? 元素:在DTD文檔中使用ELEMENT聲明一個(gè)xml元素,語法如下:<!ELEMENT 元素名稱 元素類型>
? ? ? ①元素類型可以是元素內(nèi)容,或類型。
? ? ? 如果為元素內(nèi)容,則需要使用()括起來,如下:
? ? ? ? ?<!ELEMENT province (name,nickname)> ?如果內(nèi)容用逗號(hào)分隔,則xml中使用的順序必須與dtd中聲明的順序一致。
? ? ? ? <!ELEMENT province (name|nickname)> ?如果內(nèi)容用|分隔,表示任選其一,即多個(gè)只能出現(xiàn)一個(gè)。
? ? ? ? <!ELEMENT province (name|nickname)*> ?表示對(duì)出現(xiàn)順序沒有要求。
? ? ? ? ?<!ELEMENT name (#PCDATA)>
? ? ? ?在元素內(nèi)容中,可以使用+,*,?等符號(hào)表示元素出現(xiàn)的次數(shù):
? ? ? ? ? ? +:一次或多次 ? ? ? ?:0次或一次 ? ? ? ?*: 0次或多次
? ? ?如果為元素類型,則直接書寫,?DTD規(guī)范定義了如下幾種類型:
? ? ? ?EMPTY:用于定義空元素,如<hr/>,<br/>
? ? ? ? ANY:表示元素內(nèi)容為任意類型。
? ? ? ? ②?dtd中定義元素的屬性:
? ? ?
?常用屬性值類型
?
<?xml version="1.0" encoding="gb2312" ?><!DOCTYPE 聯(lián)系人列表[<!ELEMENT 聯(lián)系人列表 ANY><!ELEMENT 聯(lián)系人 (姓名,EMAIL)><!ELEMENT 姓名 (#PCDATA)><!ELEMENT EMAIL (#PCDATA)><!ATTLIST 聯(lián)系人 編號(hào) ID #REQUIRED> ]><聯(lián)系人列表><聯(lián)系人 編號(hào)="a1"><姓名>張三</姓名><EMAIL>zhang@it315.org</EMAIL></聯(lián)系人><聯(lián)系人 編號(hào)="a2"><姓名>李四</姓名><EMAIL>li@it316.org</EMAIL></聯(lián)系人> </聯(lián)系人列表>?
?
總結(jié)
以上是生活随笔為你收集整理的java web一: xml的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端三十一:标签的属性
- 下一篇: java web二: xml编程(CRU