概念基礎
XML-可擴展標記語言
XML語言-描述數據(事物)本身
XSL-可擴展樣式表語言,指定數據(事物)的展現形式
DTD&Schema-定義XML語言的語法
XML在軟件開發中的應用:
軟件配置文件(tomcat,SSH)
網絡系統部署(Deploy文件)
編程表現:(結合XSL,不常用)
<?xml version="1.0" encoding="utf-8"?>
<學生們>
<學生>
<學號>01112159</學號>
<姓名>劉達</姓名>
</學生>
<學號>01112160</學號>
<姓名>李林</姓名>
<學生>
<學號>01112161</學號>
<姓名>樑偉</姓名>
</學生>
</學生們>
驗證一個XML文檔是否正確
編程驗證
XML Parser(例:IE,FIREFOX)
XML Editor(例:eclipse)
<?xml version="1.0" encoding="UTF-8"?>
<!--
XML聲明(該文檔爲XML文檔)
*<?,?>:處理命令的開始和結束
*version:版本號,取值:1.0
*standalone:是否是單獨的文檔(與外部文檔配套使用)取值:yes,no
*encoding:編碼,取值:utf-8,GB2312……
-->
<!-- 根元素,有且僅有一個 -->
<根元素名>
<標籤名>
<子標籤></子標籤>
<子標籤></子標籤>
</標籤名>
</根元素名>
<!--
XML命名規則
*名稱可以包含字母、數字以及其他字符,但是避免使用“.”,“:”字符
*名稱不能以數字或者標點符號開始
*名稱不能以字符“xml”開始
*名稱不能包含空格
-->
注:
xml必須有根元素
xml對大小寫敏感
xml元素必須正確的嵌套
xml屬性值必須加引號
實體引用:
擁有正確語法的XML被稱爲“形勢良好”的XML。
通過DTD驗證的XML是“合法”的XML。
DTD
DTD:文檔類型定義
作用:用來定義(約束)XML文檔的合法構建模塊,它用一系列的合法元素來定義文檔結構。
<!ELEMENT student (student+)>
<!ELEMENT student (name,age,sex)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT age(#PCDATA)>
<!ELEMENT sex(#PCDATA)>
DTD語法:
+ :至少有一個
, :必須按照定義的順序來寫
* :零個或多個
? :最多一個(零個或一個)
() :作爲一個組合
| :在列出的集合元素中,只要選擇一個就可以
在XML中引入DTDWENJ :
<!DOCTYPE students SYSTEM "student.dtd">
DTD文檔聲明和引用
1、內部DTD文檔:
<!DOCTYPE students[
<!ELEMENT students(students+)>
<!ELEMENT student(name,age,sex)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT age(#PCDATA)>
<!ELEMENT sex(#PCDATA)>
]>
2、外部DTD文檔:
<!DOCTYPE students SYSTEM "students.dtd">
3、內外部DYD文檔混合引用
<!DOCTYPE students SYSTEM "students.dtd"[
<!ELEMENT……>
]>
SYSTEM 表示本地DTD文檔
PUBLIC 表示公共的DTD文檔,跟URL地址
DTD ELEMENT 語法(元素語法):
- EMPTY: 空元素,不能包含子元素,但可以有屬性
- ANY: 可以包含任何字符數據,如果有子元素,只能用DTD裏定義的元素
- #PCDATA: 可以包含任何字符數據,但是不包含任何子元素
其他類型: 比如集合,例如
<!ATTLIST element name
attr_name type_name attr_desc
attr_name type_name attr_desc
>
<!--例如 -->
Attrbute Type:
- CDATA:字符數據,放置文本
- ID: 表示屬性的值不能重複,不能以數字開頭
- IDREF/IDREFS(ID references):表示該屬性的值需要去參照另外一個類型爲ID的屬性值(相當於db裏的外鍵關聯),關聯一個用IDREF,多個用IDREFS,多個屬性值用空格隔開
<student id="stu003" team="stu001 stu002">
Attrbute Decription:
- #REQUIRED:必須有
- #IMPLIED:可以有
- #FIXED value:如果有,值必須是value
- default value:如果不指定值,默認value
ENTITY/ENTITYS 實體:
- 引用實體
主要用在XML文檔中(例如:大於號:>)
- 語法格式
<!ENTITY copyright "Copyright (c) Lala">
- 列表內容
©right;
- 語法格式
- 參數實體
主要被DTD文件自己使用
- 語法格式
<!ENTITY %entity_name "content">
- 引用方式
%entity_name;
例子:
- 語法格式
<!ENTITY %TAG_NAMES "姓名|EMAIL|電話|地址">
<!ELEMENT 個人信息 (%TAG_NAMES;|生日)>
<!ELEMENT 客戶信息 (%TAG_NAMES;|公司名)>
Schema
XML Schema 的作用是定義 XML 文檔的合法構建模塊,類似 DTD。
XML Schema 是基於 XML 的 DTD 替代者。
XML Schema 可描述 XML 文檔的結構。
XML Schema 語言也可作爲 XSD(XML Schema Definition)來引用。