<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tbwshc

    xml約束

    xml約束
    編寫一個文檔來約束一個xml文檔的書寫規范

    常用的約束技術

    XML DTD
    XML Schema

    DTD(Document Type Definition),全程為文檔類型定義
    舉例:
    文件清單:book.xml

    Java代碼  
    1. <?xml version="1.0" encoding="UTF-8"?>   
    2. <!DOCTYPE 圖書 SYSTEM "book.dtd">          
    3. <圖書>   
    4.      <書>   
    5.             <書名>西游記</書名>   
    6.             <作者>吳承恩</作者>     
    7.             <售價>18</售價>     
    8.      </書>   
    9.      <書>   
    10.           <書名>三國演義</書名>   
    11.           <作者>羅貫中</作者>     
    12.           <售價>20</售價>   
    13.      </書>    
    14. </圖書>  

       文件清單:book.dtbd

    Java代碼  
    1. <?xml version="1.0" encoding="UTF-8"?>   
    2. <!ELEMENT 圖書 (書+)>   
    3. <!ELEMENT 書 (書名,作者,售價)>   
    4. <!ELEMENT 書名 (#PCDATA)>   
    5. <!ELEMENT 作者 (#PCDATA)>   
    6. <!ELEMENT 售價 (#PCDATA)>  

     

     

    ELEMENT 元素

    PCDATA 的意思是已經解析的字符數據,文本中的標簽會被當作標記來處理,而實體會被展開。
    用book.dtd約束book.xml,如果在book.xml的書標簽下添加出版日期,會報錯,因為文檔格式已經固定。
    注意:DTD文件應使用utf-8保存或者encoding="gb2312",否則會報錯。

    引用DTD約束
    xml文件使用DOCTYPE聲明語句來指明它所遵循的DTD文件,聲明語句有兩種形式
    (1)當引用的文件在本地時 ,采用如下方式:
    <!DOCTYPE 文檔根節點 system "DTD文件的URL"> 
    例如:<!DOCTYPE 圖書 SYSTEM "book.dtd">  
    (2)當引用的文件是一個公共的文件時 ,采用如下方式:
    <!DOCTYPE 文檔根節點 public "DTD名稱" "DTD文件的URL">
    例如:<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
     "http://struts.apache.org/dtds/struts-config_1_3.dtd">
     struts2的DTD文件,一般做框架都會用到DTD

    DTD約束語法細節
    元素定義
    屬性定義
    實體定義

    元素定義
    在DTD文件中使用element聲明一個xml元素,語法格式所示:
    <!ELEMENT 元素名稱 元素類型>
    (1)元素類型可以是元素內容或者類型
    如為元素內容:則需要使用()括起來,如
    <!ELEMENT 書 (書名,作者,售價)>
    <!ELEMENT 書名 (#PCDATA)>
    (2)如為元素類型,則直接書寫 ,DTD規范定義如下幾種類型:
    EMPTY:用于定義空元素,例如<br></br>
    ANY:表示元素內容為任意類型
    -----------------------------------------------------
    元素內容可以使用如下方式,描述內容的組成關系用逗號分隔,表示內容的出現順序必須與聲明時一致
    用逗號分隔,表示內容的出現順序必須與聲明時一致。
    <!ELEMENT 書 (書名,作者,售價)>
    用|分隔,表示任選其一,即多個只能出現一個
    <!ELEMENT 書 (書名|作者|售價)>
    在元素內容中也可以使用+,*,?等符號表示元素出現的次數:
    +:一次或多次(書+)
    0:0次或一次(書?)
    *:0次或多次(書*)
    什么都不寫 (書)只出現一次

    也可以使用原括號()批量設置,例
    <!ELEMENT 書((書名*,作者?售價)*|COMMENT)>

    屬性定義
    xml文檔的標簽性需要通過ATTLIST為其設置屬性
    語法格式:
    <!ATTLIST 元素名
    屬性名1 屬性值類型 設置說明
    屬性名2 屬性值類型 設置說明
    ......
    >
    屬性聲明舉例
    <!ATTLIST 圖書
      書名 CDATA #REQUIRED
      售價 CDATA #IMPLED
    >
    對應xml文件:
    <圖書 書名="三國演義" 售價="20">...</圖書>
    <圖書 書名="西游記" 售價="18">...</圖書>
    設置說明:
    #REQUIRED 必須設置該屬性
    #IMPLED 可以設置也可以不設置
    #FIXED:說明該屬性的值固定為一個值
    直接使用默認值:在xml中可以設置該值也可以不設置該屬性值。如果沒設置則使用默認值
    舉例:
    <!ATTLST 圖書
    書名 CDATA #REQUIRED
    售價 CDATA #IMPLED
    類別 CDATA #FIXED "文學"
    評價 CDATA "好"
    >
    -----------------------------------------------
    CDATA表示屬性值為普通文本字符串
    ENUMERATED(枚舉)
    ID,表示設置值為一個唯一值,ID屬性的值只能由字母,下劃線開始,不能出現空白字符
    ENTITY(實體)


    實體定義
    實體用于為一段內容創建一個別名,以后在xml文檔中就可以使用別名引用這段內容
    在DTD定義一個實體,一條<!ENTITY>語句用于定義一個實體
    實體可分為兩種類型:引用實體個參數實體
    (1)引用實體主要在xml文檔中被應用
    語法格式:
    <!ENTITY 實體名稱 "實體內容">: 直接轉變成實體內容
    引用方式:
    &實體名稱;
    舉例
    <!ENTITY name "I am a student">
    .....
    &name;
    (2)參數實體被DTD文件自身使用
    語法格式:
    <!ENTITY % 實體名稱 "實體內容">
    &實體名稱;

     

    在struts1里action標簽必須要設置的屬性:path

    Java代碼  
    1. <!ELEMENT action (icon?, display-name?, description?, set-property*, exception*, forward*)>   
    2. <!ATTLIST action         id             ID              #IMPLIED>   
    3. <!ATTLIST action         attribute      %BeanName;      #IMPLIED>   
    4. <!ATTLIST action         className      %ClassName;     #IMPLIED>   
    5. <!ATTLIST action         forward        %RequestPath;   #IMPLIED>   
    6. <!ATTLIST action         include        %RequestPath;   #IMPLIED>   
    7. <!ATTLIST action         input          %RequestPath;   #IMPLIED>   
    8. <!ATTLIST action         name           %BeanName;      #IMPLIED>   
    9. <!ATTLIST action         parameter      CDATA           #IMPLIED>   
    10. <!ATTLIST action         path           %RequestPath;   #REQUIRED>   
    11. <!ATTLIST action         prefix         CDATA           #IMPLIED>   
    12. <!ATTLIST action         roles          CDATA           #IMPLIED>   
    13. <!ATTLIST action         scope          %RequestScope;  #IMPLIED>   
    14. <!ATTLIST action         suffix         CDATA           #IMPLIED>   
    15. <!ATTLIST action         type           %ClassName;     #IMPLIED>   
    16. <!ATTLIST action         unknown        %Boolean;       #IMPLIED>   
    17. <!ATTLIST action         validate       %Boolean;       #IMPLIED>  

    posted on 2012-07-27 15:00 chen11-1 閱讀(1000) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产成人精品日本亚洲专区6| 亚洲人成影院在线| 亚洲人成网亚洲欧洲无码| 日韩免费高清一级毛片在线| 亚洲视频精品在线观看| 三年片在线观看免费观看大全一 | 永久免费在线观看视频| 亚洲成A人片在线观看无码不卡| 中文字幕手机在线免费看电影 | 婷婷亚洲天堂影院| sss日本免费完整版在线观看| 亚洲中文字幕无码专区| a级毛片免费全部播放| 亚洲国产第一页www| 在线观看永久免费| 亚洲精品无码中文久久字幕| 日本人护士免费xxxx视频| 国产成人综合亚洲一区| 亚洲一区二区视频在线观看| 一个人免费视频观看在线www | 亚洲视频在线免费看| 亚洲国产成人久久精品软件| 亚洲伦乱亚洲h视频| 一级毛片免费观看不卡的| 最新亚洲精品国偷自产在线| 亚洲毛片av日韩av无码| 在线免费观看你懂的| 亚洲国产午夜精品理论片在线播放| 亚洲成av人片一区二区三区 | AV激情亚洲男人的天堂国语| 中文字幕第一页亚洲| 8888四色奇米在线观看免费看| 97se亚洲国产综合自在线| 又粗又硬免费毛片| 污污网站18禁在线永久免费观看| 亚洲1234区乱码| 久久久久亚洲AV成人网人人软件| 中文免费观看视频网站| a级毛片免费网站| 中文字幕亚洲情99在线| 亚洲精品乱码久久久久久蜜桃不卡|