2014-05-19 26 views
1

我有内嵌在DTD XML file.When我验证为包含或指向文档类型必须形成公 声明错误在具有内联XML DTD

,标记声明我得到错误。

<?xml version='1.0' encoding='ISO-8859-1'?> 
<!DOCTYPE MESSAGE [ 
<!ELEMENT MESSAGE (USER,SMS+)> 
<!ELEMENT USER EMPTY> 
<!ELEMENT SMS (ADDRESS)> 
<!ELEMENT ADDRESS EMPTY> 
<!ATTLIST MESSAGE VER CDATA #REQUIRED> 
<!ATTLIST USER USERNAME CDATA #REQUIRED> 
<!ATTLIST USER PASSWORD CDATA #REQUIRED> 
<!ATTLIST SMS TEXT CDATA #REQUIRED> 
<!ATTLIST SMS ID CDATA #REQUIRED> 
<!ATTLIST ADDRESS FROM CDATA #REQUIRED> 
<!ATTLIST ADDRESS TO CDATA #REQUIRED> 
<!ATTLIST ADDRESS SEQ CDATA #REQUIRED> 
]> 
<MESSAGE VER='1.2' ><USER USERNAME='username' PASSWORD='password'/> 
<SMS TEXT='message Text' ID='1'> 
<ADDRESS FROM='32323233' TO='21212445455' SEQ='11'/> 
</SMS><SMS TEXT='Text' ID='2'> 
<ADDRESS FROM='text1111111111' TO='9090909090' SEQ='2' /> 
</SMS> </MESSAGE> 
+1

你用什么来验证你的XML?只要你在'<?xml'声明之前没有任何空格(包括换行符),它对我来说就是正确的验证。 (在oXygen中使用Xerces进行验证。) –

回答

0

这可能会发生因<?XML之间多余的空格?>

0

据我所知,您报告错误消息的最可能原因是您在XML声明之前有空格(空白)。将其删除,以便XML声明是解析器在文件中看到的第一件事。