0
でXML文字列を検証しながら、私は、XSDスキーマを使用してXMLを検証しようとしているが、検証の際には、java.net.MalformedURLException:なしプロトコルXSDスキーマ
java.net.MalformedURLExceptionスロー:なしプロトコルを:私が間違って起こっているこれまでのところで、
public boolean ValidateXML(String xmlContent) throws Exception {
try
{
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(getClass().getClassLoader().getResource("ABC/XYX/PQR.xsd"));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(xmlContent));
}...
を行っている何
、それが例外をスローして、この手順をvalidator.validate、私はここでエンコードされた文字列を提供する必要がありますか?
私はファイルでそれを行う場合、私は、ファイルからxmlContentを意味し、
validator.validate(new StreamSource(new File(filePath)));
、それが正常に動作しています。 私は
はい、それは、感謝を働きました。エンコードする必要があります。Stringはそれを処理しません。 – tyro
問題はエンコーディングではなく、StreamResourceコンストラクターで間違った型です。 String引数を指定してStreamResourceコンストラクタを呼び出すと、この文字列をURLとして解析しようとします。ドキュメントにそれを参照してください: https://docs.oracle.com/javase/7/docs/api/javax/xml/transform/stream/StreamSource.html#StreamSource(java.lang.String) 私の提案コールをInputStream引数を持つStreamResourceコンストラクタを作成し、それを行うためにxmlContent文字列をInputStreamでラップしました。 –
削除しました – tyro