Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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_Xml_Jaxb_Xsd_Schema - Fatal编程技术网

Java 作为XML消息一部分的派生类型

Java 作为XML消息一部分的派生类型,java,xml,jaxb,xsd,schema,Java,Xml,Jaxb,Xsd,Schema,我们创建了两个XML模式,其中一个字段引用抽象类型,但在运行时,消息将包含从该抽象类型派生的类型。默认情况下,Java代码可以正确地处理这个问题,但我很困惑,XML解组是否以及如何处理这个问题。JAXB创建的JavaXML代码是否能够立即处理这些问题,或者我们是否需要进行一些处理?这是一个有点抽象的问题,所以这里有一个有点抽象的答案 JAXB很可能能够处理这个问题: 可以通过xsi:type指定特定类型。请看布莱斯·道格汉的。此方法允许在运行时使用特定类型。您将获得相同的元素,但是xsi:ty

我们创建了两个XML模式,其中一个字段引用抽象类型,但在运行时,消息将包含从该抽象类型派生的类型。默认情况下,Java代码可以正确地处理这个问题,但我很困惑,XML解组是否以及如何处理这个问题。JAXB创建的JavaXML代码是否能够立即处理这些问题,或者我们是否需要进行一些处理?

这是一个有点抽象的问题,所以这里有一个有点抽象的答案

JAXB很可能能够处理这个问题:

  • 可以通过
    xsi:type
    指定特定类型。请看布莱斯·道格汉的。此方法允许在运行时使用特定类型。您将获得相同的元素,但是
    xsi:type
    将指定使用的特定类型。例如,您可以获得
  • 有时继承是使用替换组建模的,请参见
    @xmlementdecl
    /。在这种情况下,可以用特定元素替换抽象元素。例如,一个抽象的
    \u几何体
    元素和一个特定的
    多边形
    元素
JAXB支持这两种方法,但通过不同的构造