麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > XML > 正文

使用XMLTransform和XSL-FO格式化報表

2024-07-21 02:38:50
字體:
來源:轉載
供稿:網友

  xmlTransform SQL函數使得應用程序開發人員能夠不用第三方報表工具就直接從數據庫產生高質量的格式化報表。
  
  XMLTransform內嵌于SQL,因此它能夠被任何能夠連接到數據庫并運行簡單SQL語句的客戶程序使用。
  
  可擴展樣式表語言(XSL)是指將一個XML文檔轉換成另外一種結構的XML的工具,它支持條件、XPath樹遍歷、循環和排序構造。XSL格式化對象(XSL-FO)也是一個XML應用程序,但是它支持各種高質量格式的文檔的產生,比如說PDF、PostScript,甚至是GIF。
  
  很多FO處理器是免費的,比如Apache FOP,而其它是內嵌于XML編輯器和處理器的。很多供給商開始推出WYSIVWYG編輯器來創建XSL-FO文件,這是必要的,因為XSL-FO可能會極度復雜。
  
  下面給出一個非常簡單的例子,首先假設我有一個XML文檔:
  
  <doc>Hello World</doc>
  
  假如我需要使用“Hello World”以24-point大小的Arial字體產生一個PDF頁面,我想要一個大概像下面這個樣子的XSL-FO文檔:
  
  <?xml version="1.0" encoding="UTF-8"?>
  <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <fo:layout-master-set>
    <fo:simple-page-master master-name="my-page">
     <fo:region-body margin="1in"/>
    </fo:simple-page-master>
   </fo:layout-master-set>
   <fo:page-sequence master-reference="my-page">
    <fo:flow flow-name="xsl-region-body">
     <fo:block font-family="Arial" font-size="24pt">Hello World</fo:block>
    </fo:flow>
   </fo:page-sequence>
  
  </fo:root>
  
  這大概是你所能夠產生的最簡單的XSL-FO文件了。假如我將其保存為“hello.fo”然后通過一個XSL-FO處理器運行它,我就可以產生這個文檔的一個PDF或PostScript表示。
  
  要從我的XML文檔得到我的XSL-FO文檔,我需要一個XSL樣式表來完成文檔之間的轉換:
  
  <?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
      <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
        <fo:layout-master-set>
          <fo:simple-page-master master-name="my-page">
            <fo:region-body margin="1in"/>
          </fo:simple-page-master>
        </fo:layout-master-set>
        <fo:page-sequence master-reference="my-page">
          <fo:flow flow-name="xsl-region-body">
            <fo:block font-family="Arial" font-size="24pt">
              <xsl:value-of select="/doc"/>
            </fo:block>
          </fo:flow>
        </fo:page-sequence>
      </fo:root>
    </xsl:template>
  </xsl:stylesheet>
  
  XSLT處理器沒有什么缺點,本文最關心的是內建于Oracle9iSQL產生我的XML文檔,我可以使用:
  
  select XMLElement("doc",'Hello World') from dual;
  
  要使用SQL在數據庫內部自動產生FO文檔,我可以使用:
  
  set long 1000000
  select XMLTransform(
    XMLElement("doc",'Hello World'),
    XMLType(
    '<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
          <fo:layout-master-set>
            <fo:simple-page-master master-name="my-page">
              <fo:region-body margin="1in"/>
            </fo:simple-page-master>
          </fo:layout-master-set>
          <fo:page-sequence master-reference="my-page">
            <fo:flow flow-name="xsl-region-body">
              <fo:block font-family="Arial" font-size="24pt">
                <xsl:value-of select="/doc"/>
              </fo:block>
            </fo:flow>
          </fo:page-sequence>
        </fo:root>
      </xsl:template>
    </xsl:stylesheet>')) result
   from dual;
  
  這里給出了使用SQL從數據庫產生一個XSL-FO文檔的最簡單方法。
在實際的環境中,你可以在一個WYSIWYG編輯器中從外部操縱XML和XSL-FO,將其保存到表中,然后從數據庫產生一致的、高質量的報表。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舌头伸进添的我好爽高潮网站 | 日韩中文字幕一区二区三区 | 欧美大片一级毛片 | 国产成年人视频网站 | 色婷婷久久一区二区 | 中文字幕极速在线观看 | 免费h片网站 | www.99热视频 | 久久色播 | 亚洲第九十九页 | 天天透天天狠天天爱综合97 | 日本一级黄色大片 | 圆产精品久久久久久久久久久 | 亚洲成人黄色片 | 成人在线观看地址 | av影院在线播放 | 欧美成人一区二区三区 | 免费一级毛片网站 | 一级α片免费看刺激高潮视频 | 国产1区视频 | 成人午夜在线免费视频 | 永久在线观看电影 | 中文字幕观看 | 欧美毛片| 免费黄色在线观看网站 | 在线视频 欧美日韩 | 欧美人的天堂一区二区三区 | 久久情爱网 | japan护士性xxxⅹhd | 精品一区二区电影 | 日本视频免费看 | 欧美日韩在线播放一区 | 一级国产免费 | 欧美综合日韩 | 久久国产综合精品 | 日韩毛片在线看 | 亚洲成人在线免费观看 | 99国产精品欲a | 成人福利在线播放 | 午夜天堂在线 | 午夜视频在线免费观看 |