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

标签 java xml xsd namespaces cxf

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

    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 文件或手动修改生成的类。
任何提示?
提前致谢。

最佳答案

我不确定这是否完全符合您的目的,但您可以尝试使用绑定(bind)文件来自定义您的 JAXB 类创建并使用您自己的包引用。
对于文档检查 this和一些例子here

关于java - 从 XSD 删除命名空间引用生成类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65977526/

相关文章:

java - 如何根据特殊字符将句子拆分为单词

python - XMLSyntaxError :Input is not proper UTF-8, 表示编码,Odoo

android - eclipse xml 编辑器显示滚动屏幕图形布局

java - 是否有用于 Java 对象/类的标准 XML 模式?

xml - W3C XML Schema 和 maxOccurs 的最大整数

java - 如何使用 Mockito 模拟 void 方法

java - 我如何编写一个每个人都看到的公共(public)计时器?

java - 如何用正则表达式替换java程序中的xml标签和值

xsd - 使用 jaxb 从我的类路径中的 xsd 生成源代码

java - 如何在 Java 中比较字符串?