国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JAXB的使用方法

2019-11-18 13:20:28
字體:
來源:轉載
供稿:網友

     Sun推出JAXB(javaTM Architecture for xml Binding )已經有很長一段時間了。下面我來簡單介紹一下,什麼是JAXB和怎莫使用。
  JAXB是一套自動映射XML和Java實例的開發接口和工具。
    JAXB使XML更加方便的編譯一個XML SCHEMA到一個或若干個JAVA CLASS。提供了如下功能:
    從XML到JAVA的映射,訪問、更新、驗證JAVA的表現,從JAVA到XML的映射。
    長話短說,開始正題,JAXB的使用,我們只列舉從XML到JAVA的案例:
  什莫? 你不知道從哪里下載所需文件,不會吧。
  老大!當然是java.sun.com/xml/jaxb了
  首先要得到你想要轉換的XML文件,我們DataSource為例,下表列舉了DataSource.xml的內容:
  <?xml version="1.0"?>
  <DataSources>
   <DataSource>
     <name>Oracle</name>
     <driver>oracle.jdbc.driver.OracleDriver</driver>
     <url>jdbc:oracle:thin:@localhost:1521:orcl</url>
     <username>scott</username>
     <passWord>tiger</password>
   </DataSource>
  </DataSources>
  
  
  并且,我們還要有此XML的DTD文件(假如你不知道怎莫從DTD得到XML,或者不知道如何從XML得到DTD,請兩天后再看此文),DataSource.dtd文件如下:
  <?xml version='1.0' encoding="UTF-8"?>
  <!ELEMENT DataSource
   (name,driver,url,username,passWord)
  >
  <!ELEMENT DataSources
   (DataSource)
  >
  <!ELEMENT driver
   (#PCDATA)
  >
  <!ELEMENT name
   (#PCDATA)
  >
  <!ELEMENT password
   (#PCDATA)
  >
  <!ELEMENT url
   (#PCDATA)
  >
  <!ELEMENT username
   (#PCDATA)
  >
  
  
  JAXB的使用還要配合一個轉換規則的XML文件的使用,所以我們再根據我們的需要編寫一個DataSource.xjs文件,如下所示:
  <?xml version="1.0"?>
  <xml-java-binding-schema version="1.0ea">
  <!-- Register a type. This specifies that we want to use this type instead of String
    somwhere in our document. -->
  <element name="DataSources" type="class" root="true" />
  </xml-java-binding-schema>
  
  你覺得很復雜嘛?不要著急,馬上就結束了。
  下一步就是運行如下命令了:
  java -jar %JAXB_HOME%/lib/jaxb-xjc-1.0-ea.jar DataSource.dtd DataSource.xjs -d destination_Directory
  你會看到在你指定的目錄下,生成了我們想要的Java文件,你可以打開看看,到底是什莫東西。
  OK,預備工作這就結束了。
  讓我們來看看如何使用我們生成的Java文件,使用前別忘了編譯他們,這可是最基本的素質,我想不用我提醒了吧。
  下面是一個測試程序的片斷,看看到底靈不靈:
  Datasources socks = new Datasources();
  。。。。
  File socksFile = new File("DataSource.xml");
        InputStream fin = new FileInputStream(socksFile);
        socks = socks.unmarshal(fin);
  List sockList = socks.getDatasource();
  
  好了,sockList就是我們得到的Java的對象了。你可以隨意處置。我們下面把他們打印出來看一看:
  for (Iterator i = sockList.iterator(); i.hasNext();) {
        currentSock = (Datasource)i.next();
  System.out.PRintln(currentSock.getName());
  System.out.println(currentSock.getDriver());
  System.out.println(currentSock.getUrl());
  System.out.println(currentSock.getUsername());
  System.out.println(currentSock.getPassword());
      }
  
  
  OVER!
  這就結束了嗎?這莫簡單嘛?
  沒錯,就是這莫簡單。并且運行效率還是很不錯的

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 道孚县| 岑巩县| 桂东县| 望城县| 延川县| 祁阳县| 沐川县| 灌南县| 田东县| 林西县| 海原县| 怀来县| 涿鹿县| 岚皋县| 双桥区| 芦溪县| 辽宁省| 平凉市| 郎溪县| 乌什县| 龙游县| 雷州市| 建德市| 获嘉县| 西昌市| 万山特区| 怀仁县| 漳平市| 新密市| 周宁县| 大田县| 平度市| 民和| 聂拉木县| 灵山县| 新疆| 南涧| 彭泽县| 青岛市| 上饶市| 武鸣县|