繁体   English   中英

从 XSD 生成类删除命名空间引用

[英]Generate classes from XSD removing namespaces references

我有一组相当大的 XSD 文件。 由此我正确生成 Java 类(我使用的是org.apache.cxf.cxf-xjc-plugin )。 我的问题是我从 web 服务获得的响应不使用命名空间(显然我无法要求服务提供商更改响应)。 因此,我使用 jaxb 的解组步骤无法填充内部 object 字段。

我用来解组的代码是(类似于)这个:

    private <T> T unmarshalFromStr(String str, Class<T> clazz) throws JAXBException {
        jaxbCtx = JAXBContext.newInstance(MyGneratedClass1.class, MyGneratedClass2.class, ...);
        Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
        JAXBElement<T> obj = unmarshaller.unmarshal(new StreamSource(new StringReader(str)), clazz);
        return obj.getValue();
    }

我(显然)不想重写 xsd 文件或手动修改生成的类。

有什么提示吗?

提前致谢。

我不确定这是否完全符合您的目的,但您可以尝试使用绑定文件来自定义 JAXB 类创建并使用您自己的 package 参考。 有关文档,请查看内容和此处的一些示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM