`
maomaode
  • 浏览: 118644 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAXB如何Marshal父类?

    博客分类:
  • JAVA
阅读更多
<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); 
 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics