使用JDOM时出现错误
org.jdom2.input.JDOMParseException:第4行出现错误:cvc-elt.1:无法
找到元素“ rootElement”的声明。
我有xsd menu.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema version="1.0"
targetNamespace="http://www.w3schools.com/menu"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3schools.com/menu"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="rootElement" type="xs:string"/>
</xs:schema>
和xml menu.xml
<?xml version="1.0"?>
<rootElement xmlns="http://www.w3schools.com/menu"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com/menu menu.xsd">
</rootElement>
使用
public class RunXml
{
public static void main(String[] args) throws JDOMException, IOException
{
SAXBuilder builder = new SAXBuilder(XMLReaders.XSDVALIDATING);
File xml = new File("xml/menu.xml");
InputStream inputStream = new FileInputStream(xml);
Document document = builder.build(inputStream);
}
}
接下来是文件。有什么问题?
最佳答案
它找不到xsd。
问题解决了:
File xsdfile = new File("xml/menu.xsd");
XMLReaderJDOMFactory schemafac = new XMLReaderXSDFactory(xsdfile);
SAXBuilder builder = new SAXBuilder(schemafac);