<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 閱讀(1001) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 国产成人精品日本亚洲直接| 亚洲av无码无在线观看红杏| 亚洲中文无码mv| 永久免费av无码不卡在线观看| 精品亚洲成a人片在线观看少妇| 免费人成网站在线观看不卡| 永久亚洲成a人片777777| 久久er国产精品免费观看8| 中文字幕久久亚洲一区| 91在线视频免费观看| 亚洲春色在线视频| 久草免费福利资源站| 亚洲黄色免费观看| 男女免费观看在线爽爽爽视频 | 免费被黄网站在观看| 亚洲最大无码中文字幕| 免费高清资源黄网站在线观看| 亚洲欧美成人综合久久久| 免费a级毛片视频| 狠狠躁狠狠爱免费视频无码| 亚洲AV综合色一区二区三区| 99久久免费看国产精品| 波多野结衣亚洲一级| 一级毛片直播亚洲| 成人网站免费看黄A站视频| 亚洲短视频在线观看| 日韩一级视频免费观看| caoporn国产精品免费| 久久亚洲熟女cc98cm| 毛片A级毛片免费播放| h视频在线观看免费| 久久久久久久亚洲Av无码| 在线中文高清资源免费观看| 成人福利在线观看免费视频| 亚洲AV天天做在线观看| 99视频在线精品免费观看6| 添bbb免费观看高清视频| 婷婷久久久亚洲欧洲日产国码AV| 欧洲乱码伦视频免费| 国产高清视频免费在线观看| 337p日本欧洲亚洲大胆艺术|