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