簡體   English   中英

編寫XML和DTD文檔

[英]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項目。 無需創建單獨的項目Book1Book2等。 每本書的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 &amp; 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並沒有很好形成 (具體來說,結束標記應使用/代替\\並且&必須為&amp;

我還將所有元素和屬性名稱更改為小寫。 這不是必需的,但請記住,但是您定義的元素是如何使用它的(大小寫很重要)。

我也注意到您在Top_3_Books和內容規范(Wines,Food)之間缺少空格。 確保名稱和內容規范之間所需的空格

一件事 我的示例在內部子集中(在[]之間的doctype中)具有DTD。 這意味着DTD和XML實例都將在同一文件中。 如果要將DTD寫入單獨的文件中,則需要在XML實例中的doctype聲明中引用DTD。 讓我知道您是否需要一個示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM