为什么我的方案无效?文档类型声明包含或指向的标记声明必须是 well-formed
Why is my scheme not valid? The markup declarations contained or pointed to by the document type declaration must be well-formed
这是我的 XML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE system SYSTEM "system.dtd">
<system>
<items>
<item id="1">item1</item>
</items>
<stores>
<store id="2">
<name>name1</name>
<type>normal</type>
<capacity>5</capacity>
</store>
</stores>
<area>
<slot id="4" name="name3" parallel="true">
<input id="3" name="name2">
<item></item>
</input>
<machine>
<cost></cost>
<time></time>
</machine>
</slot>
</area>
</system>
这是我的 XML:
的 DTD
<!ELEMENT system (items?,stores?,area*)>
<!ELEMENT items (item*)>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item id ID #REQUIRED>
<!ELEMENT stores (store*)>
<!Element store (name,type,capacity)> // Error appears here
<!Element name (#PCDATA)>
<!Element type (#PCDATA)>
<!Element capacity (#PCDATA)>
<!ATTLIST store id ID #REQUIRED>
<!ELEMENT area (slot*)>
<!ELEMENT slot (input*,output*,(slot | ref | conveyor | generator | machine | turntable)*>
<!ELEMENT input (item+)>
<!ELEMENT output (item+)>
<!ELEMENT item (#PCDATA)>
<!ATTLIST input id ID #REQUIRED>
<!ATTLIST input name CDATA #IMPLIED>
<!ATTLIST output id ID #REQUIRED>
<!ATTLIST output name CDATA #IMPLIED>
<!ELEMENT ref (#PCDATA)>
<!ATTLIST ref id ID #IMPLIED>
<!ELEMENT conveyor (cost*,time*)>
<!ELEMENT generator (cost*,time*)>
<!ELEMENT machine (cost*,time*)>
<!ELEMENT turntable (cost*,time*)>
<!ELEMENT cost (#PCDATA)>
<!ELEMENT time (#PCDATA)>
<!ATTLIST slot id ID #REQUIRED>
<!ATTLIST slot name CDATA #REQUIRED>
<!ATTLIST slot parallel CDATA #IMPLIED>
我进行了验证,但我收到了错误,您可以在我在代码中标记的标题中看到该错误。我想这是一个简单的问题,但我就是找不到错误。
这不是一个很好的诊断,是吗?
您的 DTD 中有两个错误:(a) ELEMENT
必须始终大写,(b) ELEMENT slot
.[=12 的声明中缺少一个 ')' =]
这是我的 XML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE system SYSTEM "system.dtd">
<system>
<items>
<item id="1">item1</item>
</items>
<stores>
<store id="2">
<name>name1</name>
<type>normal</type>
<capacity>5</capacity>
</store>
</stores>
<area>
<slot id="4" name="name3" parallel="true">
<input id="3" name="name2">
<item></item>
</input>
<machine>
<cost></cost>
<time></time>
</machine>
</slot>
</area>
</system>
这是我的 XML:
的 DTD<!ELEMENT system (items?,stores?,area*)>
<!ELEMENT items (item*)>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item id ID #REQUIRED>
<!ELEMENT stores (store*)>
<!Element store (name,type,capacity)> // Error appears here
<!Element name (#PCDATA)>
<!Element type (#PCDATA)>
<!Element capacity (#PCDATA)>
<!ATTLIST store id ID #REQUIRED>
<!ELEMENT area (slot*)>
<!ELEMENT slot (input*,output*,(slot | ref | conveyor | generator | machine | turntable)*>
<!ELEMENT input (item+)>
<!ELEMENT output (item+)>
<!ELEMENT item (#PCDATA)>
<!ATTLIST input id ID #REQUIRED>
<!ATTLIST input name CDATA #IMPLIED>
<!ATTLIST output id ID #REQUIRED>
<!ATTLIST output name CDATA #IMPLIED>
<!ELEMENT ref (#PCDATA)>
<!ATTLIST ref id ID #IMPLIED>
<!ELEMENT conveyor (cost*,time*)>
<!ELEMENT generator (cost*,time*)>
<!ELEMENT machine (cost*,time*)>
<!ELEMENT turntable (cost*,time*)>
<!ELEMENT cost (#PCDATA)>
<!ELEMENT time (#PCDATA)>
<!ATTLIST slot id ID #REQUIRED>
<!ATTLIST slot name CDATA #REQUIRED>
<!ATTLIST slot parallel CDATA #IMPLIED>
我进行了验证,但我收到了错误,您可以在我在代码中标记的标题中看到该错误。我想这是一个简单的问题,但我就是找不到错误。
这不是一个很好的诊断,是吗?
您的 DTD 中有两个错误:(a) ELEMENT
必须始终大写,(b) ELEMENT slot
.[=12 的声明中缺少一个 ')' =]