XML約束

xml文檔書寫需要遵循的規則(dtd和schema)

1.DTD約束

1.1 概念:

document type definition文檔類型定義。

  dtd是關於一套標記的語法規則。它定義了可以在文檔中使用的元素,屬性和實體以及這些之間的關係。

1.2 dtd的使用:

xml文檔內部使用,也可以在外部使用(規則dtd文件是一個單獨的文件)

1.3dtd內部使用:
在xml文檔的頂部進行dtd的規則聲明:

<!DOCTYPE   根元素[子元素]>
<!ELEMENT  元素名 (元素類型)>
<!ATTLIST  元素名   屬性名   屬性類型  屬性的值的約束
  示例:<!ATTLIST  name ss CDATA  #REQUIRED>   給name元素添加ss屬性,而且必須要有該屬性。

  備註:   在屬性值中如果有實體引用出現必須轉義:(xml解析器要解析)
          實體引用: <  &lt;  >  &gt;  &  &amp;  "  &quot;  空格&nbsp;        
 額外:  如果不想使用xml解析器解析內容直接原樣輸出:
           <!CDATA[[不需要xml解析器解析的內容]]>              

 總結:
  #PCDATA:主要用於規定標籤的文本內容是字符類型。修飾的內容也要使用轉義。
            如果不想轉義,使用 <!CDATA[[不需要xml解析器解析的內容]]>  xml解析器   不解析了,直接原樣輸出,
   CDATA:主要是修改屬性的值爲字符型。xml解析器會解析,如果用到實體引用要轉義。

1.4 內部dtd約束示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE student[
<!ELEMENT  student (id,name,age)>
<!ELEMENT  id  (#PCDATA)>
<!ELEMENT  name  (#PCDATA)>
<!ELEMENT  age  (#PCDATA)>
]>

<student>
   <id>1001</id>
   <name>sky</name>
   <age>18</age>
</student>

1.5外部dtd約束本地文件: 重點

外部約束文件: student.dtd
<!ELEMENT  student (id,name,age)>
<!ELEMENT  id  (#PCDATA)>
<!ELEMENT  name  (#PCDATA)>
<!ELEMENT  age  (#PCDATA)>


xml引入本地dtd約束文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引用本地的外部dtd約束文件,struts2 ,mybatis數據庫 (配置文件xml dtd) -->
<!DOCTYPE student  SYSTEM "student.dtd">
<student>
<id>1001</id>
<name>sky</name>
<age>18</age>
</student>

1.6 外部dtd約束網絡文件: 重點

格式:

 <!DOCTYPE 根元素名稱 PUBLIC
    "名稱空間"
    "網絡dtd地址文件一般是http://開頭">

<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入外部的網絡dtd約束文件 
  如果是框架的,一般框架告訴開發者如何引用  ,根據約束提示來書寫xml文件
 -->    
 <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
</struts>

備註:如果加入以上約束,該xml文件不提示(原因是讀取不到網絡指定的約束文件),
     用戶自己配置本地的約束文件就可以進行提示,
   步驟: 1.Window-preferences- XML -XML Catalog- user Specified Entries -  Add -添加本地文件dtd  (URI 本地dtd對應的網絡地址)

2.schema約束
Schema是dtd約束的替代者。

2.1 Schema的規則地址:
http://www.w3school.com.cn/schema/schema_elements_ref.asp

 Schema約束文件的引入:

2.2 引入默認的命名空間萬維網組織:
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
備註: 切換xml的瀏覽模式到Design - 選中標籤元素-右鍵-Edit NameSpaces -
彈窗 Add- 選擇xsi默認確認即可
2.3 添加自己的約束文件(自己約束文件的命名空間和xsd位置): 重點
備註: 切換xml的瀏覽模式到Design - 選中標籤元素-右鍵-Edit NameSpaces -
彈窗 Add- Specified New NameSpace - Browse – 彈窗-
Select XML Catalog Entry - 查找自己的命名空間的內容–
具體後續看圖
練習操作 web.xml

 備註: xml約束主要是定義規則,根據規則提示寫xml配置文件。
 schema配置約束重點的重點,框架中很多配置文件都是使用xml約束。     
 json 和xml 進行數據存儲和傳遞配置

 web程序中 json主要用於數據存儲和傳輸  json結構簡單(json對象和數組)
 xml主要用於配置 (結構複雜,學習和解析很麻煩)         

這裏寫圖片描述

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