用jdom和jxap解析xml文件的时候都遇到了这个问题,验证xml文件的时候,都显示文件模式错误比如这样一个java程序
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import org.xml.sax.*;
public class Test {
public static void main(String[] args) throws Exception{
SAXBuilder builder = new SAXBuilder(true);
builder.build("test.xml");
}
} 有以下的xml和dtd文件。test.xml,test.dtd
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE test SYSTEM "test.dtd">
<data type="student">
<name>Tom</name>
<gender>male</gender>
<age>11</age>
</data> <!ELEMENT data (name, gender, age)>
<!ATTLIST data type CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT age (#PCDATA)> 运行时就会出现这样的异常,什么情况,我哪里弄错了?Exception in thread "main" org.jdom.input.JDOMParseException: Error on line 3 of document file:///home/leguroky/Desktop/test.xml: Document root element "data", must match DOCTYPE root "test".
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import org.xml.sax.*;
public class Test {
public static void main(String[] args) throws Exception{
SAXBuilder builder = new SAXBuilder(true);
builder.build("test.xml");
}
} 有以下的xml和dtd文件。test.xml,test.dtd
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE test SYSTEM "test.dtd">
<data type="student">
<name>Tom</name>
<gender>male</gender>
<age>11</age>
</data> <!ELEMENT data (name, gender, age)>
<!ATTLIST data type CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT age (#PCDATA)> 运行时就会出现这样的异常,什么情况,我哪里弄错了?Exception in thread "main" org.jdom.input.JDOMParseException: Error on line 3 of document file:///home/leguroky/Desktop/test.xml: Document root element "data", must match DOCTYPE root "test".
Document root element "data", must match DOCTYPE root "test".文档的根元素data必须匹配DOCTYPE root "test".
<!DOCTYPE data SYSTEM "test.dtd">
<data type="student">
<name>Tom</name>
<gender>male</gender>
<age>11</age>
</data>