Android中没有针对XSD验证XML的解决方案

Android中没有针对XSD验证XML的解决方案,xml,validation,xsd,xerces,xmlschemaset,Xml,Validation,Xsd,Xerces,Xmlschemaset,我正在尝试在Android设备上验证XML文件与XSD的对比 我在谷歌上搜索了很多,找到了一些类似的解决方案。 在堆栈溢出中,我发现了一些类似的页面,建议避免javax.xml。验证并为此目的使用Xerces 我在不同的Android API(17,20,25)中测试了它,但不幸的是,我没有取得任何成功 请您帮助我并建议一种替代方法。1-转到 2单击左菜单中的源文件和中间页中的源代码。 3-单击下载代码并提取zip内容 4-在提取的内容中导航到文件夹“xerces for android/tr

我正在尝试在Android设备上验证XML文件与XSD的对比

我在谷歌上搜索了很多,找到了一些类似的解决方案。 在堆栈溢出中,我发现了一些类似的页面,建议避免
javax.xml
。验证并为此目的使用Xerces

我在不同的
Android API(17,20,25)
中测试了它,但不幸的是,我没有取得任何成功

请您帮助我并建议一种替代方法。

1-转到

2单击左菜单中的源文件和中间页中的源代码。

3-单击下载代码并提取zip内容

4-在提取的内容中导航到文件夹“xerces for android/trunk/src”

5-复制[AndroidApp | AndroidModule]“src/main/java”目录中的文件夹“mf”

6-现在您必须在“src/main”目录上创建一个名为“resources”的文件夹。这可以在Android Studio中完成(右键单击模块/应用程序->新建->文件夹->Java资源文件夹)

7-在该文件夹内,必须创建下一个文件夹结构:
mf/org/apache/xerces/impl/msg
&
mf/org/apache/xerces/impl/xpath/regex

8-从该目录中的等效外接内容文件夹复制扩展名为“.properties”的文件


当您使用类似的XSD验证XML文件时

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。。。打包

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中寻找关于如何使用xmlschema验证Xml文档的信息时,我偶然发现了关于这个项目的评论,尽管它只包含一个zip文件,没有文档

我查找了一个有提交的存储库,发现它是4年前最后一次提交的存储库

在复制了资源中的.java文件而不是.profile之后,抛出了一个异常,表示找不到.profile,查找新信息,我发现.profile必须位于Android Studio的resources文件夹中

可能,这是一个假设,该项目是Eclipse/Ant的jar,现在不适用于AndroidStudio/Gradle

您可以创建一个.aar。在您的项目中创建一个Android库模块,执行相同的步骤并编译应用程序以供发布

在项目中,在目录中

/你的项目/你的模块/构建/输出/aar/

将有一个名为yourmodule-release.arr的文件,您应该能够使用该包并删除该模块

在寻找信息时,我还发现了关于jarjar的信息,这似乎是一个以更简单的方式进行这种改编的项目


祝你今天愉快。

非常感谢你的完美回答。有没有办法在Lib中使用jar文件而不是复制文件夹???