« クロスブラ「ウザ」対策 | トップページ | 不完全なJSPの「テキストの比較」 »

2006年3月30日 (木)

XMLはXMLであってプレーンテキストではない。

どうも、kazzyaです。

しかし、ココログはユーザに優しくないシステムですね。
さっき記事書きかけて、入力画面の変更したら、
書きかけのデータ全部吹っ飛びましたよ。
前もメンテナンス中にコメント入力して確認しようとしたら、
「メンテナンス中です」って出て吹っ飛んだし。

でも、非常にメモとして重要なのでもう一回書く。

最近XMLの操作をする作業が多いのですが、

<?xml version="1.0" encoding="UTF-8"?>
と記述されているのに、非UTF-8な文字コードで、
<!-- 日本語のコメント -->
とか書くと、解析エラーになります。

Log4jの設定ファイル、log4j.xmlを修正していて、
こっちの環境では変更が適用されているのに、
あっちではされてない、という状況になりました。

で、調べてたら、
片方(OKの方)は自分で気を利かせて自分でShift_JISに変更、
もう片方はしてなかった。
で、多分設定ファイルの解析エラーでログ設定がなされてなかったんでしょうね。
解析エラーってんでシステム止まるのも困るので、
エラーを飲み込まれるのはある意味仕方ないんですけど、
見た目上どこが悪いか分からないので注意です。

あと、要素のボディって言うんでしょうか、
<hoge>データ文字列</hoge>
の「データ文字列」について、"&"を使用すると、
Antのxmlpropertyタスクでエラーになりました。
(これってAntの制限かXMLの制限かよく知らないんですけど)
で、copyタスクでfilterchainで<![CDATA[データ文字列]]>と変換するようにして回避。

また、<![CDATA[データ文字列]]>のデータ文字列内がエンコーディング指定でないコードで来ると、これまた解析エラーになります。

とあるシステムの応答XMLを更新SQLに変換する作業してたんですが、
元データが「一応親切に」付加データのタグつけてくれてるんですが、
その結果well-formedなXMLでなくなってこっちはXMLのライブラリを使えないって状況になったりで難儀しました。
これまた文字列置換で大外にダミーのルートタグつけてwell-formedに変換したりしたんですけど。
で、基データの処理がおかしいんでしょうが、UTF-8でない文字コードが入っていて、その度に解析エラーでツール落ちたり…

その人は多分プレーンテキストファイル的な感覚で操作してたんでしょうが、
そうするとあれだけ便利な解析ライブラリが使えません。
XMLはXMLであって、プレーンテキストではないんですよねぇ。

|

« クロスブラ「ウザ」対策 | トップページ | 不完全なJSPの「テキストの比較」 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2217/9333709

この記事へのトラックバック一覧です: XMLはXMLであってプレーンテキストではない。:

« クロスブラ「ウザ」対策 | トップページ | 不完全なJSPの「テキストの比較」 »