2011-03-28 32 views
6

test.xml:externa hace referencia DTD en XML

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE email SYSTEM "test.dtd"> 
<email> 
<von>[email protected]</von> 
<zu>[email protected]</zu> 
<titel>Hello</titel> 
<text>Dear John....;-).</text> 
<prior type="schnell"/> 
</email> 

test.dtd: Código

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE email [ 
<!ELEMENT email (von,zu,titel,text,prior)> 
<!ELEMENT von (#PCDATA)> 
<!ELEMENT zu (#PCDATA)> 
<!ELEMENT titel (#PCDATA)> 
<!ELEMENT text (#PCDATA)> 
<!ATTLIST prior type CDATA #REQUIRED > 
]> 

error en test.dtd

Las declaraciones de marcas contenían o la que apunta la declaración del tipo de documento debe estar bien formada. [2]

Por favor ayuda !!

Respuesta

13

Tiene declaraciones DOCTYPE duplicadas. Si desea hacer referencia a una DTD externa:

test.xml

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE email SYSTEM "test.dtd"> 
<email> 
<von>[email protected]</von> 
<zu>[email protected]</zu> 
<titel>Hello</titel> 
<text>Dear John....;-).</text> 
<prior type="schnell"/> 
</email> 

test.dtd

<!ELEMENT email (von,zu,titel,text,prior)> 
<!ELEMENT von (#PCDATA)> 
<!ELEMENT zu (#PCDATA)> 
<!ELEMENT titel (#PCDATA)> 
<!ELEMENT text (#PCDATA)> 
<!ELEMENT prior EMPTY> 
<!ATTLIST prior type CDATA #REQUIRED > 

Si desea que su DTD como parte del archivo XML (interno subconjunto):

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE email [ 
<!ELEMENT email (von,zu,titel,text,prior)> 
<!ELEMENT von (#PCDATA)> 
<!ELEMENT zu (#PCDATA)> 
<!ELEMENT titel (#PCDATA)> 
<!ELEMENT text (#PCDATA)> 
<!ELEMENT prior EMPTY> 
<!ATTLIST prior type CDATA #REQUIRED > 
]> 
<email> 
<von>[email protected]</von> 
<zu>[email protected]</zu> 
<titel>Hello</titel> 
<text>Dear John....;-).</text> 
<prior type="schnell"/> 
</email> 

NOTA: También le falta una declaración ELEMENT para su elemento prior.

Cuestiones relacionadas