私のアプリケーションはXMLを解析しようとしていますが、次の例外がスローされます。
ドキュメントの要素コンテンツに無効なXML文字(Unicode:0x52)が見つかりました。
XMLが有効であると100%確信しています。しかし、それでもなぜこの例外が発生するのかわかりません。
この例外の原因となる可能性のあるアイデアはありますか?
xmlファイルを読み取るために使用しているコードは次のとおりです。
String policyFile = filename;
try {
String overRide = System.getProperty("TEST_POLICY_FILE");
if (overRide != null) {
policyFile = overRide;
}
// URL urlToPolicyFile = new URL(policyFile);
// InputStream is = urlToPolicyFile.openStream();
//InputStream is = getClass().getClassLoader().getResourceAsStream(policyFile);
// get XML Parser instance
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setIgnoringComments(true);
factory.setValidating(false);
DocumentBuilder builder = factory.newDocumentBuilder();
builder.setEntityResolver(VacEntityResolver.getInstance());
InputSource inputSource = new InputSource(policyFile);
// parse input file
Document policyDocument = builder.parse(inputSource);
Builder policyBuilder = new Builder();
// load decl-policies file into cache
visitDeclarativePolicies(policyDocument, policyBuilder);
m_myPolicyCache = policyBuilder.getPolicyCache();
} catch (SAXException e) {
throw new InvalidPolicyFileException(policyFile);
} catch (ParserConfigurationException e) {
throw new InvalidPolicyFileException(policyFile);
} catch (IOException e) {
throw new InvalidPolicyFileException(policyFile);
}
この線、
Document policyDocument = builder.parse(inputSource);
エラーをスローしているものです
この問題に関する興味深い事実の1つは、実稼働環境でのみ発生していることです。同じXmlファイルは、私の開発環境でもテスト環境でも問題を引き起こしていません。ファイルを共有していないことをお詫びします。これはファイルです。共有しないでください。しかし、同じ入力ファイルが私の開発環境で問題を引き起こしていません。
'R'である文字0x52の例外をスローしているため、この問題は私には奇妙に思えます。