0

XML を読み取る JDOM パーサーを使用しており、xsd スキーマを使用した検証が含まれています。

一般に、xsd のパスをパーサーに設定するための構文は、ドキュメントによると次のとおりです。

        SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);
        builder.setFeature("http://apache.org/xml/features/validation/schema", true);
        builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", <schema_path>);

schema_pathを http: で始まる URL または絶対パス (つまり、c:/myFolder/schema.xsd)に設定すること
で機能しますWeb ルートの下のどこかにあるでしょうか。JDOMビルダーへの相対パスを提供することは可能ですか?

この質問に答えることができる人は、xsd の使用に関して私が直面した別の問題の解決にも役立つ可能性があり
ます。

4

1 に答える 1

0

文字列引数として相対パスを指定することはできません。

WEB-INF フォルダーへの実際のパスを取得するには、試してください

getServletContext().getRealPath("/WEB-INF")

WEB-INF/my.xsd への実際のパスを取得するには、次を使用します。

getServletContext().getRealPath("/WEB-INF/my.xsd")

getRealPathメソッドは、サーバーのファイル システム上の絶対ファイル パスを返します。

スキーマを jar リソースとして追加する場合は、こちらをお読みください。

于 2010-12-29T01:10:49.280 に答える