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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

從XML到Java的數(shù)據(jù)綁定之三

2019-11-18 11:27:49
字體:
供稿:網(wǎng)友

本文 轉(zhuǎn)自 IBM developerWorks 中國網(wǎng)站

從文本到字節(jié)碼

  本數(shù)據(jù)綁定系列的第三部分演示了如何使用“JSR-031:數(shù)據(jù)綁定,Sun 數(shù)據(jù)綁定規(guī)范申請”中指定的方法,將 xml 元素和屬性轉(zhuǎn)換成 java 對象。這部分主要講述從數(shù)據(jù)的XML 表示移到應(yīng)用程序代碼易于使用的 Java 實(shí)例。第三部分論及通過將 XML 文檔中的嵌套元素取消編組成 Java 對象、測試和用某些實(shí)際示例來使用新的工具。

  本系列的目標(biāo)是演示如何將 XML 元素轉(zhuǎn)換成 Java 對象,然后可以使用 Java 語言 accessor 和 mutator 方法直接處理 XML 數(shù)據(jù)。第一部分比較了數(shù)據(jù)綁定和 Java 應(yīng)用程序中其它處理 XML 數(shù)據(jù)的方法,分析了設(shè)計決策,還定義了示例 Web 服務(wù)配置文檔的 XML 模式。第二部分說明了如何從 XML 模式生成接口和實(shí)現(xiàn),以便符合 XML 模式的 XML 文檔可以轉(zhuǎn)換成這些生成類的實(shí)例。

  在第三部分(共四部分)中,將完成基礎(chǔ)知識的講解,并且描述了如何精心設(shè)計代碼以執(zhí)行取消編組,取消編組將完成將 XML 轉(zhuǎn)換成 Java 對象的過程。執(zhí)行了取消編組后,可以使用測試類(已包括在內(nèi))來檢查是否所有部分都已正確組合在一起。本系列的每一部分都建立在其它部分的基礎(chǔ)之上,所以假如您還沒有看過第一和第二部分,您也許會看不懂本文中的一些描述。假如要回顧專門的詞匯表,請參閱術(shù)語解釋側(cè)欄。

  使用第一部分中為 WebServiceConfiguration 定義的 XML 模式(請參閱更新版本)和第二部分中的接口,即將創(chuàng)建為配置數(shù)據(jù)的特定實(shí)例提供數(shù)據(jù)的 XML 文檔。任何符合模式的 XML 文檔都可以編組成 Java 對象。這些對象應(yīng)該是使用 SchemaMapper 類生成的類的實(shí)例。當(dāng)然,最終結(jié)果就是數(shù)據(jù)綁定。


  制作 XML 實(shí)例文檔

  創(chuàng)建符合模式的 XML 文檔 -- 通常叫做 XML 實(shí)例 -- 很簡單。文檔必須只提供與模式中定義的約束相匹配的數(shù)據(jù)值,如清單 1 所示。

  清單 1. 符合示例 XML 模式的 XML 實(shí)例文檔

<?xml version="1.0"?>

<webServiceConfiguration xmlns="http://www.enhydra.org"
       xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance"
       xsi:schemaLocation="http://www.enhydra.org
       configuration.xsd"
       version="1.1"
       name="Unsecured Web Listener" >

 <port number="80"
 <document root="/usr/local/enhydra/Html" index="*.html,*.xml"
          error="error.html" />

 </webServiceConfiguration>
  
  清單 1 中的示例完整地顯示了 WebServiceConfiguration 的實(shí)例。實(shí)例文檔包括了兩個名稱空間聲明。第一個是缺省名稱空間聲明,請參考 http://www.enhydra.org。這表示所有沒有前綴的元素會分配到此名稱空間。雖然,在本示例中不需要聲明缺省名稱空間,它還給予了文檔一些身份。這個缺省名稱空間有助于將該文檔與其它有相似或等同元素名稱的 XML 文檔區(qū)分出來。

  定義的另一個名稱空間分配給 xsi 前綴,所以帶該前綴的所有元素都分配到此名稱空間。它 (http://www.w3.org/1999/XMLSchema/instance) 引用“XML 模式實(shí)例規(guī)范”的 URI。該規(guī)范依次定義了 XML 文檔如何引用文檔符合的 XML 模式。最后,schemaLocation 屬性引用 XML 模式。該屬性的第一個變量是受到約束的名稱空間(示例缺省名稱空間,它包括文檔中的每個元素)。第二個變量,用空格與第一個變量分開,引用 XML 模式的實(shí)際位置。本例中,模式 configuration.xsd 是一個本地文件,它與文檔在同一個目錄中。也可以通過使用 URL 來引用網(wǎng)絡(luò)上任意位置的模式。

  在缺省名稱空間中,附加屬性(因?yàn)樗鼈儧]有前綴)定義了版本 (1.1) 和名稱 (Unsecured Web Listener)。

  接著,聲明了模式中的 Port 對象,并定義了它的數(shù)據(jù):端口號為 80,協(xié)議是 http。正確取消編組成 Java 代碼后,該文檔就變成了 WebServiceConfigurationImpl 類的實(shí)例。然后,Java 代碼可以使用本系列第二部分中設(shè)計的接口 WebServiceConfiguration,以使用基本 XML 文檔中的數(shù)據(jù)。(請注重,可能會在應(yīng)用程序中執(zhí)行驗(yàn)證,如模式驗(yàn)證側(cè)欄中所概述的。)

  模式驗(yàn)證

  較新的 XML 語法分析器,如 Apache Xerces 語法分析器的當(dāng)前發(fā)行版,答應(yīng)對 XML 實(shí)例文檔執(zhí)行模式驗(yàn)證。驗(yàn)證答應(yīng)在程序格式上確保 XML 文檔符合它引用的 XML 模式。請與語法分析器供給商聯(lián)系或參考文檔,以確定語法分析器是否支持模式驗(yàn)證,其驗(yàn)證范圍,以及如何打開驗(yàn)證。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沅江市| 巨野县| 石首市| 上林县| 西林县| 平远县| 广南县| 玉田县| 尼玛县| 阜平县| 镇康县| 广灵县| 金乡县| 家居| 育儿| 米脂县| 永嘉县| 凤冈县| 石屏县| 广东省| 安义县| 沁水县| 天津市| 五指山市| 云梦县| 海林市| 密云县| 道孚县| 潼南县| 石河子市| 方山县| 莱阳市| 玉树县| 永春县| 简阳市| 武定县| 枣庄市| 秀山| 黄陵县| 新建县| 永靖县|