2010-10-27 4 views
0

Je veux déclarer ma DTD pour forcer le noeud XML à avoir une valeur. Par exemple, j'ai la structure XML suivante.DTD: Comment déclarer une DTD à doit avoir une valeur d'élément?

<Employees> 
    <EmployeeID></EmployeeID> 
    <EmployeeName></EmployeeName> 
    <EmployeeAddress></EmployeeAddress> 
</Employees> 

Je souhaite que la valeur du noeud EmployeeID doit exister pour tous les fichiers XML. Je veux donc créer une DTD pour avoir une valeur pour le nœud XML.

+0

Y a-t-il une raison spectaculaire pour écrire une DTD au lieu d'une XSD? Dans un XSD, il est facile de spécifier 'MinOccurs = 1' ... –

+0

Désolé, je veux le faire uniquement dans la DTD. C'est l'exigence. –

Répondre

1

Pouvez-vous faire de l'EmployeeID un attribut? Ensuite, vous pourriez le déclarer comme étant de type ID ...

Sinon, je ne pense pas qu'il y ait un moyen avec une DTD d'exiger que sa valeur soit une chaîne non vide.

Avez-vous considéré RelaxNG? C'est puissant, flexible et pas difficile à apprendre.