[英]Writing a XML and DTD document
我正在嘗試解決過去的兩個考試問題,我設法完成了考試,但是不確定我是否做對了。 如果有人可以幫助我,我真的很高興。 我已經貼了考試題。
第一個問題需要我為TOP 3 BOOKS編寫XML文檔,這就是我得到的。 是正確的,是否會有更簡單的方法來完成,因為我需要使用筆和紙來編寫XML文檔。
<Top_3_Books>
<Book Catagory="Wine">
<Book1>
<Title> French Wines: The Essential Guide <\Title>
<Author> Penguin Publishers <\Author>
<\Book1>
<Book2>
<Title> An Encyclopaedia of the Wines and Domains of France <\Title>
<Author> Oxford Press <\Author>
<\Book2>
<Book3>
<Title> Hachette Atlas of French Wines & Vineyards <\Title>
<Author> Addison-Wesley <\Author>
<\Book3>
<\Book>
<Book Catagory="Food">
<Book1>
<Title> Seafood Recipes from Cornwall <\Title>
<Author> R.Steinway and BBC Press <\Author>
<\Book1>
<Book2>
<Title> D. Smithson's Easy How-To-Cook <\Title>
<Author> D. Smithson and Prentice-Hall <\Author>
<\Book2>
<Book3>
<Title> All Rhodes Lead to the Kitchen <\Title>
<Author> J. Rhodes and Addison-Wesley <\Author>
<\Book3>
<\Book>
<\Top_3_Books>
對於c部分,我需要編寫一個DTD,下面是我的嘗試。 是更容易或更快速的書寫方式嗎? 謝謝。
<!ELEMENT Top_3_Books(Wines,Food)*>
<!ELEMENT Wines (Books, Author?)>
<!ELEMENT Books (#PCDATA)>
<!ELEMENT Author (#PCDATA)>
<!ELEMENT Food (Books, Author)>
<!ELEMENT Books (#PCDATA)>
<!ELEMENT Author (#PCDATA)>
謝謝
例如,似乎應該對“ Wine
類別進行一些更改
一種。 該類別不是一本書。 它應該是帶有類型的Category
元素。 b。 所有書籍均為Book
項目。 無需創建單獨的項目Book1
, Book2
等。 每本書的Publisher
屬性。 d。 作者列表,可選。 看來這個類別沒有它們,因此我為最后一本書發明了一個。
<Category type="Wine">
<Books>
<Book Publisher="Penguin Publishers">
<Title> French Wines: The Essential Guide <\Title>
<Authors><\Authors>
<\Book>
<Book Publisher="Oxford Press ">
<Title> An Encyclopaedia of the Wines and Domains of France <\Title>
<Authors><\Authors>
<\Book>
<Book Publisher="Addison-Wesley">
<Title> Hachette Atlas of French Wines & Vineyards <\Title>
<Authors>
<Author>W. Esley</Author>
<\Authors>
<\Book>
<Books>
<\Category>
DTD應該具有定義根元素的DOCTYPE
。
括號定義了元素中的內容,因此
<!DOCTYPE Top_3_Books
[
<!ELEMENT Top_3_Books(Category)>
<!ELEMENT Category(Books)>
<!ATTLIST Category
type CDATA #REQUIRED
>
<!ELEMENT Books (Book)>
<!ELEMENT Book (Title, Authors)>
<!ATTLIST Book
Publisher CDATA #REQUIRED
>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Authors (Author)*>
<!ELEMENT Author (#PCDATA)>
]>
這是一個實際有效的示例,涵蓋了所有要求。 (以前的答案都不是。)
<!DOCTYPE top3books [
<!--Requirement #1 - zero or more categories-->
<!ELEMENT top3books (category*)>
<!--Requirement #3 - each category has at least one book-->
<!ELEMENT category (book+)>
<!--Requirement #2 - category has a type-->
<!ATTLIST category
type CDATA #REQUIRED>
<!--Requirements #4 and #6 - each book has a title and an optional list of authors-->
<!ELEMENT book (title, authors?)>
<!--Requirement #5 - each book has a publisher attribute-->
<!ATTLIST book
publisher CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT authors (author+)>
<!ELEMENT author (#PCDATA)>
]>
<top3books>
<category type="Wine">
<book publisher="Penguin Publishers">
<title>French Wines: The Essential Guide</title>
</book>
<book publisher="Oxford Press">
<title>An Encyclopedia of the Wines and Domains of France</title>
</book>
<book publisher="Addison-Wesley">
<title>Hachette Atlas of French Wines & Vineyards</title>
</book>
</category>
<category type="Food">
<book publisher="BBC Press">
<title>Seafood Recipes from Cornwall</title>
<authors>
<author>R.Steinway</author>
</authors>
</book>
<book publisher="Prentice-Hall">
<title>D. Smithson's Easy How-To-Cook</title>
<authors>
<author>D. Smithson</author>
</authors>
</book>
<book publisher="Addison-Wesley">
<title>All Rhodes Lead to the Kitchen</title>
<authors>
<author>J. Rhodes</author>
</authors>
</book>
</category>
</top3books>
你們中的一個人失蹤最重要的事情是,你的XML並沒有很好形成 。 (具體來說,結束標記應使用/
代替\\
並且&
必須為&
)
我還將所有元素和屬性名稱更改為小寫。 這不是必需的,但請記住,但是您定義的元素是如何使用它的(大小寫很重要)。
我也注意到您在Top_3_Books
和內容規范(Wines,Food)
之間缺少空格。 確保名稱和內容規范之間有所需的空格 。
一件事 我的示例在內部子集中(在[
和]
之間的doctype中)具有DTD。 這意味着DTD和XML實例都將在同一文件中。 如果要將DTD寫入單獨的文件中,則需要在XML實例中的doctype聲明中引用DTD。 讓我知道您是否需要一個示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.