JAXB解组无法返回具有替换组的元素

JAXB解组无法返回具有替换组的元素,jaxb,unmarshalling,substitution,Jaxb,Unmarshalling,Substitution,在解组xml文档时,JAXB无法解组具有替换组名称的复杂类型。doucment带有替换名,JAXB解组进程无法将数据与实际元素绑定。 最后,我得到一个空对象,它的数据到达xml文档中。这是JAXB中的错误还是我在这里做错了什么 注意:下面的模式清楚地定义了有问题的复杂元素类型函数的替换名。并且在解组“xn:ManagedElementOptionallyContainedNrmClass”时没有错误,但是数据没有填充到Java类“ENBFunction”中 主要问题在于我创建JAXBContex

在解组xml文档时,JAXB无法解组具有替换组名称的复杂类型。doucment带有替换名,JAXB解组进程无法将数据与实际元素绑定。 最后,我得到一个空对象,它的数据到达xml文档中。这是JAXB中的错误还是我在这里做错了什么

注意:下面的模式清楚地定义了有问题的复杂元素类型函数的替换名。并且在解组“xn:ManagedElementOptionallyContainedNrmClass”时没有错误,但是数据没有填充到Java类“ENBFunction”中


主要问题在于我创建JAXBContext实例的方式。JAXB为创建JAXBContext实例提供了多种方法:

static JAXBContext  newInstance(Class... classesToBeBound) 
       Obtain a new instance of a JAXBContext class.
static JAXBContext  newInstance(Class[] classesToBeBound, Map<String,?> properties) 
       Obtain a new instance of a JAXBContext class.
***static JAXBContext   newInstance(String contextPath) 
       Obtain a new instance of a JAXBContext class.***
static JAXBContext  newInstance(String contextPath, ClassLoader classLoader) 
       Obtain a new instance of a JAXBContext class.
static JAXBContext  newInstance(String contextPath, ClassLoader classLoader, Map<String,?> properties) 
       Obtain a new instance of a JAXBContext class.
在其中,我提供了所有要绑定的jaxb类,但不知何故,这些类不起作用。当我使用第三种对象创建方法时,它起到了作用,该方法使用一个字符串,其中包含所有jaxb类所在的冒号分隔的包名

static JAXBContext   newInstance(String contextPath)

请考虑修改您在这个问题中发布的代码示例。目前,它的格式和范围使我们很难帮助您;这是一个让你开始学习的方法-1、不要误会。否决票是指我们如何表明这里存在内容问题;改进您的格式和代码示例,我(或有人会)很乐意恢复它。祝你的代码好运@lexicore,谢谢你的建议。现在已修改内容。问题现已解决,已设法找出根本原因。似乎在创建JAXBContext时,我没有将特定的jaxb类名作为参数提供给JAXBContext.newInstance方法,而是将所有包名(冒号分隔)作为单个字符串提供给JAXBContext.newInstance方法。这就解决了这个问题,而且对于jaxb类来说,数据以xml的形式以其替代名称到达,解组工作正在顺利进行。谢谢
static JAXBContext  newInstance(Class... classesToBeBound) 
static JAXBContext   newInstance(String contextPath)