<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                > DTD(文檔類型定義)的作用是定義 XML 文檔的合法構建模塊。這篇文章作簡單介紹下DTD的用法。想學習完整的請點擊下面w3c的教程。 ### 1.[DTD官方教程](http://www.runoob.com/dtd/dtd-tutorial.html) ##2.xml約束技術: DTD約束:語法相對簡單,功能也相對簡單。先出現 Schema約束:語法相對復雜,功能也相對強大。采用和xml語法類似的編寫方式,Schema約束出現就是為了替換DTD約束。 ### 3.DTD簡介: ??文檔類型定義(DTD)可定義合法的XML文檔構建模塊。它使用一系列合法的元素來定義文檔的結構。DTD 可被成行地聲明于 XML 文檔中,也可作為一個外部引用。 ### 3.1導入DTD的方式: 1.內部導入: ~~~ #導入方式: <!DOCTYPE root-element [element-declarations]> #實例: <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body> </note> ~~~ 1. (第二行)定義此文檔是 note(根標簽) 類型的文檔。 1. (第三行)定義 note 元素有四個元素(標簽):”to、from、heading,、body” 1. (第四行)定義 to 元素為 “#PCDATA” 類型 1. (第五行)定義 frome 元素為 “#PCDATA” 類型 1. (第六行)定義 heading 元素為 “#PCDATA” 類型 1. (第七行)定義 body 元素為 “#PCDATA” 類型 2.外部導入方式: ??本地文件: ~~~ #導入方式: <!DOCTYPE note SYSTEM "note.dtd"> #note.dtd文件內容: <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ~~~ ??公共的外部導入:一般項目采用公共外部導入,比如ssh的xml文件基本上就是采用了這種方式 ~~~ #導入方式: <!DOCTYPE 根元素 PUBLIC "http://rlovep.com/peace.dtd"> #如hibernate.cfg.xml: <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> ~~~ ### 3.2DTD語法: ??1.約束標簽 ?語法: ~~~ <!ELEMENT 元素名稱 類別> 或 <!ELEMENT 元素名稱 (元素內容)> ~~~ ?類別: 1. 空標簽: EMPTY。 表示元素一定是空元素.例如:<bb/>: ~~~ 順序問題: <!ELEMENT 元素名稱 (子元素名稱 1,子元素名稱 2,.....)>: 按順序出現子標簽 次數問題: 標簽 : 必須且只出現1次。 標簽+ : 至少出現1次 標簽* : 0或n次。 標簽? : 0 或1次。 聲明"非.../既..."類型的內容 ~~~ ??2.約束屬性: ?語法: ~~~ <!ATTLIST 元素名稱 屬性名稱 屬性類型 默認值> ~~~ ?屬性類型: ~~~ CDATA :表示普通字符串 (en1|en2|..): 表示一定是任選其中的一個值 ID:表示在一個xml文檔中該屬性值必須唯一。值不能以數字開頭 ~~~ ?默認值: ~~~ #REQUIRED 屬性值是必需的 #IMPLIED 屬性不是必需的 #FIXED value 屬性不是必須的,但屬性值是固定的 ~~~ ### 3.3測試如下,請細看注釋: ~~~ <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from+,heading*,body?,(br|b))> <!--帶有子序列的元素,需要按照先后順序出現; to只能出現一次 from最少出現一次 heading次數隨意 body出現零次或者一次 非出現br就出現b --> <!--元素約束--> <!ELEMENT to (#PCDATA)><!--pcdata元素--> <!ELEMENT from ANY><!--任何內容的元素--> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> <!ELEMENT br EMPTY><!--空元素--> <!ELEMENT b EMPTY><!--空元素--> <!--屬性約束--> <!ATTLIST to number CDATA #REQUIRED><!--必須有屬性值出現,且屬性值類型為字符串--> <!ATTLIST from length CDATA "10"><!--默認屬性值,不寫出屬性時屬性值為10--> <!--假如您不希望強制作者包含屬性,并且您沒有默認值選項的話,請使用關鍵詞 #IMPLIED。--> <!ATTLIST heading length CDATA #IMPLIED> <!ATTLIST body length CDATA #FIXED "123"><!--屬性擁有固定的值,并不允許作者改變這個值--> <!ATTLIST br type (check|cash) "cash"><!--屬性值可以為check和cash中的一個--> ]> <note> <to number="1234">Tove</to> <from>Jani</from> <heading length="10">Reminder</heading> <body length="123">Don't forget me this weekend</body> <br type="check"/> </note> ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看