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

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

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

    隨筆 - 14, 文章 - 0, 評論 - 15, 引用 - 0
    數據加載中……

    學習java&XML第二天熟悉一下DTD

    DTD(Document Type Definition)文件類型描述

    第一點要注意的:DTD中的關鍵字必須全部大寫!

    一、DTD的位置
          
    DTD可以放在xml文檔里面:

    出自《XML入門》
    <?xml version = "1.0" encoding="GB2312" standalone = "yes"?>
    <!DOCTYPE 聯系人列表[
            <!ELEMENT 聯系人列表 (聯系人)*
    >
            
    <!ELEMENT 聯系人 (姓名,ID,公司,EMAIL,電話,地址)>
            
    <!ELEMENT 地址 (街道,城市,省份)>
            
    <!ELEMENT 姓名 (#PCDATA)>
            
    <!ELEMENT ID (#PCDATA)>
            
    <!ELEMENT 公司 (#PCDATA)>
            
    <!ELEMENT EMAIL (#PCDATA)>
            
    <!ELEMENT 電話 (#PCDATA)>
            
    <!ELEMENT 街道 (#PCDATA)>
            
    <!ELEMENT 城市 (#PCDATA)>
            
    <!ELEMENT 省份 (#PCDATA)>
        ]>
    <聯系人列表>
    ...................................

    放在里面的時候,應該注意“standalone = "yes"”
    也可以放在外面,放在外面有兩種形式,一種是引用本地文件,如:

    <?xml version = "1.0" encoding="GB2312" standalone = "no"?>
    <!DOCTYPE 聯系人列表 SYSTEM "fclml.dtd">
    <聯系人列表> 
    ..................

    引用的格式是:<!DOCTYPE 根元素名 SYSTEM "外部DTD文件的URL">
    另外一種是引用公共的文檔定義,如:
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
    格式為:<!DOCTYPE 根元素 PUBLIC "DTD名稱" "外部DTD的URL">
    其中DTD名稱解釋為:
    這個DTD標識的命名規則和XML文件的命名規則稍有不同。具體地說,DTD名稱只能包含字母、數字、空格和下面的符號:_%$#@()+:=/!*;?。同時,DTD名稱還必須符合一些標準的規定。例如,ISO標準的DTD以“ISO”三個字母開頭;被改進的非ISO標準的DTD以加號“+”開頭;未被改進的非ISO標準的DTD以減號“-”開頭。
    所以說struts的配置文件就是“未被改進的非ISO標準的DTD文檔”

    二、DTD的內容
    DTD文檔的內容總結下來有幾個比較重要也比較常用的:參數實體定義、元素定義和屬性定義
    1、參數實體定義
       實體實際上在XML當中充當宏定義或者別名之類的意思,也可以理解成public static String......
       參數實體是專門用在DTD當中的,你可以在下面兩項元素定義和屬性定義中引用參數實體。
       其定義方式如下:
       <!ENTITY % 實體名 "實體內容"> 注意,在XML中的實體定義是沒有%的
       或者是:
       <!ENTITY % 實體名 SYSTEM "外部文件名">
       引用方式:
       %實體名
        例子:
       <!ENTITY % Boolean "(true|false|yes|no)">表示定義了一個Boolean 的參數實體,值是"(true|false|yes|no)"
       在struts的配置文件的DTD中有如下描述:
       <!ATTLIST form-bean      dynamic        %Boolean;       #IMPLIED>
       也就定義了form-bean這個元素的dynamic屬性可以取得值是true、false、yes、no其中之一。

    2、元素定義
       用來定義元素的格式以及元素的子孫等。
       定義形式:    
       <!ELEMENT 元素名 元素內容描述>
       元素定義這里由于篇幅有限,僅列幾個例子
          1、<!ELEMENT 聯系人列表 ANY>表示聯系人列表這個元素的格式及其子孫都不受限制。
          2、<!ELEMENT 姓名(#PCDATA)>表示姓名這個元素只能包含文本數據
          3、<!ELEMENT 聯系人(姓名 EMAIL)>表示聯系人這個元素只能包含姓名和EMAIL兩種子孫,順序不限,并且姓名只能由一個,EMAIL也只能由一個。
          4、<!ELEMENT 聯系人(姓名,EMAIL)>表示聯系人這個元素只能包含姓名和EMAIL兩種子孫,有順序的限制,并且姓名只能由一個,EMAIL也只能由一個。
          5、<!ELEMENT 聯系人(姓名,EMAIL+)>表示聯系人必須有且僅有一個姓名子孫,有一個到多個EMAIL子孫,其中,如果+換作*,則表示零個或者多個。
          6、<!ELEMENT 聯系人(姓名,EMAIL)+>表示聯系人有一組到多組子孫,每組中有且僅有一對姓名和EMAIL
          7、<!ELEMENT 聯系人(姓名,(電話|EMAIL))>表示聯系人有一組到多組子孫,每組中第一個元素一定是姓名,第二個元素要么是電話,要么是EMAIL,兩者選一個。
          8、<!ELEMENT 聯系人 EMPTY>聯系人這個元素不包含任何子孫,也不包含文本。

    3、屬性定義
          格式:
    <!ATTLIST 元素名 (屬性名 屬性類型 缺省值)*>
          例子:
          
    1、<!ATTLIST 頁面作者
            姓名 #CDATA #IMPLIED
            年齡 #CDATA #IMPLIED
            聯系信息 #CDATA #REQUIRED
            網站職務 #CDATA #FIXED "頁面作者"
            個人愛好 #CDATA "上網">
          其中,定義了頁面作者這個元素的屬性可以有“姓名”,“年齡”,“聯系信息”,“網站職務”和“個人愛好”
          并且,姓名和年齡是純文本,可以沒有,聯系信息必須有,網站職務一定是“頁面作者”,個人愛好如果不填,則默認是上網。

          2、<!ATTLIST 肉 類型( 雞肉 | 牛肉 | 豬肉 | 魚肉 ) "雞肉">元素肉可以有“類型”屬性,類型屬性可以選擇 雞肉 | 牛肉 | 豬肉 | 魚肉其中一個,默認是“雞肉”
          3、<!ATTLIST 聯系人 編號 ID #REQUIRED>聯系人元素有且必須有編號屬性,其類型是ID型的,ID型或者是IDREF型的屬性值必須是一個有效的XML名稱,它由字母、數字或下劃線開始,名字中不能出現空白符。類似Html中的ID。
          4、另外類型NMTOKEN和NMTOKENS還有NOTATION類型我還不是太明白,那位明白的不妨給出^_^。

    posted on 2005-03-08 14:23 Boris-Java 閱讀(683) 評論(0)  編輯  收藏 所屬分類: java&xml

    主站蜘蛛池模板: 亚洲一区在线视频| 亚洲天堂免费在线视频| 亚洲熟妇色自偷自拍另类| 182tv免费视频在线观看| 亚洲精品无码AV人在线播放 | 日本免费网站观看| 亚洲中文字幕无码久久2020| 国产大片线上免费观看| 亚洲一卡2卡4卡5卡6卡残暴在线| 真人做A免费观看| 亚洲成a人片在线观看精品| 成年女人毛片免费观看97| 色偷偷亚洲男人天堂| 亚洲国产精品成人网址天堂| 黄床大片免费30分钟国产精品| 亚洲精品无码久久久影院相关影片| 91成人免费观看在线观看| 亚洲人成网www| 成年女人毛片免费视频| 日本中文字幕免费看| 国产亚洲综合网曝门系列| 99精品视频免费观看| 亚洲kkk4444在线观看| 国产免费怕怕免费视频观看| 亚洲免费无码在线| 亚洲伊人tv综合网色| 国产三级在线观看免费| 免费一级全黄少妇性色生活片 | 全部一级一级毛片免费看| 国产精品亚洲片在线观看不卡| 3344永久在线观看视频免费首页| 亚洲偷自拍另类图片二区| 亚洲精品无码成人片在线观看| 今天免费中文字幕视频| 亚洲国产成人99精品激情在线| 亚洲а∨天堂久久精品| 免费人成视频在线观看网站| 亚洲精品国产精品| 亚洲精品国产字幕久久不卡| 国色精品卡一卡2卡3卡4卡免费| 国产精品自拍亚洲|