我正在尝试使用jaxb生成xml。我创建了xsd并生成了Java类。但是,当我生成xml时,我会将ns2前缀添加到根标签中,这是我不想要的。
例如:我想成为根标签
<report>
<id>rep 1</id>
</report>
,但成为
<ns2:report>
....
</ns2:report>
在生成的java类中,我给了注解 @XmlRootElement(name="report",namespace="urn:report")
可以帮个忙吗
如果这是您的课程:
package example;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="report",namespace="urn:report")
public class Root {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
然后就可以知道根元素上有一个前缀,因为您已指定“根”元素是名称空间限定的,而“ id”元素则不是。
<ns2:report xmlns:ns2="urn:report">
<id>123</id>
</ns2:report>
如果将package-info类添加到模型,则可以利用@XmlSchema批注:
@XmlSchema(
namespace = "urn:report",
elementFormDefault = XmlNsForm.QUALIFIED)
package example;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
然后,JAXB实现可以选择利用默认名称空间,但是请注意,现在所有元素都是名称空间限定的,可能与您的XML模式匹配或不匹配:
<report xmlns="urn:report">
<id>123</id>
</report>
有关JAXB和名称空间的更多信息,请参见:
我有以下问题,当我生成XML文件时,Jaxb给根元素的名称空间添加前缀,我不知道如何跳过它。 我有软件包信息.java文件 我有根元素 结果我得到了 如果没有@XmlNs,它的工作方式也是一样的,将命名空间添加到@XmlRoolElement也没有帮助。它会有什么问题?
我正在使用JAXB生成用于编组/解组XML的类。问题是父类的命名空间仅适用于XML中的父元素,而不适用于JAXB注释类中使用的子类。 我不知道我犯了什么错误。下面是我的xsd和xml以及类。 XSD: 项目Responses.xsd JAXB类 项目响应.java 项目响应.java Money.java XML输出: 包信息。java有以下条目 货币类别不在同一个包中。如何将其包含在 Jaxb
如何使用JAXB生成以下结构?在我的例子中,我有一个动态属性列表,它可能有3种类型:整数、字符串或列表。但是,列表属性具有嵌套元素。我怎样才能做到这一点?
我正在从中生成大量Java文件http://www.ncpdp.org的XSD文件(仅对成员可用)。生成它们之后,我希望在Spring控制器中使用它们,但在将响应转换为XML时遇到问题。 我已经尝试返回元素本身,以及JAXBElement 这是我的控制器: 我试图创建一个MvcConfig来覆盖Spring Boot的MVC配置,但它似乎不起作用。 我需要做什么才能让Spring MVC将我生成的
jaxb 将所有标签分组为一个,我需要每个标签都有自己的命名空间。 具有: 需要: 将命名空间添加到@XmlElement没有帮助 包装信息:
问题内容: 我正在使用JAXB生成XML。但是JAXB会生成一个空的Tag来自我关闭。但是我的客户想要单独的空标签。我知道两者都是平等的,但他不同意我的看法。请任何人提出解决方案。谢谢。 样例代码: 实际输出: 预期产量: 编组代码: 我正在使用JDK 6.0 问题答案: 如果您已经从XSD生成了类,那么您还将生成ObjectFactory类。如果没有,请参考这里有关如何生成ObjectFacto