2017-08-24 5 views
-1

私はこのXML コードのマーシャリングとunmarshhaling実行する必要があります。これを試してみてくださいXMLファイルのマーシャリングとアンマーシャリングを実行するにはどうすればよいですか?

<GlobalConfig> 
    <DataSources> 
     <DataSource id='1' source="query" type="static" queryId="111" dbInstance="test" urlId="1" urlFunction="/getData" dataProvider=""/> 
     <DataSource id='2' source="query" type="static" queryId="112" dbInstance="ng" urlId="1" urlFunction="/getData" dataProvider=""/> 
     <DataSource id='3' source="query" type="static" queryId="113" dbInstance="test" urlId="1" urlFunction="/getData" dataProvider=""/> 
     <DataSource id='4' source="query" type="static" queryId="115" dbInstance="test" urlId="1" urlFunction="/getData" dataProvider=""/> 
    </DataSources> 
+0

何を試しましたか?あなたの質問は何ですか?文脈とは何ですか?質の高い質問をしてください。ありがとう – JCooke

+0

[ように]ようこそ!このサイトでは、自分でコードを書くことができます**。 ** [もっと研究をして](// meta.stackoverflow.com/questions/261592)**あなたが問題を抱えていると、あなたが試みたものを投稿することができます** (** stackoverflow.com/help/mcve)を提供しています。私は良い質問と[完璧な質問]を読むことをお勧めします(http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。また、[ツアー]を取って** [this](// meta.stackoverflow.com/questions/347937/)**を必ず読んでください。 –

答えて

0

を:

@XmlRootElement 
public class GlobalConfig { 

    @XmlElementWrapper(name = "DataSources") 
    protected List<DataSource> dataSources; 

    private static JAXBContext context; 

    private GlobalConfig() { 
     /* For JAXB */ 
    } 

    /** 
    * @return A marshaller for instances of {@link GlobalConfig}. 
    * @throws JAXBException 
    *    If the marshaller cannot be obtained. 
    */ 
    public static Marshaller getMarshaller() throws JAXBException { 
     final Marshaller marshaller = getJAXBContext().createMarshaller(); 

     try { 
      marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
     } catch (PropertyException __) { 
      System.out.println("Cannot format XML of GlobalConfig."); 
      /* That's okay */ 
     } 

     return marshaller; 
    } 

    /** 
    * @return An unmarshaller for instances of {@link GlobalConfig} 
    * @throws JAXBException 
    *    If the unmarshaller cannot be obtained. 
    */ 
    public static Unmarshaller getUnmarshaller() throws JAXBException { 
     final Unmarshaller um = getJAXBContext().createUnmarshaller(); 
     um.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler()); 
     return um; 
    } 

    /** 
    * @return The {@link JAXBContext} to use to marshall/unmarshall instances of 
    *   {@link GlobalConfig} 
    * @throws JAXBException 
    *    If the context cannot be obtained. 
    */ 
    private synchronized static JAXBContext getJAXBContext() throws JAXBException { 
     if (context == null) 
      context = JAXBContext.newInstance(GlobalConfig.class); 
     return context; 
    } 

    public static class DataSource { 

     @XmlAttribute 
     protected int id; 
     @XmlAttribute 
     protected String source; 
     @XmlAttribute(name = "type") 
     protected String type_; 
     @XmlAttribute 
     protected String dbInstance; 
     @XmlAttribute 
     protected String urlFunction; 
     @XmlAttribute 
     protected String dataProvider; 

     private DataSource() { 
      /* For JAXB */ 
     } 

    } 

は/アンマーシャリングマーシャリングするgetMarshallerとgetUnmarshallerメソッドを使用します。

関連する問題