这是制作dtd的正确方法吗?

问题描述 投票:0回答:2

如果我有这样的xml文件:

<books>
    <book>

        <title></title>
        <subtitle></subtitle>
        <info language="">

            <pages></pages>
            <chapters></chapters>

        </info>

        <author></author>

    </book>
    .
    .
    .
</books>

其中哪一个是正确的dtd?第一步

    <!ELEMENT books(book+)>
    <!ELEMENT book(title,subtitle,info,author)>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT subtitle (#PCDATA)>
    <!ELEMENT info(pages,chapters)>
    <!ELEMENT pages (#PCDATA)>
    <!ELEMENT chapters(#PCDATA)>
    <!ELEMENT author(#PCDATA)>
    <!ATTLIST info language CDATA #REQUIRED>

第二种方式

   <!ELEMENT books(book+)>
   <!ELEMENT book(title,subtitle,info,author)>
   <!ELEMENT info(pages,chapters)>
   <!ELEMENT title (#PCDATA)>
   <!ELEMENT subtitle (#PCDATA)>
   <!ELEMENT pages (#PCDATA)>
   <!ELEMENT chapters(#PCDATA)>
   <!ELEMENT author(#PCDATA)>
   <!ATTLIST info language CDATA #REQUIRED>

所以我的问题是:

  1. 如果我有一个嵌套的节点,我应该在开始时或遇到它时就写它吗?
  2. 我可以在底部或遇到属性时立即写属性吗?

感谢任何人会答复并为我的英语致歉。

xml dtd
2个回答
0
投票
<!DOCTYPE stylesheet [ <!ELEMENT books (book+)> <!ELEMENT book (title,subtitle,info,author)> <!ELEMENT info (pages,chapters)> <!ELEMENT title (#PCDATA)> <!ELEMENT subtitle (#PCDATA)> <!ELEMENT pages (#PCDATA)> <!ELEMENT chapters (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ATTLIST info language CDATA #REQUIRED> ]> <books> <book> <title></title> <subtitle></subtitle> <info language=""> <pages></pages> <chapters></chapters> </info> <author></author> </book> . . . </books>

在两种情况下,您都必须在元素名称后添加一个空格。在两种情况下,结果都是相同的。这就是您需要修复/更改的全部内容。


0
投票
如果我有一个嵌套节点,我会在开始时还是尽快将其写入遇到吗?

我可以在底部或尽快写入属性吗?遇到吗?

© www.soinside.com 2019 - 2024. All rights reserved.