Java 将XML解析器与类解耦
我正在编写一个Android应用程序,我希望为最终用户提供使用XML从类层次结构创建对象集合的能力。例如:我希望用户能够提供如下任意示例:Java 将XML解析器与类解耦,java,android,xml,xsd,decoupling,Java,Android,Xml,Xsd,Decoupling,我正在编写一个Android应用程序,我希望为最终用户提供使用XML从类层次结构创建对象集合的能力。例如:我希望用户能够提供如下任意示例: <animals> <dogs> <bulldog name="Frank" /> <mastif name="George" /> </dogs> <cats> <mainecoon name="Alex"
<animals>
<dogs>
<bulldog name="Frank" />
<mastif name="George" />
</dogs>
<cats>
<mainecoon name="Alex" age="3" />
</cats>
</animals>
我想根据我创建的模式验证这个用户提供的XML,然后基于XML创建这些类的实例。我的问题是如果我添加一个子类。。比如说爬行动物,我必须更改XML解析器的实现以及模式来验证XML。这似乎是一种不好的做法,因为类层次结构中的更改要求在其他地方进行更改。在我的Android应用程序中添加一个类型对用户可以提供的XML和验证它的模式有什么影响?我找到了一个解决方案。使用注释和JAXB或Simple之类的框架可以将对象序列化/反序列化到xml或从xml序列化/反序列化对象。JAXB可以在Android上运行,这可能是一个解决方案 但是JAXB的重量相当重,所以我更喜欢它,因为它更轻