0

XML を解析するための COBOL モジュールを作成しました。XML 値は DB2 テーブルに格納されており、選択クエリを実行して XML 値を読み取ります。しかし、解析中に、最初のインスタンス自体で XML-CODE = 317 の例外がスローされます。この XML コードを検索したところ、このエラーの説明が次のように見つかりました。ドキュメントが破損している可能性があります。

XML に問題はありません。それ以外の場合は、DB2 テーブルへの挿入中にエラーがスローされます。XMLの最初のタグも正しいです。

誰かがこの問題を解決するのを手伝ってくれませんか。

ありがとう

4

2 に答える 2

2

おそらく、XML ヘッダーでエンコーディングを指定する必要があります。

エンコーディングの例をいくつか示します。

<?xml version="1.0" encoding="us-ascii"?>
<?xml version="1.0" encoding="windows-1252"?>
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-16"?>
于 2013-06-11T08:54:36.480 に答える
1

あなたは私たちにいくつかの有益な情報を提供してくれました...

  1. COBOL で XML を解析しようとしています
  2. XML は別のマシンから取得されます
  3. XML はもともと UTF-8 です
  4. XML は DB2 テーブルの Unicode 列に格納されます
  5. XML には、コード ページ 1146であることを示すヘッダーがあります。
  6. 317 の XML-CODE を受信して​​います

COBOL コードがコンパイルされたCODEPAGEオプションは何ですか? 自動変換が行われている可能性があります。おそらく、DB2 から取得した後、ヘッダーとエンコーディングが一致しなくなります。

PIC X フィールドまたは PIC N フィールドを解析していますか?

また、コンパイル オプションXMLPARSE(XMLSS)を使用することをお勧めします。これは、「ネイティブ COBOL」パーサーが Enterprise COBOL 5.1 で非推奨になったためです。

于 2013-06-11T11:59:19.570 に答える