JAXB如何Marshal父类?

<link rel="stylesheet" type="text/css" href="http://maomaode.bokeland.com/plugins/plogeshi/styles/plogeshi.css">假设我们有这样的Schema:

<complexType name="Meta">
       <sequence>                
          <element name="name" type="string"/"">
           <element name="description" type="string"/"">
       </sequence>
   </complexType>
 
   <complexType name="Store">
       <complexContent>
           <extension base="Meta">
               <sequence>
                   <element name="books" type="Book" maxoccurs="unbounded"/"">
               </sequence>
           </extension>
       </complexContent>
   </complexType>
 
   <element name="store" type="Store"/"">
   <element name="meta" type="Meta"/""> 
 

注意到Store 继承了Meta, 如果我们有一个Store的对象,但是我们只想Marshal出继承Meta部分的内容,即希望得到下面这样XML

<meta>
<name>my book store </name>
<description> abc </description>
</meta> 
 

应该怎么写呢?答案其实就在于你怎么构建JAXBContext

JAXBElement jaxbElement = 
    (JAXBElement)m.invoke(objFactory.newInstance(), store);
 
JAXBContext jc = JAXBContext.newInstance(Meta.class);
Marshaller marshaller = jc.createMarshaller();
marshaller.marshal(jaxbElement, os); 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值