这一段xml,是我用Dom4j的Document对象生成,然后写到文件里的。
用浏览器打开,或者XMLSpy打开,都会提示该文件不具备良好格式。<?xml version="1.0" encoding="UTF-8"?>
<host type="Windows XP" IP Address="127.0.0.1">
<CPU_Usage>44.0</CPU_Usage>
<Total_Memory>5056.0</Total_Memory>
<Free_Memory>4802.0</Free_Memory>
<Max_Memory>65088.0</Max_Memory>
<OS_Name>Windows XP</OS_Name>
<Total_Memory_Size>2095228.0</Total_Memory_Size>
<UsedMemory>1720968.0</UsedMemory>
<Total_Thread>5.0</Total_Thread>
</host>为啥呢?
用浏览器打开,或者XMLSpy打开,都会提示该文件不具备良好格式。<?xml version="1.0" encoding="UTF-8"?>
<host type="Windows XP" IP Address="127.0.0.1">
<CPU_Usage>44.0</CPU_Usage>
<Total_Memory>5056.0</Total_Memory>
<Free_Memory>4802.0</Free_Memory>
<Max_Memory>65088.0</Max_Memory>
<OS_Name>Windows XP</OS_Name>
<Total_Memory_Size>2095228.0</Total_Memory_Size>
<UsedMemory>1720968.0</UsedMemory>
<Total_Thread>5.0</Total_Thread>
</host>为啥呢?
<!ELEMENT sample (Title*,Author*,Email*,Date*,Test*)>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Author (#PCDATA)>
<!ELEMENT Email (#PCDATA)>
<!ELEMENT Date (#PCDATA)>
<!ELEMENT Test (#PCDATA)>
<!ENTITY www "wwwwwwwwww">
<!ENTITY m1 "1">
<!ENTITY m2 "22">
<!ENTITY m3 "333">
<!ENTITY m4 "4444">
<!ENTITY m5 "55555">
<!ENTITY m6 "666666">再有一个TestDTD.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sample SYSTEM "dtdfile.dtd">
<sample>
<Title>第一个XML文档</Title>
<Author>楼主请看</Author>
<Email>[email protected]</Email>
<Date>2009-02-25</Date>
<Test>&m1;</Test>
<Test>&m1;&m2;</Test>
<Test>&m1;&m2;&m3;&m4;&m5;&m6;</Test>
<Test><'&"&www;></Test>
</sample>========================
你把这2个文件放在同一目录下,然后用XMLSpy打开TestDTD.xml文件,就会发现是格式良好的了.关于schema格式(后缀是xsd)控制的如Spring2.0框架中的applicationContext.xml文件,用的就是xsd的,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
</beans>
把它改成IP_Address="127.0.0.1"就没有问题了
确实是 IP Address的问题。加上一个横线成IP_Address就可以了。
只是比较奇怪为什么用Document生成的时候它不去检查一下格式呢。谢谢paullbm耐心的讲解。