【JAVA WEB】學習筆記——XML介紹

概念基礎

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文檔中(例如:大於號:&gt;)
    • 語法格式

      <!ENTITY copyright "Copyright (c) Lala">
    • 列表內容

      &copyright;
  • 參數實體
    主要被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)來引用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章