日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【风马一族_xml】xmlp之dtd1

發布時間:2025/3/8 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【风马一族_xml】xmlp之dtd1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 什么是XML約束?
  •     在xml技術里,可以編寫一個文檔來約束一個xml文檔的寫法,這稱之為xml約束

      2. 為什么要使用xml約束?

        參看提示欄

      3. xml約束的作用?

  • 約束xml的寫法
  • 對xml進行校驗
  •   4. 常見的xml約束技術

  • xml? dtd
  • xml? Schema
  • -------------------------------------------------------------------------

    DTD 約束快速入門

  • dtd ( document type definition ) ,全稱為文檔類型定義
  • 示例
  • 1 ------------------沒有給xml設置約束-------------------------------- 2 -------------------------------book.xml--------------------------- 3 4 <?xml version="1.0" encoding="utf-8"?> 5 <書架> 6 <> 7 <書名>Java程序設計</書名> 8 <價格>¥59</價格> 9 <作者>風馬一族</作者> 10 </> 11 <> 12 <書名>C++程序設計</書名> 13 <價格>¥49</價格> 14 <作者>風馬一族</作者> 15 </> 16 </書架> 17 18 ---------使用DTD技術,給xml設置約束,使xml內容出現錯誤的示例----- 19 -----------------------book.xml------------book.dtd----------------------- 20 <?xml version="1.0" encoding="utf-8"?> 21 <!DOCTYPE 書架 SYSTEM "book.dtd"> 22 <書架> 23 <> 24 <書名>Java程序設計</書名> 25 <價格>¥59</價格> 26 <作者>風馬一族</作者> 27 </> 28 <> 29 <書名>C++程序設計</書名> 30 <價格>¥49</價格> 31 <作者>風馬一族</作者> 32 </> 33 </書架> 34 35 <!ELEMENT 書架(書+)> 36 <!ELEMENT 書(書名,作者,售價)> 37 <!ELEMENT 書名(#PCDATA)> 38 <!ELEMENT 作者(#PCDATA)> 39 <!ELEMENT 售價(#PCDATA)> 40 41 42 ---------使用DTD技術,給xml設置約束,使xml內容按照約束寫法的示例----- 43 -----------------------book.xml------------book.dtd----------------------- 44 45 <?xml version="1.0" encoding="utf-8"?> 46 <!DOCTYPE 書架 SYSTEM "book.dtd"> 47 <書架> 48 <> 49 <書名>Java程序設計</書名> 50 <作者>風馬一族</作者> 51 <售價>¥59</售價> 52 </> 53 <> 54 <書名>C++程序設計</書名> 55 <作者>風馬一族</作者> 56 <售價>¥59</售價> 57 </> 58 </書架> 59 60 <!ELEMENT 書架 (書+)> 61 <!ELEMENT 書 (書名,作者,售價)> 62 <!ELEMENT 書名 (#PCDATA)> 63 <!ELEMENT 作者 (#PCDATA)> 64 <!ELEMENT 售價 (#PCDATA)> xml的DTD技術約束
  • -------------------------------------------------------------------------

    ?

    1.編程校驗xml文檔正確性

  • 1.默認的情況下IE瀏覽器內置的xml解析器的約束校驗器是被關閉了的。所以我們需要使用JavaScript手動創建解析器對象。打開約束校驗功能,對xml進行約束校驗。
  •    ? 2.創建xml文檔解析器對象

          1.var xmldoc=new ActiveXObject("Microsoft.XMLDOM");

        3.開啟xml校驗

          1.xmldoc.validateOnParse="true";

        4.裝載xml文檔

          1.xmldoc.load("book.xml");

        5.獲取錯誤信息

          1.xmldoc.parseError.reason;

          2.xmldoc.parseError.line

      ------------------------------------

      因為IE默認不打開DTD校驗器,因此可以使用兩種方式,解決這個問題,一是使用TDE、二是編寫一段JS  

    1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 4 <title>無標題文檔</title> 5 </head> 6 7 <body> 8 行號: <div id="l"></div><br /> 9 原因: <div id="r"></div> 10 </body> 11 </html> 12 13 <script> 14 var xmldoc=new ActiveXObject("Microsoft.XMLDOM"); //使用javaScript創建一個瀏覽器內置的xml解析器 15 xmldoc.validateOnParse=true;//將xml解析器的dtd校驗打開 16 xmldoc.load("book.xml"); 17 var line=xmldoc.parseError.line; 18 var reason=xmldoc.parseError.reason; 19 document.getElementById("l").innerHTML=line; 20 document.getElementById("r").innerHTML=reason; 21 </script> 使用js 來打開DTD解析器

    ?

      ------------------------------------

    示例

    ------------book.xml-------------

    1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE 書架 SYSTEM "book.dtd"> 3 <書架> 4 <> 5 <書名>Java程序設計</書名> 6 <作者>風馬一族</作者> 7 <售價>¥59</售價> 8 </> 9 <> 10 <書名>C++程序設計</書名> 11 <作者>風馬一族</作者> 12 <售價>¥59</售價> 13 </> df 14 </書架> book.xml

    ?

    ------------book.dtd-------------

    1 <!ELEMENT 書架 (書+)> 2 <!ELEMENT 書 (書名,作者,售價)> 3 <!ELEMENT 書名 (#PCDATA)> 4 <!ELEMENT 作者 (#PCDATA)> 5 <!ELEMENT 售價 (#PCDATA)> book.dtd

    ?

    ?

    ------------check.html------------

    1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 4 <title>無標題文檔</title> 5 </head> 6 7 <body> 8 行號: <div id="l"></div><br /> 9 原因: <div id="r"></div> 10 </body> 11 </html> 12 13 <script> 14 var xmldoc=new ActiveXObject("Microsoft.XMLDOM"); //使用javaScript創建一個瀏覽器內置的xml解析器 15 xmldoc.validateOnParse=true;//將xml解析器的dtd校驗打開 16 xmldoc.load("book.xml"); 17 var line=xmldoc.parseError.line; 18 var reason=xmldoc.parseError.reason; 19 document.getElementById("l").innerHTML=line; 20 document.getElementById("r").innerHTML=reason; 21 </script> check.html

    ?

    結果:

    ?

    ?

    -----------------------------------------------------------------------------------

    二、dtd語法

      1,如何在xml中引入dtd

  • 外部引入
  • 可以將dtd的約束內容寫在外置的dtd文件中,這個文件后綴必須為.dtd而文件保存時必須用UTf-8來保存。
  • 再在xml文件中使用<!DOCTYPE 根元素名稱 SYSTEM? 文件的位置>
  •   如果寫的是SYSTEM表明當前引入的dtd在當前文件系統中,后面制定的文件位置是當前硬盤中的位置
  • 再在xml文件中使用<!DOCTYPE 根元素名稱 PUBLIC? 文件的位置>
  •   如果寫的是PUBLIC表明當前引入的dtd在網絡公共位置中,后面要指明dtd的名字和dtd所在網絡位置URL地址
  • 示例:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • 內部引入
  • 直接在xml中書寫dtd    
  • <!DOCTYPE 根元素名稱[dtd約束]> 
  • dtd語法
  • 元素
  • ?<!ELEMENT 元素名稱? 元素約束>
  • 元素約束:
  • 存放類型:ANY/EMPTY
  • 元素約束:
  • 子元素的列表,將可以包含的子元素用小括號括起來
  • 子元素之間可以使用逗號進行分割,表明子元素必須按照順序出現
  • 子元素之間可以使用豎線進行分割,表明子元素出現其中之一
  • #PCDATA 表明包含標簽體
  • + 表示一次或多次
  • *? 0次或多次
  • ? 0次或一次
  • 也可以使用小括號進行組的操作
  • 屬性
  • <!ATTLIST 元素名
  • 屬性名???? 屬性類型?? 屬性約束
  • 屬性名2 ?? 屬性類型?? 屬性約束
  • .......................
  • >   

      示例:

  • 1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE 書架[ 3 <!ELEMENT 書架 (書+)> 4 <!ELEMENT 書 (書名,作者,售價)> 5 <!ELEMENT 書名 (#PCDATA)> 6 <!ELEMENT 作者 (#PCDATA)> 7 <!ELEMENT 售價 (#PCDATA)> 8 9 ]> 10 <書架> 11 <> 12 <書名>Java程序設計</書名> 13 <作者>風馬一族</作者> 14 <售價>¥59</售價> 15 </> 16 <> 17 18 <書名>C++程序設計</書名> 19 <作者>風馬一族</作者> 20 <售價>¥59</售價> 21 </> 22 </書架> 不用dtd,直接在xml編寫dtd約束
  • 屬性類型:? 屬性的可以是一組取值的列表,在xml文件中設置的屬性值 
  • CDATA : 表示屬性的值是一個普通字符串
  • ENUMERATED:屬性的值是一個枚舉列表中的值
  • ID: 表明屬性的值必須在整個文檔中都是唯一的,如果有重復的id則校驗不通過,ID屬性的值只能由字母,下劃線開始,不能使用數字,不能出現空白字符
  • 屬性約束:
  • #REQUIRED?? --- 表明當前屬性是一個必須存在的屬性,如果這樣的屬性不存在則在校驗時會報錯
  • #IMPLIED --- 表明當前屬性是一個可選的屬性,可以有也可以沒有
  • #FIXED '固定值'? --- 表明當前屬性具有一個固定值,這樣的屬性不需要進行賦值,自動就會取這個固定值為值,如果  
  • ’默認值‘? --- 表明當前屬性具有一個默認值,如果給了其他的值就用其他值,如果沒有給值則取這個默認值 
  • ENTITY(實體)
  • <!ENTITY> 就是對一大段內容的引用,可以簡化代碼的復用 
  • 引用實體:
  • 在xml中引用的實體叫做引用實體
  • <!ENTITY % 實體名稱 “實體內容”>
  • &實體名稱;
  • 參數實體:
  • 在dtd中引用的實體叫做參數實體
  • <!ENTITY % 實體名稱 “實體內容”>
  • &實體名稱;  
  • ?

    轉載于:https://www.cnblogs.com/sows/p/5865838.html

    總結

    以上是生活随笔為你收集整理的【风马一族_xml】xmlp之dtd1的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲色图40p | 成人人伦一区二区三区 | 亚洲在线免费视频 | 久久91精品 | 免费毛片看 | 天天爱夜夜爽 | 综合久久久久久久久久久 | 男女激情av | 久久精品国产一区二区三区 | 欧美美女一区二区三区 | 久久精选 | 欧美videossex极品 | 美女啪啪一区二区 | 超碰97国产精品人人cao | 最全aⅴ番号库 | 91精品国自产在线 | 亚洲图片激情小说 | 九九精品久久 | 五月婷婷亚洲综合 | 欧美中字 | 欧美一区二区三区网站 | 91日韩在线视频 | 丰满女人又爽又紧又丰满 | 不卡在线播放 | 麻豆精品在线视频 | 黑人欧美一区二区三区 | 欧美乱大交xxxxx春色视频 | 国产精品欧美久久久久天天影视 | 精产国品一二三区 | 黄视频网站在线观看 | 免费看国产视频 | 两口子交换真实刺激高潮 | 美女网站免费视频 | 不卡国产在线 | 91国产一区二区 | 蜜桃av在线 | 成年人看的视频网站 | 国产成人一区二区三区电影 | 青青草视频在线观看免费 | 成人一级影片 | 爱情岛亚洲首页论坛 | 射黄视频 | 美女天天操| 国产精品一区二区在线观看 | 久久精品成人av | 亚洲1024| 在线观看国产黄 | 精品丝袜一区 | 蜜桃成熟时李丽珍在线观看 | 九九热精彩视频 | 免费性情网站 | 五月天激情在线 | 日本天堂网 | 黑人巨大精品欧美一区二区免费 | 国产一级视频免费观看 | 国产精品一区二区三区久久 | porn亚洲 | 国产欧美一区二区三区在线看蜜臀 | 亚洲色图欧美另类 | 9191久久| 国产精品网站免费 | 老司机av导航 | www.69pao.com| 6080毛片| 免费欧美一级视频 | 高潮白浆| 国产精品激情偷乱一区二区∴ | 国产精视频| 蜜桃av网站 | 四虎国产 | 日本在线视频观看 | 国产精品午夜未成人免费观看 | 性xxxx视频 | 国产精品91一区二区 | 日韩毛片一区二区三区 | 欧美激情一级精品国产 | 女人色极品影院 | av制服丝袜在线 | 日韩精品无码一本二本三本色 | 精品久久久久久久久久久久久 | 亚洲综合日韩精品欧美综合区 | 91天堂在线视频 | 人人妻人人澡人人爽精品日本 | 高清一区二区在线 | 三上悠亚激情av一区二区三区 | 光明影院手机版在线观看免费 | 97人人澡人人爽人人模亚洲 | 国产一级做a | 污污动态图 | 国产欧美精品久久久 | 这里精品 | 精品99在线观看 | 久久成人乱码欧美精品一区二区 | 日韩精品第一页 | 又污又黄的视频 | 亚洲一区二区三区久久久成人动漫 | 免费国产黄色片 | 男人操女人逼逼视频 | 亚洲综合二区 |