2009-11-19 16 views
-1

, pouvez-vous indiquer comment je peux étendre le code suivant afin que cinq professions puissent être ajoutées dans le document xml?Si vous définissez une DTD pour stocker plusieurs instances d'une valeur

<?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> 
     <first_name>Jack</first_name> 
     <last_name>Jill</last_name> 
    </name> 
    <profession>website</profession> 
</person> 

merci pour répondre à

Répondre

3

Quelque chose comme cela devrait faire

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

Êtes-vous toujours l'accaparement des éléments « nom » et « personne » qu'il demande au sujet? – Chris

+0

Je pense que le problème est lié à la spécification de type DTD incorporée en haut du document, qui n'autorise qu'un seul élément de profession par élément de personne. –

+0

J'ai échoué à mettre à jour la DTD - mais cette mise à jour devrait être bien –

1

La DTD en haut du document spécifie un nom et une profession par élément personne.

changement à utiliser + (si vous voulez une ou plusieurs professions) ou * (si vous voulez 0 ou plusieurs professions):

<!ELEMENT person (name, profession+) 

ou

<!ELEMENT person (name, profession*) 

Notez que DTDs sont plutôt out-of-fashion, généralement remplacés par des spécifications XSD, plus flexibles et écrites en XML.

+0

merci, cela fonctionne. comment puis-je modifier le code de sorte qu'une adresse ou zéro peut être ajouté dans le code xml? celui qui m'a montré était d'environ un ou plusieurs. merci de répondre – Selom

1

Modifier la DTD

<?xml version=”1.0” encoding=”ISO-8859”?> 
<!DOCTYPE person [ 
<!ELEMENT first_name (#PCDATA)> 
<!ELEMENT last_name (#PCDATA)> 
<!ELEMENT profession (#PCDATA)> 
<!ELEMENT professions (profession*)> 
<!ELEMENT name (first_name, last_name)> 
<!ELEMENT person (name, professions)>]> 
<person> 
<name> 
<first_name>Jack</first_name> 
<last_name>Jill</last_name> 
</name> 
<professions> 
    <profession>prof 1</profession> 
    <profession>prof 2</profession> 
</professions> 
</person> 
+0

merci, cela fonctionne. comment puis-je modifier le code de sorte qu'une adresse ou zéro peut être ajouté dans le code xml? celui qui m'a montré était d'environ un ou plusieurs. merci d'avoir répondu – Selom

+0

Vous voulez dire profession, n'est-ce pas? Changez simplement le '*' en '?'. – tranmq

+0

merci beaucoup pour la réponse. – Selom