安全な https サイトにあるスキーマを使用して XML ファイルを検証したいと考えています。バリデーターに自己署名証明書を除外するか、https URL を使用するように指示するにはどうすればよいですか? test.xml というファイルと .xml にあるスキーマがありますhttps://localhost:1234/module/testschema.xsd
。ここにあるのと同じコードを使用しています。通常の URL ( http://localhost/module/testschema.xsd
) を使用すると、うまく機能します。https URL に置き換えると、次のエラーが発生します。
schema_reference.4: スキーマ ドキュメント ' https://localhost:1234/module/testschema.xsd ' の読み取りに失敗しました。1) ドキュメントが見つからなかったためです。2) ドキュメントを読み取ることができませんでした。3) ドキュメントのルート要素は ではありません<xsd:schema>
。
コピーされたコード:
public boolean validateFile(String xml, String strSchemaLocation)
{
Source xmlFile = null;
try {
URL schemaFile = new URL(strSchemaLocation);
xmlFile = new StreamSource(new File(xml));
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(schemaFile);
Validator validator = schema.newValidator();
validator.validate(xmlFile);
System.out.println(xmlFile.getSystemId() + " is valid");
} catch (SAXException e) {
System.out.println(xmlFile.getSystemId() + " is NOT valid");
System.out.println("Reason: " + e.getLocalizedMessage());
return false;
} catch (IOException ioe) {
System.out.println("IOException");
return false;
}
return true;
}