次のトピックについて説明します。
XML ツールキットでは、処理された XML DTD のサイズ、複雑さ、または再帰の深さに応じて、DATSIZE バッファ内に最大数百 KB の容量が必要になる場合があります。
生成されたコールバックルーチンを使用して XML ドキュメントを解析するには、ドキュメント全体がダイナミック変数に含まれている必要があります。
メインフレームコンピュータの XML ツールキットでは、スキーマはサポートされておらず、DTD のみを処理できます。
デフォルトで、XML ツールキットでは、Natural ワークファイル 12 が DTD への入出力ファイルとして使用され、ワークファイル 13 がエラーログファイルとして使用されます。
XML ツールキットに付属のパーサーのサンプルプログラムでは、ワークファイル 12 から解析対象の XML ドキュメントを読み込み、解析プロセスの出力をワークファイル 13 に書き込みます。
Entire Connection を使用中の PC の場合には、PC ワークファイルを使用して、Natural ワークファイルをサポートしていない TP モニタで XML ツールキットを実行できます。
生成されたコールバックルーチンを使用して解析される XML ドキュメント、または生成されたシリアライゼーションコードを使用して生成される XML ドキュメントは、ワークファイル経由でもアクセスできます。 データは、データタイプ ALPHA DYNAMIC の変数を使用してアクセスする必要があります。 ワークファイルのデータタイプは UNFORMATTED である必要があります。
PC ファイルには、SYSEXXT ライブラリで提供されるサブプログラム XML2PCWR を使用してアクセスできます。 XML2PCWR は、PC ワークファイルの ALPHA DYNAMIC 変数の書き込みまたは読み込みを行います。
XML2PCWR の呼び出し規則:
CALLNAT 'XML2PCWR' XML-PAGE FILENUMBER OPERATION RETCODE
パラメータの定義:
DEFINE DATA LOCAL 1 XML-PAGE (A) DYNAMIC /* XML page 1 FILENUMBER (I2) /* work file number: 1 - 31 1 OPERATION (A2) /* W/R: write/read 1 RETCODE (I4) /* must be 0! END-DEFINE
例:
次の例では、生成されたドキュメントを Standard Work File 10 および PC Work File 15 に書き込みます。
* ---------------------------------------------------------------------- * CLASS NATURAL XML TOOLKIT - UTILITIES * * SDEMO_P1 * * DESCRIPTION * Serialize a given Data structure. * * * AUTHOR SAG 01.2005 * * VERSION 4.12. * * (c) Copyright Software AG 2001-2005. All rights reserved. * * ---------------------------------------------------------------------- * DEFINE DATA LOCAL USING EMPL /* add generated data structure LOCAL 1 XML (A) DYNAMIC * 1 OUT (A72) 1 II (I4) * 1 #CX (I4) 1 #CY (I4) 1 #CZ (I4) 1 FILENUMBER (I2) 1 OPERATION (A2) 1 RETCODE (I4) END-DEFINE /*[ initialize EMPLOYEE.PERSONNEL-ID := 4711 * EMPLOYEE.FIRST-NAME := "ADKINSON" EMPLOYEE.NAME := "MARTHA" * EMPLOYEE.C§ADDRESS-LINE := 2 EMPLOYEE.ADDRESS-LINE(1) := "8603 GARLAND COURT" EMPLOYEE.ADDRESS-LINE(2) := "FRAMINGHAM" EMPLOYEE.ADDRESS-LINE(2) := "MA" EMPLOYEE.CITY := "FRAMINGHAM" EMPLOYEE.ZIP := "17010" EMPLOYEE.COUNTRY := "USA" * EMPLOYEE.AREA-CODE := "617" EMPLOYEE.PHONE := "210-4703" * EMPLOYEE.JOB-TITLE := "MANAGER" EMPLOYEE.C§INCOME := 2 EMPLOYEE.SALARY(1) := 47000 EMPLOYEE.C§BONUS(1) := 2 EMPLOYEE.BONUS(1,1) := 10500 EMPLOYEE.BONUS(1,2) := 7875 * EMPLOYEE.SALARY(2) := 47000 EMPLOYEE.C§BONUS(2) := 1 EMPLOYEE.BONUS(2,1) := 35700 * INCLUDE EMPL-C "XML" "#CX" "#CY" "#CZ" /* add generated Serialize /*] * ASSIGN FILENUMBER = 15 /* PC FILE ASSIGN OPERATION = 'W' CALLNAT 'XML2PCWR' XML FILENUMBER OPERATION RETCODE PRINT XML DEFINE WORK FILE 10 TYPE 'UNFORMATTED' /* STD WORK FILE WRITE WORK FILE 10 VARIABLE XML CLOSE WORK FILE 10 * END
XML ツールキットは Report 2 に書き込みます。
XML ツールキットはライブラリ SYSEXXT に含まれています。
XML ツールキットを使用するには
Natural コマンド行で、「LOGON SYSEXXT」と入力します。
「Menu」と入力します。
メインメニューが表示されます。
10:22:54 *** NATURAL XML Toolkit *** 2007-01-19 - Main Menu - Library SYSEXXT Code Function L Generate from Natural Data Structure D Generate from Document Type Definition O Set up Specific Generation Options Function Code .. _ Press PF4 or PF5 to start generation. Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit LDA DTD Optio Canc |
次の機能を使用できます。
Natural データ構造からの生成:Natural データエリアをデータソースとして使用します。
DTD(文書型定義)から生成:文書型定義(.dtd)をデータソースとして使用します。
詳細については、対応するセクションを参照してください。
次のファンクションキーをナビゲーションおよび処理に使用できます。
PF1 | Help | コンテキスト関連ヘルプ。 詳細については、オンラインドキュメントを参照してください。 |
---|---|---|
PF3 | Exit |
オプションマップ上:変更を保存して機能を終了します。 |
PF7 | Prev | 前の手順(前のマップ)。 |
PF8 | Next | 次の手順(次のマップ)。 |
PF9 | Finis(h) | 生成を完了してから機能を終了します。 |
PF12 | Cancel |
変更を保存せずに機能を終了します。 |