2017-02-16 4 views
3

AndroidデバイスでXSDに対してXMLファイルを検証しようとしています。AndroidでXSDに対してXMLを検証するソリューションがありません

私はたくさんのグーグルで探検し、xerces-for-androidのような解決策を見つけました。 Stack overflowで、thisのようなページが見つかりました。これは、javax.xmlを避けることを示唆しています。この目的のためにXercesを使用してください。

私はそれを別のAndroid APIs(17, 20,25)でテストしましたが、残念ながら私は成功しませんでした。

他の方法を提案してください。

答えて

1

1からhttps://code.google.com/archive/p/xerces-for-android/

2に行く - 中位ページでソースに左のメニュー&でソースをクリックします。

3 - コードをダウンロードします。&ジップの内容を抽出します。

4 - 抽出されたコンテンツで、 "xerces-for-android/trunk/src"というフォルダに移動します。

5 - [AndroidApp | AndroidModule] "src/main/java"ディレクトリに "mf"というフォルダをコピーします。

6 - "src/main"ディレクトリに "resources"というフォルダを作成する必要があります。これはAndroid Studio(モジュール/アプリケーション - >新規 - >フォルダ - > Javaリソースフォルダの右クリック)で行うことができます。

7 - そのフォルダ内には、次のフォルダ構造を作成する必要があります。
MF /組織/ apacheの/ Xercesの/ IMPL/MSG
&
MF /組織/ apacheの/ Xercesの/ IMPL/XPathの/正規表現

8 - ".properties"拡張子の付いたファイルを、このディレクトリ内の同等の拡張されたコンテンツフォルダからコピーします。


あなたはその

SchemaFactory factory = new XMLSchemaFactory(); 
Source schemaFile = new StreamSource(/*Input stream to your schema*/); 
Source xmlSource = new StreamSource(/*Input stream to your xml source*/); 
Schema schema = factory.newSchema(schemaFile); 
Validator validator = schema.newValidator(); 
validator.validate(xmlSource); 

SDKの輸入を使用し、MF ...パッケージのものを使用しないでくださいようなものでXSDを持つXMLファイルを検証します。コメントを返信するように編集

import mf.javax.xml.transform.Source; 
import mf.javax.xml.transform.stream.StreamSource; 
import mf.javax.xml.validation.Schema; 
import mf.javax.xml.validation.SchemaFactory; 
import mf.javax.xml.validation.Validator; 
import mf.org.apache.xerces.jaxp.validation.XMLSchemaFactory; 

AndroidでXmlスキーマを使用してXmlドキュメントを検証する方法に関する情報を探していたとき、私はこのプロジェクトに関するコメントを見つけましたが、ZIPとドキュメントは含まれていませんでした。

私はコミットしたリポジトリを探して、最後のコミットが4年前に行われたhttps://github.com/MaTriXy/xerces-for-androidを見つけました。

リソース内の.profileファイルをコピーした後で、.profileが見つからなかったという例外がスローされました。新しい情報を探し、.profileがresourcesフォルダ内になければならないことがわかりましたAndroidスタジオで

おそらく、これは前提ですが、このプロジェクトはEclipse/Antのjarファイルで、AndroidStudio/Gradleでは動作しません。

.aarを作成できます。あなたのプロジェクトでAndroidライブラリモジュールを作成し、同じ手順を実行し、リリース用にアプリケーションをコンパイルします。

プロジェクト内のディレクトリ内。

/Yourproject/yourmodule /構築/出力/ AAR/

ありyourmodule-release.arrと呼ばれるファイルになりますと、あなたはそのパッケージを使用してモジュールを削除することができるはずです。

私はまた、このアダプテーションをより簡単な方法で作成するプロジェクトであると思われるjarjarについての情報を見つけました。

https://github.com/shevek/jarjar

良い一日を。

+0

あなたの完璧な答えをありがとうございました。フォルダをコピーする代わりに、libにjarファイルを使用する解決策はありますか? – Sohrab

+0

編集応答のレスポンス –

関連する問題