2016-02-26 7 views
2

Хорошо так я работаю с DTD в классе и на основе от двух валидаторов, эта конкретная проблема существует в том, где:XML/DTD, правильная действительная декларация элемента href?

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-файлов, где элемент footnote имеет hrefs в нем, и мне интересно то же самое для них.

<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> 
+0

Да, это довольно много ссылок HTML в элементах Etymology и Footnote, я попытался сделать и , и он не сработал. –

ответ

1

Существует только один способ объявить mixed content (содержит оба элемента и #PCDATA). В принципе, порядок и вхождения дочерних элементов не могут быть ограничены.

Цитата ссылке выше:

... типы дочерних элементов могут быть ограничены, но не их порядок или их количество вхождений

Вот как изменить ваш etymology декларация:

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

Вы бы сделать то же самое с footnote:

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