XML整形・検証
XMLを字下げして整形・1行に圧縮し、タグの対応や属性の引用符などの誤りを行と列で示します。XMLからJSONへの簡易変換もできます。
XMLを貼り付けると自動で検証します。
補足
- 確かめるのは「整形式(well-formed)」かどうかまでです。開始タグと閉じタグの対応、ルート要素が1つか、属性の引用符と重複、
&の書き方、コメント・CDATA・処理命令の閉じ忘れ、XML宣言の位置を見ます。DTD やスキーマによる妥当性の検証は行いません。 - DOCTYPE 宣言は中身を解釈せず、そのまま残します。DOCTYPE がある場合は、そこで定義された独自の実体参照(
など)も許します。 - 整形では、子要素だけを持つ要素を1段ずつ字下げします。文字と要素が混ざった内容(
<p>文<b>強調</b></p>など)とxml:space="preserve"の中は、本文の空白を変えないよう元のまま1行に残します。 - 属性の値・実体参照・CDATA は書き換えません。属性の間の空白だけを1つに揃えます。
- JSON への変換は簡易的なものです。属性は
@を付けたキー、文字は要素の値(属性や子要素もあるときは#text)、同じ名前の子要素が2つ以上あるときだけ配列にします。値はすべて文字列で、前後の空白は取り除きます。コメントと処理命令は捨て、名前空間の接頭辞は名前の一部として扱います。
よくある質問
XMLのどこが間違っているか分かりますか?
分かります。閉じタグの対応違い、閉じ忘れ、属性の引用符の付け忘れや重複、裸の &、ルート要素が 2 つある、XML宣言の位置などを、行と列を添えたエラーで示します。閉じタグが合わないときは、対応するはずの開始タグの行も示します。
DTDやXMLスキーマ(XSD)で検証できますか?
できません。確かめるのは XML として正しい形か(整形式かどうか)までです。DOCTYPE 宣言は中身を解釈せずにそのまま残します。
整形すると本文の空白が変わりませんか?
文字と要素が混ざった内容(<p>文<b>強調</b></p> など)と xml:space="preserve" の中は、元の空白のまま 1 行に残すため変わりません。子要素だけを持つ要素の間の空白や改行は、字下げに置き換えます。属性の値・実体参照・CDATA は書き換えません。
XMLをJSONに変換できますか?
簡易的な変換ができます。属性は @ を付けたキー、文字は要素の値(属性や子要素もあるときは #text)、同じ名前の子要素が 2 つ以上あるときだけ配列にします。値はすべて文字列で、コメントと処理命令は含めません。JSON から XML への変換には対応していません。