簡體   English   中英

如何調試org.xml.sax.SAXParseException; schema_reference.4?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM