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であって、プレーンテキストではないんですよねぇ。
| 固定リンク

コメント