我正在尝试在Android设备上针对XSD验证XML文件。
我google了很多,找到了像xerces-for-android这样的解决方案。
在堆栈溢出中,我找到了一些类似this的页面,建议避免使用public interface IAnimal extends RealmModel {
int getNumberOfLegs();
void setNumberOfLegs(int legs);
boolean getHasFur();
void setHasFur(boolean hasFur);
}
public interface IDog extends IAnimal {
String getColor();
void setColor(String color);
boolean getCanDoTricks();
void setCanDoTricks();
}
public interface IGermanShepherd extends IDog {
boolean getIsGuardDog();
void setIsGuardDog(boolean isGuardDog);
boolean getIsAtRiskOfHipDysplasia();
void setIsAtRiskOfHipDysplasia(boolean isAtRisk);
}
。为此目的验证和使用Xerces。
我在不同的public class GermanShepard
extends RealmObject
implements IGermanShepard {
private int numLegs;
private boolean hasFur;
private String color;
private boolean canDoTricks;
private boolean isGuardDog;
private boolean isAtRiskofHipDysplasia;
// inherited getters/setters
}
测试了它,但遗憾的是我没有取得任何成功。
你能帮助我并建议一种替代方法。
答案 0 :(得分:2)
1 - 转到https://code.google.com/archive/p/xerces-for-android/
2 - 点击左侧菜单中的来源&在中间页面的源代码中。
3 - 点击下载代码&提取拉链内容。
4 - 在提取的内容中导航到文件夹" xerces-for-android / trunk / src"。
5 - 复制文件夹" mf"在你的[AndroidApp | AndroidModule]" src / main / java" 。目录
6 - 现在你必须创建一个名为" resources"的文件夹。在你的" src / main"目录。这可以在Android Studio中完成(右键单击模块/应用程序 - >新建 - >>文件夹 - > Java资源文件夹)。
7 - 在该文件夹中,您必须创建下一个文件夹结构:
MF /组织/阿帕奇/的Xerces / IMPL /味精
&安培;
MF /组织/阿帕奇/的xerces / IMPL /的xpath /正则表达式
8 - 使用" .properties"复制文件来自此目录中等效的extranted contents文件夹的扩展名。
使用类似
的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 ... package。
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 Schema验证Xml文档的信息时,我偶然发现了有关此项目的评论,尽管它只包含一个zip文件而没有文档。
我找了一个提交的存储库,并找到了这个https://github.com/MaTriXy/xerces-for-android 4年前最后一次提交的地方。
在资源中复制.java文件但不复制.profile后,抛出异常,说找不到.profile,查找新信息,我看到.profile必须在资源文件夹中Android Studio。
可能,这是一个假设,该项目是Eclipse / Ant的jar,现在不适用于AndroidStudio / Gradle。
您可以创建.aar。在项目中创建一个Android库模块,执行相同的步骤并编译应用程序以进行发布。
在您的项目中,在目录中。
/ Yourproject / yourmodule /建造/输出/ AAR /
将会有一个名为yourmodule-release.arr的文件,您应该能够使用该软件包并删除该模块。
寻找信息我还发现了有关jarjar的信息,这似乎是一个以更简单的方式进行调整的项目。
https://github.com/shevek/jarjar
度过愉快的一天。