XMLフォーマッター
読みやすいインデントで XML を整形し、要素、属性、テキスト、コメント、エスケープ値を保持します。
XML structure を読みやすくする
compact XML は送信には便利ですが、確認しにくい形式です。すべてが一行にあると、element、attribute、closing tag、escaped character を見つけにくくなります。この formatter は readable layout を表示し、build、request、configuration で使う前に structure を確認できるようにします。
formatting が変えるのは presentation であり、意図された XML data ではありません。element name、attribute value、text node、comment、entity reference を保ちながら、一定の indentation と line break を追加します。読みやすい結果は review に役立ちますが、schema validation の結果ではありません。
tool を学ぶときは小さく代表的な sample を使います。source document、formatted copy、後続の validation result を分けて保存し、XML syntax、schema、encoding、application rule を区別してください。
document に secret や個人情報が含まれる場合は、貼り付ける前に redacted copy を作ります。formatting は data を匿名化せず、別の service への共有が許可されていることも証明しません。
Formatting と validation は別です
XML は element、attribute、text、comment、declaration、character reference で構成される nested markup format です。element には対応する opening tag と closing tag が必要で、attribute は opening tag に属し、ampersand などの reserved character は data なら escape します。
formatter は node と whitespace を並べるために必要な structure を読みます。XSD、DTD、namespace policy、application contract、business rule に適合することまでは証明しません。これらの check は担当する workflow で別に実行してください。
一部の XML context では whitespace が data になります。特に mixed content と text node では注意が必要です。whitespace-sensitive consumer が使う document を変更する前に output を要件と比較し、original source を保存します。
XML を format する手順
- 完全な XML document または documented fragment を source field に貼ります。test copy から無関係な文章と programming language wrapper を削除します。
- formatter を実行し、nesting、attribute、comment、text value を確認します。formatting failure だけから特定の parser message を推測しないでください。
- formatted document と original を比較します。element name、attribute value、entity reference、namespace declaration、text data が変わっていないことを確認します。
- formatting の後に、project が要求する XML parser、schema validator、application test を実行します。formatting だけでは validity や compatibility は証明できません。
- production data では sample から secret と個人情報を削除します。controlled diff と rollback のために original file を保管します。
Formatting method
- XML structure を読む
tool は markup を nested XML content として読み、整理できる element、attribute、text、comment、declaration の boundary を認識します。
- Indentation を適用
formatter は parent-child relation を示すため line break と indentation を追加します。これは presentation whitespace であり、新しい schema rule ではありません。
- Technical value を保持
attribute text、entity reference、namespace prefix、comment content は source sample と対応したままにします。exact bytes が重要なら diff を確認します。
公開ページは XML formatting input を document しています。exact parser recovery、whitespace policy、error wording は実際の engine でテストしてから固定動作として説明します。
Formatted result を読む
成功した result は入力した XML の readable arrangement です。tree、value、attribute、comment、declaration を source と比較します。
Failure は documented path が input を処理できなかったことを示します。matching runtime evidence がなければ exact parser rule や error location を推測しません。
document が後で XSD や application check に失敗した場合は、その別の contract を調べます。formatting は required element、namespace、type を追加しません。
よくある間違い
indentation を schema validation と考えると、missing required element や invalid attribute を見落とすことがあります。
escaped entity を表示文字に置き換えると XML data が変わったり document が invalid になったりします。
見た目だけで attribute や child を sort すると、consumer の order や mixed content が変わる場合があります。
必要な namespace declaration なしで fragment を copy すると production document と異なる test になります。
制限
documented capability は XML formatting です。XSD、DTD validation、transformation、canonicalization、security analysis、application compatibility は証明しません。
whitespace-sensitive mixed content、namespace、大きな document、parser-specific recovery は target consumer とテストしてください。
policy が許可しない限り confidential production document を貼らないでください。formatted copy に同じ sensitive value が残る可能性があります。
Examples
Simple element を format
compact element を読みやすくできますか?
compact XML を送ります。
child element は note の下に別々の indented line で表示されます。
Attribute を保持
attribute を持つ element をどう確認しますか?
element を送り opening tag を確認します。
id attribute は user に残り、name child は indent されます。
Escaped text を保持
text 内の entity は残りますか?
document を format して text node を比較します。
entity reference は text representation の一部として残ります。
Repeated child を format
repeated element を明確に分けられますか?
二つの item child を持つ parent を送ります。
各 repeated child が自分の line に表示され、order を確認しやすくなります。
Comment を残す
XML comment はどうなりますか?
configuration sample を format します。
comment は parent と mode element の間に残ります。
Declaration を残す
XML declaration はどう処理されますか?
declaration と root element を一緒に送ります。
declaration は先頭に残り、root content は下に indent されます。
Frequently asked questions
formatting は XML schema を validation しますか?
いいえ。XML structure を整えるだけです。schema check には project の XSD、DTD、application validator を使います。
formatting は element value を変更しますか?
value と structure を保持して presentation whitespace を加える動作です。exact text が重要なら original と比較します。
comment は保存されますか?
例では comment を formatted view に残る content としています。pipeline で使う前に自分の input で確認してください。
XML fragment を format できますか?
complete document または documented fragment shape を使います。fragment は不足している namespace や root に依存することがあります。
formatting で XML は小さくなりますか?
いいえ。readability のため whitespace が増えるのが普通です。compact output には別の minifier または transport process を使います。
escaped ampersand はどうしますか?
& のような reference は XML data として残します。context が valid XML でなくなる場合は raw ampersand に置き換えません。
formatting は malformed XML を修復しますか?
automatic repair を前提にしないでください。source を意図的に直し、application の parser と schema check を実行します。
formatting の後に何をしますか?
diff を確認し、parser または schema check を実行します。whitespace や namespace が重要なら real consumer で formatted copy をテストします。
