管理及程式設計指南

XML 區塊

無論是要將 XML 傳給另一個處理應用程式或傳給從屬站瀏覽器 (例如 Microsoft Internet Explorer 版本 5), 您都可使用 XML 區塊結構傳送 XML 內容。

XML 區塊的運作方式與 HTML 區塊相同;它是巨集的登錄點或結束點。 在此區塊內可直接輸入 XML 標籤、參照變數和呼叫函數。 在 XML 區塊呼叫函數時,Net.Data 知道使用 XML 標籤而不是 HTML 顯示結果。

您可以依需求自訂產生的 XML 文件,XML 區塊並不產生前言標籤。 請輸入貴公司的前言資訊並包括您選的樣式表。 Net.Data 內含三個可使用的 XSL 樣式表。 這些樣式表包含 Net.Data 產生的 XML 和 HTML 元素的轉換 (產生的 HTML 元素符合出現的 XHTML 標準)。 不過樣式表是一些範例,建議您擴充這些表格或建立自己的樣式表。

圖 20. 含有 XML 報表區塊的巨集

%DEFINE DATABASE = "SAMPLE"
%FUNCTION(DTW_SQL) NewManager(){
select * from staff where job = 'Mgr' and years <= 5
%}
%XML(report) {
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="ndTable.xsl" ?>
<XMLBlock>
  <h1>List of New Managers</h1>
  @NewManager()
</XMLBlock>
%}

Net.Data 使用一組元素在 XML 區塊產生資訊,下列文件說明顯示該資訊:

<!-------------------------------------------------------->
<!-- Net.Data 產生的全部 XML 輸出所使用的 root 元素     -->
<!-- 是 XMLBlock 元素。                                 -->
<!-------------------------------------------------------->
<!ELEMENT XMLBlock (RowSet|ShowSQL|Message)*>
<!ATTLIST XMLBlock name   CDATA #IMPLIED>
<!-------------------------------------------------------->
<!-- 表格的預設呈現格式使用                             -->
<!-- RowSet、Row 和 Column 元素。                       -->
<!-------------------------------------------------------->
<!ELEMENT RowSet   (Row)*>
<!ATTLIST RowSet   name   CDATA #IMPLIED>
<!ELEMENT Row      (Column)*>
<!ATTLIST Row      name   CDATA #IMPLIED
                   number CDATA #IMPLIED>
<!ELEMENT Column   (#PCDATA)>
<!-------------------------------------------------------->
<!-- 因設定 SHOWSQL 變數而產生的 SQL 陳述式             -->
<!-- 是以 ShowSQL 元素呈現。                            -->
<!-------------------------------------------------------->
<!ELEMENT ShowSQL  (#PCDATA)>
<!-------------------------------------------------------->
<!-- 因設定 SHOWSQL 變數而產生的 SQL 陳述式             -->
<!-- 是以 ShowSQL 元素呈現。                            -->
<!-------------------------------------------------------->
<!ELEMENT Message  (#PCDATA)>

定義元素如下︰

XMLBlock
包含 XML 區塊的資料顯示部份。必須手動輸入本標籤。

RowSet
由 Net.Data 產生。包含結果集中的列。決定 RowSet 的名稱屬性如下︰

範例:

若在 XML 區塊呼叫下面函數,就會顯示該區塊的相關 RowSet。

%FUNCTION(DTW_SQL) call_sp() {
		CALL stored_proc
%}
%XML(report){
...
<RowSet name="call_sp" number="1">...</RowSet>
<RowSet name="call_sp" number="2">...</RowSet>
...
%}

Row
由 Net.Data 產生。包含一個橫列的直欄而且編號以供識別。

Column
由 Net.Data 產生。包含特定列的資料值以及命名它的直欄。

使用上述元素時,Net.Data 會從圖 20 列示的巨集產生下列輸出。

Content-type: text/xml
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="ndTable.xsl" ?>
<XMLBlock>
  <h1>List of New Managers</h1>
  <RowSet name="NewManager">
    <Row number="1">
      <Column name="ID">30</Column>
      <Column name="NAME">Marenghi</Column>
      <Column name="DEPT">38</Column>
      <Column name="JOB">Mgr</Column>
      <Column name="YEARS">5</Column>
      <Column name="SALARY">17506.75</Column>
      <Column name="COMM"></Column>
    </Row>
    <Row number="2">
      <Column name="ID">240</Column>
      <Column name="NAME">Daniels</Column>
      <Column name="DEPT">10</Column>
      <Column name="JOB">Mgr</Column>
      <Column name="YEARS">5</Column>
      <Column name="SALARY">19260.25</Column>
      <Column name="COMM"></Column>
    </Row>
  </RowSet>
</XMLBlock>

圖 21圖 22 使用 Net.Data 提供的兩個樣式表 ndTable.xsl 和 ndRecord.xsl, 說明上面資料如何出現在瀏覽器。

圖 21. 使用 ndTable.xsl 樣式表顯示 XML


使用 ndTable.xsl 樣式表顯示 XML

圖 22. 使用 ndRecord.xsl 樣式表顯示 XML


使用 ndTable.xsl 樣式表顯示 XML


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]