编写XML和DTD文档

编写XML和DTD文档,xml,tags,element,document,dtd,Xml,Tags,Element,Document,Dtd,我试图解决过去的两道试题,我设法完成了,但我不确定我是否做对了。如果有人能帮助我,我将不胜感激。我已经把考题贴好了。 第一个问题要求我为前三本书编写一个XML文档,这就是我得到的。是正确的,并且会有更简单的方法,因为我需要使用纸笔编写XML文档 法国葡萄酒:基本指南 企鹅出版社 法国葡萄酒和葡萄酒领域百科全书 牛津出版社 哈切特法国葡萄酒和葡萄园地图集 艾迪生·韦斯利 康沃尔海鲜食谱 R.斯坦威和英国广播公司出版社 D.Smithson的简单烹饪方法 D.史密森和普伦蒂斯大厅 所有罗兹人都

我试图解决过去的两道试题,我设法完成了,但我不确定我是否做对了。如果有人能帮助我,我将不胜感激。我已经把考题贴好了。

第一个问题要求我为前三本书编写一个XML文档,这就是我得到的。是正确的,并且会有更简单的方法,因为我需要使用纸笔编写XML文档



法国葡萄酒:基本指南
企鹅出版社
法国葡萄酒和葡萄酒领域百科全书
牛津出版社
哈切特法国葡萄酒和葡萄园地图集
艾迪生·韦斯利
康沃尔海鲜食谱
R.斯坦威和英国广播公司出版社
D.Smithson的简单烹饪方法
D.史密森和普伦蒂斯大厅
所有罗兹人都去厨房
J.Rhodes和Addison Wesley

对于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)>


谢谢

例如,
葡萄酒
类别似乎应该有所改变

a。该类别不是一本书。它应该是一个
类别
元素,带有一个类型。 B所有书籍都是
Book
项目。无需创建单独的项目
Book1
Book2
等。 c<代码>出版商每本书的属性。 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内)。这意味着DTD和XML实例都将位于同一个文件中。如果要将DTD写入单独的文件,则需要从XML实例中引用doctype声明中的DTD。如果你需要一个这样的例子,请告诉我

谢谢你的回答,现在有道理了。我做的DTD正确吗?@Mikey,我也编辑过。可能不止一个答案是正确的,我写了我认为正确的。谢谢,这看起来很混乱,有没有有用的材料/书籍/教程我可以读/看。再次感谢。试着看一看谢谢,我已经看了一些你提供的链接,比如W3C,我现在会看其他的。谢谢你的帮助。
<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>
<!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>