gpt4 book ai didi

xml - 文档类型声明包含或指向的标记声明必须格式正确

转载 作者:数据小太阳 更新时间:2023-10-29 02:33:35 25 4
gpt4 key购买 nike

我有这个 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 version="1.0" encoding="UTF-8"?>


<!DOCTYPE catalog SYSTEM "file:/home/p10398/plantdtd.dtd"
[
<!ELEMENT catalog(title,plant+)>
<!ELEMENT title(#PCDATA)>
<!ELEMENT plant(name,climate,height,usage,image)+>
<!ELEMENT name(#PCDATA)>
<!ELEMENT climate(#PCDATA)>
<!ELEMENT height(#PCDATA)>
<!ELEMENT usage(#PCDATA)>
<!ELEMENT image(#PCDATA)>
]>

我收到此错误:

fatal error :公共(public) ID:空系统 ID:文件:/home/p14524/plantdtd.dtd行号:4列号:3消息:文档类型包含或指向的标记声明声明必须格式正确。

有人可以解释我为什么会收到这个错误吗?还是正确的 DTD?

编辑和更新:啊!谢谢丹尼尔。现在之前的错误消失了。 我的新 DTD 是

<!ELEMENT catalog (title,plant+)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT plant (name,climate,height,usage,image)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT climate (#PCDATA)>
<!ELEMENT height (#PCDATA)>
<!ELEMENT usage (#PCDATA)>
<!ELEMENT image (#PCDATA)>

<!ATTLIST plant id ID #REQUIRED>

我收到这个新错误:

行号:18列号:9消息:元素类型“plant”的内容必须匹配“(name,climate,height,usage,image)”。

最佳答案

您需要删除 DOCTYPE来自 DTD。声明中的元素名称后还应该有空格。

新 DTD

<!ELEMENT catalog (title,plant+)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT plant (name,climate,height,usage,image)+>
<!ELEMENT name (#PCDATA)>
<!ELEMENT climate (#PCDATA)>
<!ELEMENT height (#PCDATA)>
<!ELEMENT usage (#PCDATA)>
<!ELEMENT image (#PCDATA)>

既然 DTD 有效,您将在验证 XML 时看到一些错误。

首先您需要声明 id plant 的属性元素。我建议 <!ATTLIST plant id ID #REQUIRED> .

第二个是 climate第二个 plant 中缺少.我不确定这是 XML 错误还是 DTD 错误。 plant 的元素声明但这并没有多大意义,因为它是该顺序中的那 5 个元素一次或多次。如果您需要这方面的帮助,请描述 plant应该包含,我可以帮助您编写正确的声明。

关于xml - 文档类型声明包含或指向的标记声明必须格式正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44333939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com