首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jaxb java将命名空间设置为所有元素。

Jaxb java将命名空间设置为所有元素。
EN

Stack Overflow用户
提问于 2022-04-06 08:42:11
回答 1查看 116关注 0票数 0

我有一个Java类:

代码语言:javascript
运行
复制
@XmlRootElement(name = "a")
public class a {
    @XmlElementWrapper
    public Component[] components;

    public String content;
}

以及一个XML文件:test.xml和XSD文件,它们是使用JAXBContext::generateSchema方法生成的。

XML文件示例:

代码语言:javascript
运行
复制
<a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://example.com"
      xsi:schemaLocation="http://example.com file://...schema.xsd">
</a>

如果我想解除封送,我需要在所有元素中添加命名空间= "http://example.com“。

否则,我将得到一个javax.xml.bind.UnmarshalException作为this

但是,如果我在许多不同的包中有很多类,或者使用@XmlElements注释的某些字段有很多@XmlElement子类。

我需要复制和粘贴namespace = "http://example.com"无数次,这是愚蠢和毫无意义的。是否有一些方法允许我只键入名称空间一次?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-06 09:04:53

您可以尝试向包中添加文件:Packe-info.java。

代码语言:javascript
运行
复制
@javax.xml.bind.annotation.XmlSchema(namespace = 
"http://webservices.com/myws",
   xmlns = { 
       @javax.xml.bind.annotation.XmlNs(prefix = "ws", 
       namespaceURI="http://webservices.com/myws")
   } 
)
package mypackage;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71763607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档