xml基礎

xml數據的存儲和數據的交換,標籤中的內容<film><book>
hmtl數據的顯示,機器
都是從SGML發展過來的
xml的好處:
 可擴展的沒有自己的標籤servlet中的web.xml配置文件
 (xml的文檔,在java中讀取,java中有包,設計模式)
 xml智能搜索,局部刷新ajax
 
 DTD
 DOM
 CSS
 XSL
 Schema
 XPATH XPoint

格式良好的文檔
 1、第一句話必須是聲明語句<!--?xml必須緊挨着-->
 2、必須有一個根元素
 3、開始元素和結束元素必須成對出現(空標記例外)
 4、大小寫敏感
 5、標籤的正確嵌套<b><i></i></b>
 6、屬性,必須是成對出現 屬性名=值,值必須是雙引號或者單引號書寫(建議雙引號)
元素和標記的區別
標記是單個的
元素時整體
 簡單元素,文本字符串
 複雜元素,由子元素構成
 混合元素:包括簡單元素和複雜元素


數據交換DTD文檔和schema文檔Document Type Definition
 DTD校驗,保證數據的一致性
 1、內部DTD standlone="yes"
 聲明的時候
 <!DOCTYPE books[

 混合類型(元素的名稱和元素的描述之間的空格不可少)
 <!ELEMENT books (book+)>

 複雜類型,有順序的
 <!ELEMENT book (name,author,price)>

 元素的描述,屬性的描述
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT price (#PCDATA)>
 <!ELEMENT author (#PCDATA)>簡單類型
  ]>
 standalone="yes"
 示例:
 <?xml version="1.0" encoding="gb2312" standalone="yes"?>
 <!DOCTYPE students[
 <!ELEMENT students (student+)>
 <!ELEMENT student (name, age, score, sex)>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT age (#PCDATA)>
 <!ELEMENT score (#PCDATA)>
 <!ELEMENT sex (#PCDATA)>
 ]>
 <students>
  <student>
   <name>tom</name>
   <age>18</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student>
   <name>java</name>
   <age>12</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student>
   <name>jack</name>
   <age>45</age>
   <score>45</score>
   <sex>ff</sex>
  </student>
 </students>
 2、外部DTD
 standalone = "no" ;


.dtd文檔
 <?xml version="1.0" encoding="UTF-8"?>
 <!ELEMENT students (student+)>
 <!ELEMENT student (name, age, score, sex)>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT age (#PCDATA)>
 <!ELEMENT score (#PCDATA)>
 <!ELEMENT sex (#PCDATA)>
students.xml
 <?xml version="1.0" encoding="gb2312" standalone="yes"?>
 <!DOCTYPE students SYSTEM "studentDtd.dtd">
 <students>
  <student>
   <name>tom</name>
   <age>18</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student>
   <name>java</name>
   <age>12</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student>
   <name>jack</name>
   <age>45</age>
   <score>45</score>
   <sex>ff</sex>
  </student>
 </students>
3、公用DTD
定義屬性
<!ATTLIST 元素名稱
 屬性名稱 屬性類型 缺省值
 屬性名稱 屬性類型 缺省值
 ...
 >
REQUIRED  IMPLIED  FIXED  字符串
 studentDtd.dtd
 <?xml version="1.0" encoding="GB2312"?>
 <!ELEMENT students (student+)>
 <!ELEMENT student (name, age, score, sex)>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT age (#PCDATA)>
 <!ELEMENT score (#PCDATA)>
 <!ELEMENT sex (#PCDATA)>
 <!ATTLIST student id CDATA #REQUIRED
   telephone CDATA #IMPLIED
   school CDATA #FIXED "河南">

 students.xml
 <?xml version="1.0" encoding="gb2312" standalone="no"?>
 <!DOCTYPE students SYSTEM "studentDtd.dtd">
 <students>
  <student id="01" school="河南">
   <name>tom</name>
   <age>18</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student id="01">
   <name>java</name>
   <age>12</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student id="01">
   <name>jack</name>
   <age>45</age>
   <score>45</score>
   <sex>ff</sex>
  </student>
 </students>
 
屬性是ID類型的必須是以字母開頭或者是下劃線開始,並且不能重複
枚舉
cateary (編程語言|標記語言) "標記語言"
IDREF/IDREFS(多引用用 空格隔開)
CDATA的子集,NMTOKEN/NMTOKENS
 實例一:
 <?xml version = "1.0"  encoding="GB2312"  standalone = "yes"?>
 <!DOCTYPE 聯繫人列表[
     <!ELEMENT 聯繫人列表 ANY>
     <!ELEMENT 聯繫人 (姓名,EMAIL)>
     <!ELEMENT 姓名 (#PCDATA)>
     <!ELEMENT EMAIL (#PCDATA)>
     <!ATTLIST 聯繫人  編號  ID #REQUIRED>
     <!ATTLIST 聯繫人  上司  IDREF #IMPLIED>
     ]>

 <聯繫人列表>
     <聯繫人 編號="p1">
  <姓名>張三</姓名>
  <EMAIL>[email protected]</EMAIL>
     </聯繫人>

     <聯繫人  編號="p2"  上司="p2">
  <姓名>李四</姓名>
  <EMAIL>[email protected]</EMAIL>
      </聯繫人>
 </聯繫人列表>
 實例二:
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE root[
 <!ELEMENT root (數據)+>
 <!ELEMENT 數據 (#PCDATA)>
 <!ATTLIST 數據
     安全性 ( ON | OFF ) "OFF"
     授權用戶 NMTOKENS  #IMPLIED>
 ]
 >
 <root>
 <數據 安全性="ON" 授權用戶 = "WANG da">
 </數據>
 </root>

實體:
<!ENTITY sunday "今天天氣很好" >
引用的時候&sunday;
命名空間
 xmlns:前綴=命名空間
 xmlns=命名空間  --------->默認的命名空間

在java中使用xml

 

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