是什么xml架构上下文生成方法签名,如xjc的ObjectFactory的“JAXBElemet <xyz> createXyz(Xyz xyz)”?</xyz>

时间:2011-03-15 03:12:04

标签: java jaxb objectfactory

我注意到定义了simpleType或complexType,并且在模式文件中的多个元素的声明中使用了类型,simpleType或complexType生成方法签名为“JAXBElemet createXyz(Xyz xyz)”。但我不确定这是否是根本原因。

1 个答案:

答案 0 :(得分:1)

为了将对象编组为XML,JAXB需要知道要使用的XML元素的名称。它可以从(a)类的@XmlRootElement注释中获得,或者(b)将对象包装在包含元素名称的JAXBElement中。

如果XJC生成的类没有@XmlRootElement,那么ObjectFactory中该类的工厂方法将改为使用JAXBElement包装器,以提供所需的编组信息。

然后你可以问为什么XJC决定为某些课程而不是其他课程生成@XmlRootElement,但之前已经问过,所以去看看那个。