Java JAXB编组和解编避免名称空间

Java JAXB编组和解编避免名称空间,java,namespaces,jaxb,Java,Namespaces,Jaxb,这是一个非常常见的问题,但如果有人能为我提供解决方案,我仍然需要一个具体的解决方案 JAXB.unmarshal('file', class); 但是,由于xml文件中存在名称空间,类对象没有使用内部元素填充 我发现的转变是创建一个JAXBContextobjectcreate和unmarshaller,然后让它知道名称空间 我很好奇是否还有其他解决方案。如果XML使用名称空间,这些名称空间是元素名称的一部分,不应该像解析未命名的元素一样进行解析。因此,这在JAXB中不是一个选项。沿着这些思路

这是一个非常常见的问题,但如果有人能为我提供解决方案,我仍然需要一个具体的解决方案

JAXB.unmarshal('file', class);
但是,由于xml文件中存在名称空间,类对象没有使用内部元素填充

我发现的转变是创建一个
JAXBContext
objectcreate和unmarshaller,然后让它知道名称空间


我很好奇是否还有其他解决方案。

如果XML使用名称空间,这些名称空间是元素名称的一部分,不应该像解析未命名的元素一样进行解析。因此,这在JAXB中不是一个选项。沿着这些思路,我们给出了唯一的解决方案,即在解组和删除所有名称空间之前对XML进行清理,并将JAXB对象绑定到未命名的名称。

如果节点始终使用名称空间URI进行限定,则应将此名称空间信息添加到JAXB绑定中。许多JAXB注释采用名称空间参数(即XmlRootElement、XmlAttribute、XmlElement等)。 还有一个名为@XmlSchema的包级注释,您可以使用它指定默认名称空间和默认名称空间限定规则