Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将XML解析器与类解耦_Java_Android_Xml_Xsd_Decoupling - Fatal编程技术网

Java 将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"

我正在编写一个Android应用程序,我希望为最终用户提供使用XML从类层次结构创建对象集合的能力。例如:我希望用户能够提供如下任意示例:

<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的重量相当重,所以我更喜欢它,因为它更轻