2016-02-26 2 views
2

Bon alors je travaille avec DTD dans une classe et basé sur de deux valideurs, ce problème spécifique existe dans lequel:XML/DTD, déclaration correcte valide d'un élément href?

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

c'est la ligne (s) en XML qui se rapportent à cette erreur.

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

c'est ma déclaration DTD:

<!ELEMENT etymology (#PCDATA)> 

Depuis le « a href » ne sont pas tout à fait nécessaire ou même pas toujours là pour commencer à chaque élément de l'étymologie qui passe dans le fichier XML, comment Je les déclare correctement?

J'ai également la même situation au bas des fichiers XML où un élément de note de bas de page a hrefs et je me pose la même chose pour eux.

<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

Oui, ce sont plutôt des liens HTML dans les éléments Etymology et Footnote, j'ai essayé de faire et

Répondre

1

Il n'y a qu'une seule façon de déclarer mixed content (contient les éléments et #PCDATA). Fondamentalement, l'ordre et les occurrences des éléments enfants ne peuvent pas être contraints.

Citation de lien ci-dessus:

... les types des éléments enfants peut être contraint, mais pas leur ordre ou leur nombre d'occurrences

Voici comment vous modifier votre etymology déclaration:

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

Vous feriez la même chose avec footnote:

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