2017-10-17 13 views
0

Je suis en train de créer un fichier XML contenant des informations sur une liste de livres à l'aide des éléments créés dans un fichier DTD, tous les éléments ont été correctement référencés (je pense?). Une erreur s'affiche lorsque j'essaie de créer un fichier XML en utilisant les éléments de la revendication DTD; "Un élément racine doit être spécifié". Y at-il un problème avec mon code ou est-il possible, bien que peu probable, un problème avec son Eclipse (à savoir version ne convient pas, Plug-in manquant)?Ce qui pourrait être une raison pour laquelle un élément racine peut ne pas être spécifié dans la création tentative d'un XML en utilisant un ImDTD par Eclipse?

<?xml version="1.0" encoding="UTF-8"?> 
<!ELEMENT bookList(book)*> 
<!ELEMENT book((author | editor, contributors+), title, publisher, isbn_num, price, vol?, edition?)> 

<!ELEMENT author(#PCDATA)> 

<!ELEMENT editor(#PCDATA)> 

<!ELEMENT contributors(#PCDATA)> 

<!ELEMENT title(#PCDATA)> 

<!ELEMENT publisher(#PCDATA)> 

<!ATTLIST isbn_num id_code ID #REQUIRED> 

<!ELEMENT price(#PCDATA)> 
<!ATTLIST price currency (GBP | EUR | USD) #IMPLIED> 

<!ELEMENT vol(#PCDATA)> 

<!ELEMENT edition(#PCDATA)> 

Verion utilisé: Eclipse IDE Java EE, Oxygen.1 de presse (4.7.1)

+1

Quelle commande utilisez-vous exactement pour créer un document? Cette commande attend-elle un nom de type d'élément pour l'élément racine en tant que paramètre? Est-il attendre la DTD de prendre la forme ''? –

+0

Que faites-vous exactement avec cette DTD quand vous obtenez cette erreur? –

Répondre

0

Votre XML a besoin d'un élément racine, et un lien vers le fichier DTD. Quelque chose comme ceci serait le résultat final pour une DTD externe.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE root SYSTEM "file.dtd"> 
<root> 
<element1>a</element1> 
<element2>b</element2> 
<element3>c</element3> 
<element4>d</element4> 
</root> 

"root" pourrait être tout ce que vous voulez.

On dirait que vous faites une DTD externe, auquel cas, votre fichier n'a pas besoin de la définition XML.

<!ELEMENT bookList(book)*> 
<!ELEMENT book((author | editor, contributors+), title, publisher, isbn_num, price, vol?, edition?)> 
<!ELEMENT author(#PCDATA)> 
<!ELEMENT editor(#PCDATA)> 
<!ELEMENT contributors(#PCDATA)> 
<!ELEMENT title(#PCDATA)> 
<!ELEMENT publisher(#PCDATA)> 
<!ATTLIST isbn_num id_code ID #REQUIRED> 
<!ELEMENT price(#PCDATA)> 
<!ATTLIST price currency (GBP | EUR | USD) #IMPLIED> 
<!ELEMENT vol(#PCDATA)> 
<!ELEMENT edition(#PCDATA)> 

Si vous tentiez de faire une DTD interne.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE bookList [ 
<!ELEMENT bookList(book)*> 
<!ELEMENT book((author | editor, contributors+), title, publisher, isbn_num, price, vol?, edition?)> 
<!ELEMENT author(#PCDATA)> 
<!ELEMENT editor(#PCDATA)> 
<!ELEMENT contributors(#PCDATA)> 
<!ELEMENT title(#PCDATA)> 
<!ELEMENT publisher(#PCDATA)> 
<!ATTLIST isbn_num id_code ID #REQUIRED> 
<!ELEMENT price(#PCDATA)> 
<!ATTLIST price currency (GBP | EUR | USD) #IMPLIED> 
<!ELEMENT vol(#PCDATA)> 
<!ELEMENT edition(#PCDATA)> 
]> 
<bookList>......</bookList>