- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有这种情况
@XmlType(name ="", propOrder={"value"})
@XmlRootElement(name = "compound")
public class Compound extends Value {
@XmlElements({
@XmlElement(name="simple", type=Simple.class),
@XmlElement(name="compound", type=Compound.class)
})
protected List<Value> value;
// ...
}
所以复合是简单和/或复合的列表。两者都从定义为 Value 扩展
public abstract class Value implements Serializable {}
Simple 是一个标有适配器的类,用于对简单字符串进行编码/解码
@XmlJavaTypeAdapter(SimpleAdapter.class)
public class Simple extends Value {
private java.lang.String simple;
// ...
}
化合物不需要适配器。
问题是,如果我按原样使用 Simple,它会正确地编码(marshal)/解封为
<simple>my.text.here</simple>
但是如果我在 Compound 中使用它,它会输出类似的东西
<compound>
//...
<simple>
<value>my.text.here</value>
</simple>
//...
</compound>
我只是想知道为什么...我错过了什么吗?我怎样才能删除那个“值(value)”?在我看来,适配器根本没有被使用,是否可以在@XmlElements 中标记的类型中使用适配器?
编辑
经过几次测试后,我发现问题可能出在我处理简单实例的方式上。所以我简化了我最初的问题:
给定一个简单的类
@XmlRootElement("simple")
public class Simple {
private java.lang.String innerText;
// getters/setters
}
我怎样才能得到像这样的编码输出
<simple>
my.inner.text.here
</simple>
代替
<simple>
<value>my.inner.text.here</value>
</simple>
?
最佳答案
听起来您希望 private java.lang.String innerText;
成为 Simple 类的 @XmlValue。尝试使用 @XmlValue 标记在 Simple 中注释字符串:
@XmlRootElement("simple")
public class Simple {
@XmlValue
private java.lang.String innerText;
//getters/setters
}
或者,如果您在 getter 方法上使用注释(我根据问题中的 XML 输出假设将您的 @XmlElement 标记更改为 @XmlValue 标记:
@XmlValue
public java.lang.String getInnerText() {
return innerText;
}
当我这样做时,我会得到您在已编辑问题中寻找的输出。
关于java - @XmlElements 标有@XmlJavaTypeAdapters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6084895/
有没有办法在 XmlAdapter 中抛出用户定义的异常并在 JAXB 编码/解码时捕获它们?我的意思是,我可以抛出自己的异常,但 JAXB 只是忽略此异常并抛出他自己的异常,我无法从中获取异常消息或
XmlJavaTypeAdapter 能否从 ClassA 对象编码(marshal)至 ClassB 对象?所以当: public void createClassB (ClassB b) { }
我有以下需要序列化为 XML 的类: @XmlAccessorType(XmlAccessType.FIELD) public class Position { @XmlElement(nam
我在我的项目上运行 Enunciate 时遇到了困难。该项目是一个多模块maven项目,可从https://svn.opentripplanner.org/trunk获取。我想要的只是 API 文档。
我不想在我的代码中直接对 XmlAdapter 的类使用 XmlJavaTypeAdapter 注释。所以,我写了一些包装器: class BinderWrapper extends XmlAdapt
JAXB 提示类 X“...没有无参数默认构造函数。” 在我的例子中,类 X 是数十个自动生成、最终类之一,这些类确实没有无参数默认构造函数。它还碰巧扩展了一个抽象类,如果我愿意的话,我可以对其进行修
我为异常层次结构中的每个异常定义了一个 XmlJavaTypeAdapter。我使用包装器对象来编码异常,如下所示:- @XmlRootElement public Wrapper { T e
希望对 JAXB 专家来说是一个简单的方法: 我正在尝试编码(marshal)一个不定义默认无参数构造函数的不可变类。我已经定义了一个 XmlAdapter 实现,但它似乎没有被拾取。我整理了一个简单
我一直在努力拥有 @XMLJavaTypeAdapter使其按照我的需要工作。我的理解可能有误。请帮助我更好地理解。 要求: 例如: 我有一个带有映射对象列表的传输 XML,如下所示:
我正在使用 CXF 将我的 Web 应用程序转换为 Web 服务。我的 Web 应用程序构建了作为枚举工作的类。示例: package test.javabean; import java.util.
我的package-info.java中有以下内容: @XmlJavaTypeAdapters({ @XmlJavaTypeAdapter(type=OffsetDateTime.class,
当调用 JAXB.marshal 时,我使用 AdapterDataObj 类将 DataObj 类转换为 AdaptedDataObj。 package test; import javax.xml
我有课: public class FooImpl extends Foo { @XmlJavaTypeAdapter(ListXmlAdapter.class) @Override
我正在使用 Spring Boot/JAX-WS (CXF) 创建肥皂网络服务我想加密一个字段。我为此使用 XmlJavaTypeAdapter。例如: @XmlJavaTypeAdapter(
我有一个如下所示的 xml,我需要使用此 xml 来填充下面的对象我需要日期采用所需的格式和日期的时间戳转换。我使用下面提到的代码做到了这一点。 john 10/10/18 @Xm
我有这种情况 @XmlType(name ="", propOrder={"value"}) @XmlRootElement(name = "compound") public class Compo
我研究过Blaise Doughan's answer to a question on this subject但还有一个问题。 XmlJavaTypeAdapters 允许您列出一堆 XmlJav
我正在使用 Spring REST 框架和 Jackson JSON public class JaxbJacksonObjectMapper extends ObjectMapper
我在使用 JAXB 解码时遇到一个小问题,因为我的输入 XML 可以由两个元素之一包装,例如: 1 2
我要上三门课 @XmlRootElement public class GeofenceParameter{ private GeofenceCenterAddress geofenceCen
我是一名优秀的程序员,十分优秀!