我有一个Java类:
@XmlRootElement(name = "a")
public class a {
@XmlElementWrapper
public Component[] components;
public String content;
}
以及一个XML文件:test.xml
和XSD文件,它们是使用JAXBContext::generateSchema
方法生成的。
XML文件示例:
<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"
无数次,这是愚蠢和毫无意义的。是否有一些方法允许我只键入名称空间一次?
发布于 2022-04-06 09:04:53
您可以尝试向包中添加文件:Packe-info.java。
@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;
https://stackoverflow.com/questions/71763607
复制相似问题