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

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

通過XSLT訪問Java代碼

2019-11-18 12:49:08
字體:
來源:轉載
供稿:網友

  假如你希望將xml數據轉換為固定寬度和純文本的字符串——這剛好是XSLT不太方便實現的一個特性,或者,也許你希望在XML文件中執行詞語替換。在這些情況下,當你的事務超出了XSLT自身的處理能力時,可以通過在你的XSLT處理器中調用java函數來完成。
  
  我看到過利用類似VBScript和Jscript的腳本語言完成非凡處理的例子(針對微軟解析器的),但是如何利用Java來執行非凡的處理還不是非凡地明顯。盡管如此,簡單地說,可以在XSLT處理器中通過XML命名空間(namespaces)調用Java函數來實現。Java與XSLT的結合為構建健壯的應用程序提供了強有力的方法。
  
  使用定制的命名空間
  命名空間是通過使用統一資源標識符(URI)來修飾限定XSL中元素和屬性名稱的一種方法。例如,常見的XSL元素需要有xsl命名空間前綴來修飾,xsl通過使用XSLT命名空間URI來聲明:
  
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  
  但是并不局限于使用XSLT命名空間,你完全可以自由地聲明你自己定制的命名空間,并用它們來識別定制的XSLT標簽和范圍。
  
  你必須使用定制的命名空間前綴來完成對外部函數的調用,例如,mynspace:fundtion(),該命名空間前綴mynspace,必須與一個命名空間URI相關聯,例如:
  
  xmlns:myspace="d:///XML  
  一般的Java綁定使用命名空間URI標識Java類函數的位置。對用于本文示例代碼的Xalan XSLT處理器(版本1.2.2)來說,命名空間URI必須具有URI-stem/packagename的形式。假如你使用了XT,那么你的命名空間應該有如下格式:
  
  xmlns:mynspace="d://XMLprogs/mynamespace.myclassname
  
  這種情況下,你可以使用XSLT代碼調用來自myclassname的Java函數。
  
  綁定外部Java函數
  此處給出在XSLT
模板內部綁定Java語言編寫的外部函數的過程。
  
  將你自己定制的命名空間作為它們的屬性添加到樣式表(stylesheet)元素或者你的模板中。
  確保你的Java類文件所在目錄位于你的XSLT處理器所運行的Java虛擬機(JVM)的CLASSPATH中。
  對于靜態方法,可以使可以用完全合格的類名稱加上方法和任何必需的的參數,當然還有命名空間前綴。
  對于非靜態方法,首先創建類實例,然后調用該方法并提供任何必需的參數。
  例如,下面的樣式表元素包含一個定制的命名空間聲明:
  
  
  
  
  在聲明了這個命名空間后,可以訪問該類的任何靜態方法,像這樣:
  
  
  
  假如方法不是靜態的,那么必須首先調用類構造器,例如:
  
  
  
  
  
  Java包"mynamespace"必須位于"d://XMLprogs"目錄中。
  
  注重:使用可選屬性xsl:exclude-result-prefixes,預防了java命名空間被包括到結果文檔中。
  
  
  
  
  


  
  


  
  
  

  
  上面的XSLT代碼中,行調用位于mynamespace包中名為DateClass的類的靜態方法displayDate()。
  
  利用這種技術,你可以調用任何Java類方法——包括那些需要參數的方法——參數來自于你的XSLT模板。
  
  本文涉及的代碼:date.xsl
  
  
  
  
  
  
  



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁安市| 时尚| 白沙| 中阳县| 文昌市| 锦屏县| 峨边| 东乡县| 高青县| 乌鲁木齐县| 松原市| 商城县| 邹城市| 嘉黎县| 尤溪县| 保靖县| 五峰| 乐陵市| 上高县| 黄石市| 永嘉县| 黄梅县| 集贤县| 罗城| 漯河市| 凉城县| 潮安县| 灵丘县| 广汉市| 星座| 新安县| 绵阳市| 五河县| 揭阳市| 山西省| 旬邑县| 泗洪县| 来凤县| 巴南区| 喀喇沁旗| 博兴县|