首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAXB - List<Serializable>?

JAXB - List<Serializable>?
EN

Stack Overflow用户
提问于 2012-01-31 22:48:41
回答 2查看 5.8K关注 0票数 4

我使用xjc创建了一些类。

代码语言:javascript
复制
    public class MyType {

    @XmlElementRefs({
        @XmlElementRef(name = "MyInnerType", type = JAXBElement.class, required = false),

    })
    @XmlMixed
    protected List<Serializable> content;

    public List<Serializable> getContent() {
        if (content == null) {
            content = new ArrayList<Serializable>();
        }
        return this.content;
    }
}

但是我不能使用

代码语言:javascript
复制
getContent().add(newItem);

因为MyInnerType是不可序列化的。为什么它不是一个对象列表?如何添加内部元素?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-31 23:26:54

请看一下herehere (一定要针对您的场景)。

来自第二个链接:

代码语言:javascript
复制
<!-- schema fragment having  mixed content -->
<xs:complexType name="letterBody" mixed="true">
<xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="quantity" type="xs:positiveInteger"/>
    <xs:element name="productName" type="xs:string"/>
    <!-- etc. -->
</xs:sequence>
</xs:complexType>
<xs:element name="letterBody" type="letterBody"/>


// Schema-derived Java code: 
// (Only annotations relevant to mixed content are shown below, 
//  others are ommitted.)
import java.math.BigInteger;
public class ObjectFactory {
    // element instance factories
    JAXBElement<LetterBody> createLetterBody(LetterBody value);
    JAXBElement<String>     createLetterBodyName(String value);
    JAXBElement<BigInteger> createLetterBodyQuantity(BigInteger value);
    JAXBElement<String>     createLetterBodyProductName(String value);
  // type instance factory
    LetterBody> createLetterBody();
}

public class LetterBody {
    // Mixed content can contain instances of Element classes
    // Name, Quantity and ProductName. Text data is represented as
    // java.util.String for text.
    @XmlMixed 
    @XmlElementRefs({
            @XmlElementRef(name="productName", type=JAXBElement.class),
            @XmlElementRef(name="quantity", type=JAXBElement.class),
            @XmlElementRef(name="name", type=JAXBElement.class)})
    List getContent(){...}
}
票数 5
EN

Stack Overflow用户

发布于 2012-01-31 23:00:21

你觉得你应该在里面加些什么?我使用了类似的生成,并且有像这样的字段,并且期望它是字符串内容。

显示生成此命令的xsd可能会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9081527

复制
相关文章

相似问题

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