(不是它可能没有关系,但今天我刚刚得到了引起:java.io.UnsupportedEncodingException: UTF_8
和Oxygen XML编辑器一样)
错误是:
SEVERE: null
org.xml.sax.SAXParseException; schema_reference.4: Failed to read schema document 'file:/fileLocation', because 1)
could not find the document; 2) the document could not be read; 3) the root element
of the document is not <xsd:schema>.
来自第三行代码:
File schemaFile = new File("filenName.xsd");
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(schemaFile);
我做的第一件事就是复制路径并测试它以确保它指向正确的文件。我做到了。
其次是检查java是否能够读取该文件,并使用.canRead()进行检查;
第三,我在架构内检查根节点。
<?xml version="1.0" encoding="UTF_8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="name" xmlns="name">
...
</xsd:schema>
它曾经是 xs:schema ,但我切换它是因为我收到了这个错误。最奇怪的是,当我编码时,我没有得到任何错误(1周前)。
答案 0 :(得分:4)
当然UTF_8
不正确,应该是UTF-8
此处有http://www.w3.org/TR/REC-xml/#NT-EncodingDecl
对XML声明中有效encoding
属性值的解释
实际上,Java XML解析器支持Java支持的任何encoding
,并且还允许别名,例如UTF8也不错,但不是UTF_8。