XML數據的底層結構之DTD(實踐部分)

XML文件代碼:
<?xml version="1.0"?>
<!DOCTYPE message[
<!ELEMENT message (header,body,(signature|footer))>
<!ELEMENT header (date,from,to+,subject,banner?)>
<!ELEMENT body  (paragraph*)>
<!ELEMENT date  (date,month,year)>
<!ELEMENT paragraph (#PCDATA)>
<!ATTLIST paragraph size CDATA #REQUIRED>
<!ELEMENT signature (#PCDATA)>
<!ELEMENT footer  ANY>
<!ELEMENT day    (#PCDATA)>
<!ELEMENT month    (#PCDATA)>
<!ATTLIST month type (numberic|character) #REQUIRED>
<!ELEMENT year    (#PCDATA)>
<!ATTLIST year    format (numeric|character) "numeric" >
<!ELEMENT from  (#PCDATA)>
<!ELEMENT to (#PCDATA)>
<!ATTLIST to relationship CDATA #IMPLIED>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT banner   (#PCDATA)>
]>
<message >
 <header>
  <date>
   <day>12</day>
   <month type="character">MAY</month>
   <year>2006</year>
  </date>
  <from> luliuyan </from>
  <to>   luliuyan's wife</to>
  <to relationship="very close">Your family</to>
  <to relationship="not so close">Your friends</to>
  <subject> Merry Christmas</subject>
  <banner></banner>
 </header>
 <body>
  <paragraph size="1 line">
  Best wishes for Christmas 
  </paragraph>
  <paragraph size="2 line">
  I love you!! 
  </paragraph>
 </body>
 <footer>
  <day>Christmas Day</day>
  <from>The best for us</from>
 </footer>
</message> 
 
 
分析:
看XML文件最重要的是要看它的結構:
從上面的示例我們可以知道,第一層次:message包含三個元素:header,body,signature或者footer(其中一個);
第二層次:
header又包含五個子元素:date,from,to("+"表示to元素出現次數爲一到多次),subject,banner("?"表示banner元素出現次數爲零到多次);
body有子元素paragraph("*"表示paragraph元素可以不出現,或出現一次或多次),而且paragraph有#PCDATA限制,表示不能包含其它元素,且只能是字符數據,另外paragraph含有屬性size, 且size屬性的類型是CDATA,表示是字符數據,#REQUIRED表示使用paragraph元素時必須使用size屬性;
signature元素  也爲字符類型;
footer元素類型爲任意類型ANY;(本例中是包含其它子元素的類型);
 
第三層次:
date元素又包含day,month(有type屬性),year(有format屬性)三個子元素;
from元素;
to元素有relationship屬性;
 
如果還有什麼不知道的可以看昨天的關於DTD的理論部分,其實我今天說了好多廢話的,只要把代碼貼出來就行了,大家好好學習了,不要偷懶
 
發佈了67 篇原創文章 · 獲贊 8 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章