2009-11-09 13 views
-1

Je ne suis pas familier avec XML, quelqu'un peut-il me dire exactement ce que ce code est censé faire?Besoin d'aide pour comprendre le schéma DTD

<?xml version="1.0" encoding="ISO-8859"?> 
<!DOCTYPE person [ 
    <!ELEMENT first_name(#PCDATA)> 
    <!ELEMENT last_name(#PCDATA)> 
    <!ELEMENT PROFESSION(#PCDATA)> 
    <!ELEMENT name(first_name, last_name)> 
    <!ELEMENT person (name, profession)>]> 
<person> 
    <name> 
     <last_name>Jack</last_name> 
     <last_name>Jill</last_name> 
    </name> 
</person> 
+0

S'il vous plaît modifier votre titre pour être un peu plus concis sur ce que vous demandez ici ... – ChristopheD

Répondre

4

Ceci est une DTD incorporée, qui dicte quels éléments sont autorisés dans quel ordre, par ex. l'élément "name" doit contenir first_name suivi de last_name.

C'est une approche non conventionnelle, mais qui devrait être valide. Normalement, la DTD est un fichier externe, plutôt que d'être incorporé dans le document source.

+0

salut et merci encore, c'est moi encore. s'il vous plaît ce qui devrait être les changements à faire pour que le code s'exécute sans error.thanks – Selom

+0

Vous "n'exécutez pas" un document XML. Vous ne nous avez pas non plus dit quel est votre problème. – skaffman

+0

merci de répondre. Pouvons-nous dire que le code ci-dessus est bien formé et pourquoi? merci d'avoir répondu. – Selom

8

Ceci est un fichier XML, et il ne fait rien par lui-même. Au lieu de cela, il semble définir une "personne" avec deux noms de famille (mais le fichier n'est pas valide car la DTD indique à la fois le prénom et le nom de famille).

1

Le document xml indique d'abord qu'il s'agit d'un document XML avec un prologue (<?xml). Un DOCTYPE optionnel est défini, il s'agit simplement d'une liste de tous les éléments et attributs possibles dans le document, et le document lui-même est défini avec person étant le nœud racine, name étant le premier enfant, ayant deux enfants qui sont last_name nœuds . Je pense que le premier nœud sous name devrait être first_name, pas last_name.