xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xml為可擴展的標記語言,它允許用戶自定義標籤,一個標籤用於表述一段數據,一個標籤有開始和結束,在開始和結束之間,又可以用其它標籤描述數據。

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

元素 element

1元素是xml文檔中最重要的組成部分

2普通元素的結構開始標籤、元素體、結束標籤組成。例如:大家好

3元素體:元素體可以是元素,也可以是文本,例如

4空元素:空元素只有開始標籤,而且沒有結束標籤,但是元素必須自己閉合,例如

元素命名:

A區分大小寫

B不能使用空格,不能使用冒號

C不建議以xml,Xml,XML開頭

D不能以數字或者下劃線開頭

格式化良好的xml文檔,必須只有一個根元素。

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

屬性也要遵循如下規則:

A區分大小寫

B不能使用空格,不能使用冒號

C不建議以xml,Xml,XML開頭

D不能以數字或者下劃線開頭

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

在編寫xml文件時,有些內容不可能不想讓解析引擎解析,而當作原始內容處理,遇到這種情況時,可以把這些內容放到CDATA內,xml解析程序不會處理,而是原封不動的輸出

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

什麼是xml約束?

在xml約束技術裡,可以編寫一個文檔來約束一個xml文檔的書寫規範,這個就是xml約束

常用的xml約束有兩種技術 : xml dtd xml Schema

dtd是什麼?

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

dtd的引入有三種方式

1. 內部dtd,在xml文檔的內部嵌入DTD,只對當前XML有效

Xml version="1.0" encoding="utf-8" standalone="yes" ?>

….//具體的語法

]>

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

元素名是自定義的,元素描述分為常見符號和常見類型

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

屬性語法

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

一般來說dtd約束文檔並非需要我們寫,而是一般寫好了,而我們只需要讀懂它,然後根據約束文檔,寫我們所需要的xml文件,下面進行實例演練

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

這個dtd文檔不是普通的文檔,而是servlet2.3規範,

如果在xml使用當前DTD約束,必須包括DOCTYPE。格式如下:

#PCDATA為文本

一般dtd約束給定之後,我們根據這個dtd寫xml文件,一般不唯一,因為有些東西可以寫一個,也可以寫多個,但基本上按照它的約束可以寫出一個基本需要的xml文件

我們在引入dtd文檔之後,在eclipse中寫相應的xml文檔會方便很多,原因就是它會給提示

下面按照dtd約束寫xml,標籤寫一次或或多次的就寫一次,這樣演示翻遍

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

"1.0" encoding="UTF-8"?>

根據這個dtd寫出來的xml就是servlet中常用的xml文件

Xml Schema是xml語言,是一種用於定義和描述xml文檔結構與內容的模式語言,其出現是為了克服DTD的侷限性

一個 xml Schema文檔通常稱之為模式文檔(約束文檔),遵循這個文檔書寫的xml文件稱之為實例文檔

和xml文件一樣,一個xml Schema文檔必須有一個根節點為Schema

如果一個xml文檔中使用多個Schema文件,但當多個文件有同名的元素的時候就會發生衝突,所以命名空間可以理解為包,這樣相同的名稱的元素也不會發生問題

以後只要時""

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

可以理解為類似導入包一個意思,導入包之後就可以用包中的內容了

上面使用dtd寫了一個約束文件,約束的內容是servlet的配置文件,下面的xsd也是約束servlet的文件

web-app_2_5.xsd

"http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.example.org/web-app_2_5"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:tns="http://www.example.org/web-app_2_5"

elementFormDefault="qualified">

"web-app">

"0" maxOccurs="unbounded">

"servlet">

"servlet-name">

"servlet-class">

"servlet-mapping">

"servlet-name">

"url-pattern" maxOccurs="unbounded">

"welcome-file-list">

"welcome-file" maxOccurs="unbounded">

"version" type="double" use="optional">

這個是schema的形式的servlet的約束文檔,要想使用需要需要在xml文件中引入

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"

version="2.5">

按照它的要求編寫完成是這樣的

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

Xsd文件中

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xsd:element表示元素,按照這個約束寫一般就只寫這些元素,寫的時候一般都有提示

xml解析

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

Xml dom和html dom差不多,xml dom將整個xml文檔加載到內存,生成一個DOM樹,並獲得一個Document對象,並通過Document對象就可以對DOM進行操作

DoM的核心概念就是節點,在xml文檔中元素,屬性,文本等都是dom節點

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

這個文檔都對應的dom樹是

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

Dom4j必須使用核心類SaxReader加載xml獲得document,並通過document獲得根元素,然後通過下面的api來獲取相應的元素

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

元素對象.attribute("屬性名")獲得指定屬性名的屬性對象.getValue();獲得這個屬性的值

或者直接 元素對象.attributeValue("屬性名")

舉例:

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

xml語言,dtd約束是什麼,xml的屬性語法,xml文檔的dom樹的講解

注意路徑cn.huanfeng.xml,應該寫成cn/huanfeng/xml,不宜該再寫點了,為包路徑


分享到:


相關文章: