2011-12-06 59 views
8

Estoy tratando de validar mi archivo XML con una DTD externa. Pero obtengo este error cada vez.Error de validación XML -El elemento raíz debe coincidir con doctype

Document root element "A", must match DOCTYPE root "test". 

no puedo resolver esto.

La idea de mi archivo xml es que debe ser lo más breve posible. Creo que todo está bien, pero como he dicho, no lo validaré. ¿Alguien tiene una idea?

Este es mi archivo XML

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE test SYSTEM "test.dtd"> 

<A> 
<B> 
<F>name</F> 
</B> 
<D>lastname</D> 
<F>name</F> 
</A> 

Y mi DTD

<!ELEMENT A (B, (C|D), E?, (F, G?)+)> 
<!ELEMENT B (F|G)+> 
<!ELEMENT D (#PCDATA|C)*> 
<!ELEMENT F (#PCDATA)> 
<!ELEMENT G (#PCDATA)> 
<!ELEMENT C (#PCDATA)> 
<!ELEMENT E (#PCDATA)> 

Gracias

Respuesta

14

El Doctype afirma que el elemento raíz es <test> pero se han utilizado <A>

<!DOCTYPE test 
      ^^^^ 

Cambie el Doctype por lo que alega que la raíz es <A> o cambie el XML y la DTD para usar <test>.

4
<!DOCTYPE test SYSTEM "test.dtd"> 

Declara que el elemento raíz del documento DTD-conformes se llama test. Usted quiere:

<!DOCTYPE A SYSTEM "test.dtd"> 
Cuestiones relacionadas