習題題庫 [第十四章:XML與資料庫]
習題14-1

請解釋為何電腦軟體很難精確的在一段文字裡找出所要的資訊?XML 如何解決這個問題?

 
習題14-2
請將以下文字用XML 的方式表達:
If ((price > 400) && (year < 3)) go to “管理大樓” 找 ‘系主任’。
 
習題14-3
考慮圖4-4 裡的Transaction 和Record 關聯。假設我們想轉出Transaction 和Record 裡記錄的部分屬性值至一XML 檔案,其DTD 如下:
<!—DTD of transactions -->
<!ELEMENT transactions (transaction*)>
<!ELEMENT transaction (record+)>
<!ATTLIST transaction tNo ID #REQUIRED>
<!ATTLIST transaction transMid ID #REQUIRED>
<!ATTLIST transaction method CDATA>
<!ELEMENT record empty>
<!ATTLIST record pNo ID #REQUIRED>
<!ATTLIST record amount CDATA #REQUIRED>
<!ATTLIST record salePrice CDATA>
請根據圖4-4 的範例資料庫寫出一個有效 (Valid) 的XML 檔。
 
習題14-4

考慮圖4-4 裡的Transaction 和Record 關聯。假設我們想轉出Transaction 和 Record 裡記錄的部分屬性值至一XML 檔案,其DTD 如下:
<!—DTD of transactions -->
<!ELEMENT transactions (transaction*)>
<!ELEMENT transaction (record+)>
<!ATTLIST transaction tNo ID #REQUIRED>
<!ATTLIST transaction transMid ID #REQUIRED>
<!ELEMENT record empty>
<!ATTLIST record pNo ID #REQUIRED>
<!ATTLIST record salePrice CDATA>

請將圖 4-4 的範例資料庫裡的三筆交易 (編號為‘91100’、‘92666’和‘91888’) 的記錄轉出成一個有效 (Valid) 的XML 檔。

 
習題14-5
以下為國家圖書館全國博碩士論文的XML DTD 轉出格式,
<?xml version="1.0" encoding="big5"?>
<!DOCTYPE books [
<!ELEMENT books (book+)>
<!ELEMENT book (Creator,Creator.translated?,Title,Title.translated?,
Contributor*,Contributor.translated*,Description.note.degree?,
Description.note.school?,Description.note.department?,
Description.note.studentid?,Description.note.year?,
Date.created?,Language?,Format.extend?,Subject*,Subject.translated*,
Description.abstract*,Description.abstract.translated*,
Relation.currentcontent?,Relation.questionnare?,
Relation.reference?,Relation.website.url*,Identifier?,
Identifier.url?,Identifier.note?)>
<!ELEMENT Creator (#PCDATA)>
<!ELEMENT Creator.translated (#PCDATA)>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Title.translated (#PCDATA)>
<!ELEMENT Contributor (#PCDATA)>
<!ELEMENT Contributor.translated (#PCDATA)>
<!ELEMENT Description.note.degree (#PCDATA)>
<!ELEMENT Description.note.school (#PCDATA)>
<!ELEMENT Description.note.department (#PCDATA)>
<!ELEMENT Description.note.studentid (#PCDATA)>
<!ELEMENT Description.note.year (#PCDATA)>
<!ELEMENT Date.created (#PCDATA)>
<!ELEMENT Language (#PCDATA)>
<!ELEMENT Format.extend (#PCDATA)>
<!ELEMENT Subject (#PCDATA)>
<!ELEMENT Subject.translated (#PCDATA)>
<!ELEMENT Description.abstract (#PCDATA)>
<!ELEMENT Description.abstract.translated (#PCDATA)>
<!ELEMENT Relation.currentcontent (#PCDATA)>
<!ELEMENT Relation.questionnare (#PCDATA)>
<!ELEMENT Relation.reference (#PCDATA)>
<!ELEMENT Relation.website.url (#PCDATA)>
<!ELEMENT Identifier (#PCDATA)>
<!ELEMENT Identifier.url (#PCDATA)>
<!ELEMENT Identifier.note (#PCDATA)>
]>

其意義如下表所示:
博碩士論文
摘要檢索系統欄位
對應至XML 元素
研究生中文名
研究生英文名
論文名稱中文
論文名稱英文
指導教授中文名
指導教授英文名
學位類別
院校名稱
系所名稱
學號
畢業學年度
論文出版年度
語文別
論文頁數
關鍵字
關鍵字(英文)
論文中文摘要
論文英文摘要
論文目次
論文問卷題名
論文參考文獻
論文系統的網址
論文id
論文電子全文
論文開放日期
Creator
Creator.translated
Title
Title.translated
Contributor
Contributor.translated
Description.note.degree
Description.note.school
Description.note.department
Description.note.studentid
Description.note.year
Date.created
Language
Format.extend
Subject
Subject.translated
Description.abstract
Description.abstract.translated
Relation.currentcontent
Relation.questionnare
Relation.reference
Relation.website.url
Identifier
Identifier.url
Identifier.note

請至任一個博碩士論文系統 (可參考http://fedetd.mis.nsysu.edu.tw 或至各校圖書館網頁找出其博碩士論文系統的網址) ,將任一篇論文的書目資料按該格式轉出成一個有效的XML 檔。
 
習題14-6
請將 [習題14-3] 的DTD 檔和XML 檔用Schema 表示。
 
習題14-7

請將 [習題14-4] 的DTD 檔和XML 檔用Schema 表示。

 
習題14-8
請將 [習題14-5] 的DTD 檔和XML 檔用Schema 表示。
 
習題14-9
請比較DOM、SAX、XPath 和 XQuery 的適用時機。
 
習題14-10
請比較Oracle 的兩種將XML 轉入DBMS 資料表方式的差別點。