这是制作dtd的正确方法吗?
Is this the right way to make a dtd?
如果我有这样的 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>
所以我的问题是:
- 如果我有一个嵌套节点,我是在开始时写它还是在遇到它时立即写它?
- 我可以在底部或遇到它时写属性吗?
谢谢,如果有人会回复,对不起我的英语。
添加一些 spaces:
后,这两种情况都有效
第一个可以是:
<!DOCTYPE stylesheet [
<!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>
]>
<books>
<book>
<title></title>
<subtitle></subtitle>
<info language="">
<pages></pages>
<chapters></chapters>
</info>
<author></author>
</book>
.
.
.
</books>
第二个可以是:
<!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>
在这两种情况下,您都必须在元素名称后添加 space。
两种情况的结果是一样的。
这就是您需要 fix/change.
的全部内容
你两个问题的具体答案:
- If i have a nested node do i write it at the start or as soon is
encounter it?
- Can i write attributes at the bottom or as soon is
encounter it?
就是可以随心所欲
就个人而言,我发现使用按字母顺序放置声明的 DTD 更容易。但是没有对错之分。
如果我有这样的 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>
所以我的问题是:
- 如果我有一个嵌套节点,我是在开始时写它还是在遇到它时立即写它?
- 我可以在底部或遇到它时写属性吗?
谢谢,如果有人会回复,对不起我的英语。
添加一些 spaces:
后,这两种情况都有效
第一个可以是:
<!DOCTYPE stylesheet [
<!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>
]>
<books>
<book>
<title></title>
<subtitle></subtitle>
<info language="">
<pages></pages>
<chapters></chapters>
</info>
<author></author>
</book>
.
.
.
</books>
第二个可以是:
<!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>
在这两种情况下,您都必须在元素名称后添加 space。
两种情况的结果是一样的。
这就是您需要 fix/change.
你两个问题的具体答案:
- If i have a nested node do i write it at the start or as soon is encounter it?
- Can i write attributes at the bottom or as soon is encounter it?
就是可以随心所欲
就个人而言,我发现使用按字母顺序放置声明的 DTD 更容易。但是没有对错之分。