DTD定義樣版
英文全名 Document type definition :定義xml文件結構
markup
<img src = "img.gif"></img>或
<img src = "img.gif"/>
element
定義結構
Attributes
Describe elements 表示element的屬性
eg: <car door = "4"/>
Processing instruction (PI)
將文件丟到另外一個應用程式處理
CDATA Sections
可有文字.保留字.空白
XML Parser會略過不看
開始<![CDATA[
結束]]>
XML namespace
Naming collisions
<subject>Math</subject>
<subject>Thrombosis</subject>
Namespace
<school:subject>Math</school:subject>
<medical:subject>Thrombosis</medical:subject>
DTD(Document Type Definition)。中文的字面意義為「文件格式定義」。其作用在於定義和規範特定XML文件的內容架構。它通常是一個含有某一種特定格式正式定義的檔案文件。換句話說,透過DTD檔案的描述,XML文件檔案的格式結構就可以成形了。以商業交易為例,在交易的流程中常會需要用到訂單、訂單變更要求、未結案訂單報告、發貨單、收貨驗收單、請款對帳單、付款明細表等商業表單,為降低交易雙方的商業糾紛並提高交易的準確性和使用效率。這些表單的內容和結構必須一致且嚴僅。在XML的領域中,DTD的作用便是在定義XML表單應如何撰寫安排,它就類似於文章的寫作文法和語意表達方式。
參考網站:XML台灣資訊網
DOM主要可以把XML檔案import進一些高階語言(例如JAVA、VB等等)
以JAVA為例,裡面有提供一些內建的DOM AIP來讓使用者讀寫XML檔案。
XML資料主要以樹狀來存放,所以有些tree的概念 在這邊也用得到,有Node、Child、Parent等。
課本以行事曆做為JAVA應用的範例,有些常用的語法
例如
element.childNodes 這是讀取element裡面所有的child並且存成陣列,配合.item(n)的指令
可以讀取第n位的資料。
node.nextSibling() 可以讀取該node的下一個兄弟姊妹節點(也就是parent的其他child)。
這一章有一個作業,裡面一個指令無法使用,後來在作者的網頁有找到更正方法
((XmlDocument)document).write(new FileOutputStream("myDocument.xml"));
執行到這個指令的時候,會跑出Exception 並指出document無法轉換成XmlDocument的資料類型,後來在作者網站上找到新的指令才解決問題。
Document Type Declaration(DTD)可分為External 、 Internal and both External、Internal,利用 <!DOCTYPE…….. >包起來
Ex: <!DOCTYPE myElement SYSTEM “myDTD.dtd”>
”http://www.w3.org/TR/html4/strict.dtd”>
◎
◎
DTD<Document Type Definition>定義了XML的文件結構D
TDS常會提出建議來確定文件的一性,特別是在常有XML文件符合的B2B<Business-to-bussiness
而DTD使用BENQF(Extended Backus-Nur Form)法規則說明XML文件結構和定義。
XML驗證器的免費網址取得處
:msdi.microsoft.com/downloads/samples/Internet/xml/xml_validator/sample.asp
DTD是藉著文件類型宣告,此宣告通常放置於XML文件的prolog中(PS:它是以<!DOCTYPE and
ends with>開始)
文件類型宣告可以指向XML的內部次集和外部次集
XML文件中最基本的建構區塊就是element(PS:他在DTD中是以ELEMENTS)
ELEMENT後面出現的元素我們通常稱為generic identifer
DTD的屬性宣告 指名原素表藉著使用ATTLIST屬性表宣告(!!一個原素可以有任意數目的屬性)
屬性預設值(#REQUIRED #IMPLIED #FIXED)
#IMPLIED--->屬性沒有在原素中出現,則用XML文件的方法不論所選值為何都可以使用
#REQUIRED--->屬性必須出現在原素中,否則XML文件無法驗證
#FIXED--->屬性值是固定且不能和XML文件值不同
屬性類型(strings(CDATA),tokenized or enumerated)
CDATA--->不能附加任何限制在屬性值上
tokenized---> 附加限制在屬性值上
enumerated--->只可以有列在屬性值上的值,標準最為嚴苛
出處:how to program
DTD是XML文件的文檔類型聲明(document type declaration)
DTD是XML文件的驗證機制,屬於XML文件組成的一部份DTD是XML文件的驗證機制,屬於XML文件組成的一部份,而DTD在XML文件所扮演的角色就是定義XML文件的元素架構,元素標籤與屬性等等。
DTD含有4個組成:元素(Elements)、屬性(Attribute)、實體(Entities)、注釋(Comments),其中實體又分為內部實體(Internal Entity) ,是實體參考直屬於一個字串的文字內容,還有外部實體(External Entity) ,定義一些插入的外部檔案。DTD雖然可以定義 XML 標籤和架構, 不過使用不同的語法,而且缺乏擴充性,近來已漸被XML Schema所取代。
參考資料:Wiki http://zh.wikipedia.org/w/index.php?title=DTD&variant=zh-tw
DTD定義XML文件中的元素、元素的屬性、元素的排列方式、元素包含的內容。
元素.屬性.實體.注釋
這部份的東西跟schema有點像
都是一些宣告的東西
DTDs全名為Document Type Definitions
DTDs是一種定義XML文件結構(structure)、,元素標籤與屬性的語法等等........
所以DTDs是XML文件的驗證機制,屬於XML文件組成的一部份
DTD需要用到相對應的parser才能看此XML文件中的DTDs語法法使用是否正確
可是DTDs是使用不同的語法, 而且缺乏擴充性,這是它缺點 ,也是它讓我覺得比較不優於XML Schema 的地方
DTDs的構程如下
1.Element
2.Attritube
3.Entities
4.Comments
DTD(Document Type Definition)
是XML文件的驗證機制,屬於XML文件組成的一部份,DTD在XML文件所扮演的角色就是定義XML文件的元素架構﹑元素標籤與屬性。
DTD元素(Element)
是宣告XML元素的語法,包含元素標籤﹑內含的子元素和元素內容資料,同時也宣告XML文件的元素架構。
元素語法:
<!ELEMENT element_name(element_or_data)>
例:
1. <!ELEMENT authorlist(author+)>
2. <!ELEMENT book(code, title, authorlist, price)> <--注意出現的順序
如果相同的子元素能夠重複出現,需進一步的使用符號宣告個子元素出現的次數,如下表範例及說明所示 :
符號 範例 說明
<!ELEMENT book(code,title,price) book元素的子元素code,title,price只會出現一次
+ <!ELEMENT booklist(book+)> booklist子元素book至少會出現一次
* <ELEMENT note(message*)> note子元素message可能不出現, 也可以一個或多個
? <ELEMENT note(message?)> note可能沒有子元素, 也可以只有一個
| <ELEMENT note(message+,(table | image)*)> note子元素message至少出現一次, 或是table和image二選一, 而且允許出現一個或多個
Internal DTD declaration
宣告在XML文件內的DTD
Example XML document with an internal DTD:
<?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>
External DTD Declaration
獨立的DTD文件
<!DOCTYPE root-element SYSTEM "filename">
此語法用來引入DTD文件到XML文件
Example XML document with using external DTD:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
資料來源:網路、W3 Schools
DTD是一種XML文件的文檔類型聲明(document type declaration)
可以看成一個或者多個XML文件的模板,可以定義XML文件中的元素、元素的屬性、元素的排列方式、元素包含的內容。
DTD (DATA TYPE DEFINE) 概念來自SGML,每一份SGML文件,都應有相對應的DTD。對XML文件而言,DTD並非特別需要
DTD有四個組成如下:
元素(Elements)
屬性(Attribute)
實體(Entities)
注釋(Comments)
元素聲明語法:
<!ELEMENT 元素名稱 元素內容>
屬性聲明語法:
<!ATTLIST 元素名稱、屬性名稱、屬性值型態、屬性的預設值>
限制較多的語法