元素类型的内容"植物"必须匹配(名称,气候,高度,用途,图像)

时间:2017-07-16 06:07:53

标签: xml dtd xml-dtd

我正在为下面的xml代码编写DTD。但是输出是

元素类型的内容"植物"必须匹配(名称,气候,高度,用途,图像)

这是我的xml代码

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE catalog SYSTEM "plantdtd.dtd">

<catalog>

<title>Flowers of the week</title>

<plant id="A1">

     <name>Aloe vera</name>

     <climate>tropical</climate>

     <height>60-100cm</height>

     <usage>medicinal</usage>

     <image>aloevera.jpg</image>

 </plant>

 <plant id="A2">

      <name>Orchidaceae</name>

      <height>8-12in</height>

      <usage>medicinal</usage>

      <usage>decoration</usage>

      <image>Orchidaceae.jpg</image>

 </plant>

 </catalog>

这是我的DTD。

<?xml encoding="UTF-8"?>
<!ELEMENT catalog (title,plant+)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT plant (name,climate,height,usage,image)>
<!ATTLIST plant id CDATA  #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT climate (#PCDATA)>
<!ELEMENT height (#PCDATA)>
<!ELEMENT usage (#PCDATA)>
<!ELEMENT image (#PCDATA)>

请告诉我上述DTD的错误。

1 个答案:

答案 0 :(得分:0)

假设实例文档是&#34;对&#34;并且DTD是错误的#34;然后你需要更改DTD以允许省略气候(写climate?)并允许重复使用(写usage+)。这将使这两个示例plant元素有效,但当然要设计DTD,您需要考虑所有可能的有效plant元素,而不仅仅是这两个元素。