無論是要將 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 標準)。 不過樣式表是一些範例,建議您擴充這些表格或建立自己的樣式表。
%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)>
定義元素如下︰
範例:
若在 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> ... %}
使用上述元素時,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
![]() |
圖 22. 使用 ndRecord.xsl 樣式表顯示 XML
![]() |