150 likes | 213 Views
單元 :1-3-2 合格與有效的 XML 文件. 王豐緒 銘傳大學資工系. 單元目標. 利用更多的範例,了解XML文件的語法與結構 能夠區別 ” 合格 ” (well-formed) 與 ” 有效 ”(valid) XML 文件的差異 介紹 DTD 文件的功用. 合格的( Well-formed) 的 XML 文件. 幾項符合 XML 規範的條件 文件必須以「 XML 宣告」 <?xml version=“1.0” ?> 為開始 文件中必須 只有 一個根元素 標記的 名稱 必須正確 標記是以「 開始標記 」與「 結束標記 」為一組或是有「 /> 」的空標記
E N D
單元:1-3-2合格與有效的XML文件 王豐緒 銘傳大學資工系
單元目標 • 利用更多的範例,了解XML文件的語法與結構 • 能夠區別”合格” (well-formed) 與”有效”(valid)XML文件的差異 • 介紹DTD文件的功用
合格的(Well-formed)的XML文件 幾項符合XML規範的條件 • 文件必須以「XML宣告」<?xml version=“1.0” ?>為開始 • 文件中必須只有一個根元素 • 標記的名稱必須正確 • 標記是以「開始標記」與「結束標記」為一組或是有「/>」的空標記 • 文件必須是巢狀的階層式結構 • 大小寫代表不同的意義 • 屬性值的設定必須用「”」或「’」包圍起來 • 限定字需用實體參照的方法輸入
XML宣告錯誤示範 <?It is my dog ?> <?xml version="1.0" standalone="yes" ?> <DOG> <Nickname>PoPo</Nickname> <Breeder>Gary</Breeder> <Birthday>10/17</Birthday> <HowOld>3</HowOld> <Breed>Husky</Breed> </DOG>
兩個根元素的錯誤範例 <?xml version="1.0" encoding="big5" standalone="yes" ?> <Root1st> 第一個根元素 </Root1st> <Root2nd> 第二個根元素 </Root2nd>
標籤不對稱的例子 <?xml version="1.0" standalone="yes" ?> <DOG> <Nickname>PoPo <Breeder>Gary<Breeder> 10/17</Birthday> <HowOld>3</HowOld> <Breed>Husky</Breed> </DOG>
錯誤的空標籤使用 <?xml version="1.0" encoding="big5"?> <DOG> <Nickname>PoPo</Nickname> <hr width="120"> <Breeder>Gary</Breeder> <Birthday>10/17</Birthday> <HowOld>3</HowOld> <Breed>Husky</Breed> </DOG>
巢狀結構錯誤範例 <?xml version="1.0" encoding="big5"?> <DOG> <Nickname>PoPo <Breeder>Gary</Breeder> <Birthday>10/17</Nickname> </Birthday> <HowOld>3</HowOld> <Breed>Husky</Breed> </DOG>
限定字用法 限定字 實體參考 • & & • < < • > > • “ " • ‘ '
實體參考代替限定字之範例 <?xml version="1.0" standalone="yes" ?> <DOG id="taipei1001&taiwan1001"> <Nickname sex="<Male>">PoPo</Nickname> <Breeder>Gary</Breeder> <Birthday year=""1998"">10/17</Birthday> <HowOld>3</HowOld> <Breed>Husky</Breed> </DOG> id: Taipei1001&taiwan1001 sex: <Male> year: “1998”
編寫XML文件時的自我檢查 • 標記 • 開始及結束標記有沒有相對映(例如大小寫,或是有開始沒結束,還是沒開始就結束)? • 空標籤是否書寫正確? • 有沒有完整的巢狀結構? • 有沒有根元素? • 屬性 • 大小寫有沒有弄錯? • 前後有沒有加引號? • 實體參考有沒有正確使用? • 有沒有用到「&」「<」「>」「”」以及「’」符號?
DTD文件 • DTD「文件類型定義」文件 • 針對特定應用領域的需求,規範XML文件的資訊架構 XML資料 合格的XML文件 XML 剖析器 有效的XML文件 DTD文件 DTD文件規範
DTD與XML範例 XML生日資料 <?xml version=“1.0” encoding=“big5” ?> <!DOCTYPE生日 SYSTEM“birthday.dtd” > <生日> <年>1968</年> <月>1968</月> <日>1968</日> </生日> XML 剖析器 有效的XML文件 <!ELEMENT 生日 (年, 月, 日)> <!ELEMENT 年 (#PCDATA)> <!ELEMENT 月 (#PCDATA)> <!ELEMENT 日 (#PCDATA)> birthday.dtd
Valid的條件 • 這份文件有根據DTD文件的規範,來設計XML文件 • 這份DTD語法正確 • 有關DTD文件的撰寫將在後面的單元講授 • 這份XML文件是Well-formed 合格 有效
單元複習 • 更加了解XML文件的語法與結構 • 區別何謂”合格” (well-formed) 與”有效”(valid)XML文件 • DTD文件所扮演的角色