熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

JAXB的使用方法

2013-11-15 11:35:35  來源: JSP教程 

   
     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的案例
  什莫? 你不知道從哪裡下載所需文件不會吧
  老大!當然是/xml/jaxb了
  首先要得到你想要轉換的XML文件我們DataSource為例下表列舉了DataSourcexml的內容
  <?xml version=?>
  <DataSources>
   <DataSource>
     <name>oracle</name>
     <driver>oraclejdbcdriverOracleDriver</driver>
     <url>jdbc:oracle:thin:@localhost::orcl</url>
     <username>scott</username>
     <password>tiger</password>
   </DataSource>
  </DataSources>
  
  
  並且我們還要有此XML的DTD文件(如果你不知道怎莫從DTD得到XML或者不知道如何從XML得到DTD請兩天後再看此文)DataSourcedtd文件如下
  <?xml version= encoding=UTF?>
  <!ELEMENT DataSource
   (namedriverurlusernamepassword)
  >
  <!ELEMENT DataSources
   (DataSource)
  >
  <!ELEMENT driver
   (#PCDATA)
  >
  <!ELEMENT name
   (#PCDATA)
  >
  <!ELEMENT password
   (#PCDATA)
  >
  <!ELEMENT url
   (#PCDATA)
  >
  <!ELEMENT username
   (#PCDATA)
  >
  
  
  JAXB的使用還要配合一個轉換規則的XML文件的使用所以我們再根據我們的需要編寫一個DataSourcexjs文件如下所示
  <?xml version=?>
  <xmljavabindingschema version=ea>
  <! 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 />
  </xmljavabindingschema>
  
  你覺得很復雜嘛?不要著急馬上就結束了
  下一步就是運行如下命令了
  java jar %JAXB_HOME%\lib\jaxbxjceajar DataSourcedtd DataSourcexjs d destination_directory
  你會看到在你指定的目錄下生成了我們想要的Java文件你可以打開看看到底是什莫東西
  OK准備工作這就結束了
  讓我們來看看如何使用我們生成的Java文件使用前別忘了編譯他們這可是最基本的素質我想不用我提醒了吧
  下面是一個測試程序的片斷看看到底靈不靈
  Datasources socks = new Datasources();
  
  File socksFile = new File(DataSourcexml);
        InputStream fin = new FileInputStream(socksFile);
        socks = socksunmarshal(fin);
  List sockList = socksgetDatasource();
  
  好了sockList就是我們得到的Java的對象了你可以隨意處置我們下面把他們打印出來看一看
  for (Iterator i = erator(); ihasNext();) {
        currentSock = (Datasource)inext();
  Systemoutprintln(currentSockgetName());
  Systemoutprintln(currentSockgetDriver());
  Systemoutprintln(currentSockgetUrl());
  Systemoutprintln(currentSockgetUsername());
  Systemoutprintln(currentSockgetPassword());
      }
  
  
  OVER!
  這就結束了嗎?這莫簡單嘛?
  沒錯就是這莫簡單並且運行效率還是很不錯的
  
  
  

From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19262.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.