[英]XSD validator giving org.xml.sax.SAXParseException: schema_reference.4 error
[英]How to debug org.xml.sax.SAXParseException; schema_reference.4?
(不是可能不相關,但是今天我剛好是由以下原因引起的: 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周前)。
當然UTF_8
是不正確的,應該是UTF-8
http://www.w3.org/TR/REC-xml/#NT-EncodingDecl對XML聲明中的有效encoding
屬性值有一個解釋。
實際上,Java XML解析器支持Java支持的任何encoding
,並且還允許使用別名,例如UTF8也很好,但UTF_8則不行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.