我运行的是JSON2.5.0,并获得了一个带有XmlAdapter的ClassCastException,但只有在尝试输出XmlAdapter时才能正常工作。
我有一个包装类,看起来像这样:
@XmlAccessorType(XmlAccessType.NONE)
public abstract class ListWrapper<T> implements List<T>
{
private List<T> list = new ArrayList<T>();
@XmlElement
private Foo foo;
是否有JAXB注释允许我们使用枚举隐藏某些值?
例如,如果我想在下面的枚举中隐藏值蓝色:
public enum COLOR {
RED,
YELLOW,
GREEN,
@SomeAnnotation
BLUE
}
有没有办法按照规格做这件事?
编辑:一些评论者提到,这是没有意义的,想做。我(恭敬地)不同意。这在JAXB/Web服务世界中是有先例的。以下是我所想到的情况:
使用,类和枚举被直接转换为XSD,并通过Web服务公开。现在可能有我们想要隐藏某些(敏感的?)的情况。来自Web服务的数据,但可供直接访问代码的库使用。对于类字段,JAXB提供了@Xml瞬态注释
我有一个通过JSON消息进行通信的REST客户端和服务器(Jersey)。从Jackson切换到MOXy之后,我开始使用XMLMarshalException: No descriptor found while unmarshalling element mapped to attribute someAttribute。
该元素在JSON中的外观如下:"someAttribute": [{ "type": "string", "value": "a str
我试图使用Moxy的XML元数据扩展来映射下面的接口。但是当我尝试加载它时,我会得到下面的错误。我不能向AddressType添加公共构造函数,因为它是一个枚举。
我的问题是:即使我没有在xml元数据中指定,Moxy impl为什么还要查看AddressType呢?
public interface TokenizedUnitedStatesAddress
{
class AddressType extends Enum
{
public static final AddressType STREET = new AddressType("street&
我正在尝试实现涉及HashMap的XML映射。这里是我的用例:我想得到这个:
<userParameters>
<KEY_1>VALUE_1</KEY_1>
<KEY_2>VALUE_2</KEY_2>
<KEY_3>VALUE_3</KEY_3>
</userParameters>
我的UserParameters类如下所示:
@XmlRootElement
public class UserParameters {
private final Map<QN
我正在开发许多必须以以下格式序列化为XML的Java类:
<foo value="123"/>
<!-- or this -->
<bar value="abc"/>
<!-- or this -->
<baz value="true"/>
一开始,Foo.java看起来是这样的:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
class Foo {
@XmlAttribute
String value;
我有以下bean类
@XmlRootElement(name = "book")
//Optional
@XmlType(propOrder = {"name" })
public class Book {
private String name;
private int num;
@XmlTransient
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
// name for your XML-Output:
@Xm
我正在尝试在Spring-WS中定义一个Jaxb2Marshaller bean,以使用扩展XmlAdapter的自定义适配器。我在一个XML文件中包含以下内容:
<bean id="jaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<!-- various classes to be
BufferedWriter out = new BufferedWriter(fstream);
try {
JAXBContext context = JAXBContext.newInstance(NarociloType.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(parameters, out);
o
我试图使用JAXB/MOXy映射由一组接口表示的域,这些接口具有一个独特的特性:所有多值元素都封装在Iterables中,而不是数组或Collection。下面是一个演示我的情况的玩具示例。
Iterable<Movie>**)** Actor.java (注意Actor.java的使用)
package test.moxy;
public interface Actor {
public String getName();
public void setName(String name);
public Iterable<Movie> g
我使用JAXB编组程序将一些java对象存储为XML文件。其中一些对象相互引用,因此我不出所料地得到了这个错误:
[com.sun.istack.internal.SAXException2: A cycle is detected in the object graph. This will cause infinitely deep XML
解决方案,包括删除循环和只使用树结构是不可行的-我需要两个导航方向。
为了解决这个问题,我宁愿使用xlink来引用xml对象,而不是级联地复制它们。这个解决方案合适吗?使用JAXB编组程序可以做到这一点吗?多么?
我正在使用JAXB解组一个非常大的XML文件,其中的XMLAdapter用于解组一个特定的“问题”类。XMLAdapter相当简单,但它被调用了很多次--我们预计单个xml文件会被调用多达200万次。我们的测试文件较小-适配器被调用了200,000次-但我们注意到性能受到了影响。适配器是相当标准的:
public class MyAdapter extends XmlAdapter<Object, AdaptedClass> {
public static final String ATTRIBUTE_HREF = "href";
public Adap
我正在尝试使用MOXy JAXB来序列化一个类A,该类看起来如下:
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement
public class A {
private Map<Foo, Bar> fooBar = new HashMap<Foo, Bar>();
private Set<Foo> foos = new HashSet<Foo>();
@XmlJavaTypeAdapter(FooBarMapAdapter.class)
public Map&
在我的数据模型中,我有这样的效果:
@Entity
public class Target {
@Id
@GeneratedValue
private Long id;
/* ...etc... */
}
@Entity
public class Dependency {
@Id
@GeneratedValue
private Long id;
@ManyToOne(optional=false)
@Column(name="target_id")
private Target targ
场景:我有一个使用Spring3MVC的web应用程序。使用Spring3中强大的新注释(@Controller,@ResponseBody等),我编写了一些带有@XML注释的域对象,用于编组对web客户端的ajax调用。一切都很好。我声明了我的Controller类有一个带有根XML对象的返回类型@ResponseBody -有效负载被正确地编组并发送到客户端。
问题是内容中的一些数据破坏了XML遵从性。必要时,我需要用CDATA对其进行包装。我在上看到一篇推荐使用自定义内容处理器的帖子。好的,太棒了!
public class CDataContentHandler extends (SA
当调用类AdapterDataObj时,我使用类DataObj将类DataObj转换为AdaptedDataObj。
package test;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
@XmlJavaTypeAdapter(AdapterDataObj.class)
public class DataObj {
public String bla = "I'm DataObj";
public String name;
public DataObj(St
我想知道是否存在使用jaxb.I从生成的xml中删除非必需元素的方法,我的xsd元素定义如下所示。
<xsd:element name="Title" maxOccurs="1" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
A name given to the digital record.