Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DTD和XML示例_Xml_Dtd - Fatal编程技术网

DTD和XML示例

DTD和XML示例,xml,dtd,Xml,Dtd,以下是我的DTD规则应具有以下属性: 这本书有一个标题,发行年份,一个或多个作者,一个或多个评级(0-5),任何数量的评论 <!ELEMENT books (book+)> <!ELEMENT book (title, author+,year,rating+,review*)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT year (#PCDATA)>

以下是我的DTD规则应具有以下属性: 这本书有一个标题,发行年份,一个或多个作者,一个或多个评级(0-5),任何数量的评论

<!ELEMENT books (book+)>
<!ELEMENT book (title, author+,year,rating+,review*)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT rating (0|1|2|3|4|5)>
<!ELEMENT review (#PCDATA)>

下面是我的XML示例:

 <?xml version="1.0" standalone="no" ?>
 <!DOCTYPE books SYSTEM "books.dtd">
<books>
    <book>
      <title>book1</title>
      <author>bob</author>
      <year>2000</year>
      <rating>2</rating>
      <rating>3</rating>
    </book>
    <book>
     <title>book2</title>
     <author>alice</author>
     <year>2001</year>
     <rating>4</rating>
     <rating>5</rating>
    </book>
    <book>
     <title>book3</title>
     <author>john</author>
     <year>2002</year>
     <rating>5</rating>
     <rating>0</rating>
     <review>not bad</review>
    </book>
</books>

第一册
上下快速移动
2000
2.
3.
第二册
爱丽丝
2001
4.
5.
第三册
厕所
2002
5.
0
不错
但是我总是会遇到这个错误。

在DTD和XML中是不正确的。这意味着您希望rating元素包含名为“0”(
)或“1”、“2”等元素。不幸的是,标记名不能以数字开头

要实现您想要做的事情,通常需要使用一个属性。将rating元素声明为空,并在列表中的值中选择一个属性,如下所示:

<!ELEMENT rating EMPTY>
<!ATTLIST rating
          rank  (0|1|2|3|4|5)   #REQUIRED  >

您的XML实例将成为:

<?xml version="1.0" standalone="no" ?>
<!DOCTYPE books SYSTEM "books.dtd">
<books>
    <book>
      <title>book1</title>
      <author>bob</author>
      <year>2000</year>
      <rating rank="2" />
      <rating rank="3" />
    </book>
    <book>
     <title>book2</title>
     <author>alice</author>
     <year>2001</year>
     <rating rank="4" />
     <rating rank="5" />
    </book>
    <book>
     <title>book3</title>
     <author>john</author>
     <year>2002</year>
     <rating rank="5 />
     <rating rank="0" />
     <review>not bad</review>
    </book>
</books>

第一册
上下快速移动
2000
第二册
爱丽丝
2001
第三册
厕所
2002