XML/DTD,href 元素的正确有效声明?

XML/DTD, proper valid declaration of a href element?

好的,所以我在 class 中使用 DTD 并基于两个验证器,这个特定问题存在于以下位置:

21: 63  Element type "a" must be declared.

这是 XML 中与此错误相关的行。

<etymology><a href="https://en.wikipedia.org/wiki/John_Adams">John Adams</a> (1735-1826), 2nd <a href="https://en.wikipedia.org/wiki/President_of_the_United_States">U.S. President</a></etymology>

这是我的 DTD 声明:

<!ELEMENT etymology (#PCDATA)>

由于 'a href' 不是完全必需的,甚至不是总是以 XML 文件中每个经过的词源元素开头,我该如何正确声明它们?

我在 XML 文件的底部也有同样的情况,其中脚注元素中有 href,我想知道它们是否相同。

<footnote id="g">Quillehuyte County was split from Jefferson and Clallam counties in 1868 and returned to those counties a year later.</footnote>

__

<!ELEMENT footnote (#PCDATA)>
<!ATTLIST footnote id CDATA #REQUIRED>

只有一种声明方式mixed content(同时包含元素和#PCDATA)。基本上不能约束子元素的顺序和出现。

引自上文link:

...the types of the child elements may be constrained, but not their order or their number of occurrences

以下是修改 etymology 声明的方法:

<!ELEMENT etymology (#PCDATA|a)*>

你也会对footnote做同样的事情:

<!ELEMENT footnote (#PCDATA|a)*>