XML & DTD: 元素类型的内容必须匹配
XML & DTD: The content of element type must match
我目前正在学习 XML,并且正在努力学习第一个 DTD 扩展。我的 XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE Activities [
<!ELEMENT Activities (ToDo)>
<!ELEMENT ToDo (Household,Cat,House,Bills,Groceries)>
<!ELEMENT Object (Cat,House,Bills,Groceries)>
<!ELEMENT Cat (#PCDATA)>
<!ELEMENT House (#PCDATA)>
<!ELEMENT Bills (#PCDATA)>
<!ELEMENT Groceries (#PCDATA)>
<!ATTLIST ToDo id CDATA #IMPLIED>
<!ATTLIST Object id CDATA #IMPLIED>
]>
<Activities>
<ToDo id="Household">
<Object id="Cat">
<ToDo>bathe</ToDo>
</Object>
<Object id="House">
<ToDo>vacuum</ToDo>
</Object>
<Object id="Bills">
<ToDo>pay</ToDo>
</Object>
<Object id="Groceries">
<ToDo>Buy</ToDo>
</Object>
</ToDo>
</Activities>
XML 验证 (http://xmlvalidation.com) 告诉我 "The content of element type "ToDo“必须匹配”并且 "The content of element type "Object“必须匹配”。
我做错了什么?
非常感谢!
<!ELEMENT ToDo (Household,Cat,House,Bills,Groceries)>
例如不允许对象作为子对象但允许家庭持有等,即将Xml更改为:
<Activities>
<ToDo id="Household">
<HouseHold/>
<Cat>
xxx
</Cat>
<House>
yyy
</House>
.....
</ToDo>
</Activities>
从哪里清除 'Outer' "The content of element type "ToDo" 必须匹配
现在你在 Cat
中也有 Inner ToDo 项目,即 <ToDo>bathe</ToDo>
但是你 DTD 说:
<!ELEMENT ToDo (Household,Cat,House,Bills,Groceries
ToDo 必须有一个 Houshold,然后是一个 Cat 等,即它不能只是文本。
还 <!ELEMENT Cat (#PCDATA)>
说 A Cat must only contain text.
不清楚您的目标是什么,但是从<!ELEMENT ToDo (Household,Cat,House,Bills,Groceries
中删除家庭
<Activities>
<ToDo id="Household">
<Cat id="1">
bathe
</Cat>
<House id="2">
vacumm
</House>
.....
</ToDo>
</Activities>
会满足 DTD
我目前正在学习 XML,并且正在努力学习第一个 DTD 扩展。我的 XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE Activities [
<!ELEMENT Activities (ToDo)>
<!ELEMENT ToDo (Household,Cat,House,Bills,Groceries)>
<!ELEMENT Object (Cat,House,Bills,Groceries)>
<!ELEMENT Cat (#PCDATA)>
<!ELEMENT House (#PCDATA)>
<!ELEMENT Bills (#PCDATA)>
<!ELEMENT Groceries (#PCDATA)>
<!ATTLIST ToDo id CDATA #IMPLIED>
<!ATTLIST Object id CDATA #IMPLIED>
]>
<Activities>
<ToDo id="Household">
<Object id="Cat">
<ToDo>bathe</ToDo>
</Object>
<Object id="House">
<ToDo>vacuum</ToDo>
</Object>
<Object id="Bills">
<ToDo>pay</ToDo>
</Object>
<Object id="Groceries">
<ToDo>Buy</ToDo>
</Object>
</ToDo>
</Activities>
XML 验证 (http://xmlvalidation.com) 告诉我 "The content of element type "ToDo“必须匹配”并且 "The content of element type "Object“必须匹配”。
我做错了什么? 非常感谢!
<!ELEMENT ToDo (Household,Cat,House,Bills,Groceries)>
例如不允许对象作为子对象但允许家庭持有等,即将Xml更改为:
<Activities>
<ToDo id="Household">
<HouseHold/>
<Cat>
xxx
</Cat>
<House>
yyy
</House>
.....
</ToDo>
</Activities>
从哪里清除 'Outer' "The content of element type "ToDo" 必须匹配
现在你在 Cat
中也有 Inner ToDo 项目,即 <ToDo>bathe</ToDo>
但是你 DTD 说:
<!ELEMENT ToDo (Household,Cat,House,Bills,Groceries
ToDo 必须有一个 Houshold,然后是一个 Cat 等,即它不能只是文本。
还 <!ELEMENT Cat (#PCDATA)>
说 A Cat must only contain text.
不清楚您的目标是什么,但是从<!ELEMENT ToDo (Household,Cat,House,Bills,Groceries
<Activities>
<ToDo id="Household">
<Cat id="1">
bathe
</Cat>
<House id="2">
vacumm
</House>
.....
</ToDo>
</Activities>
会满足 DTD