XML チェック - 無料オンライン XML 構文チェック・整形ツール
無料のオンライン XML チェックツール。XML 構文の検証、整形(フォーマット)、圧縮ができます。エラー箇所を即時に表示。完全ブラウザ内処理。
XML 検証ツールとは?
XML検証ツールは、XMLドキュメントが正しい構文規則に従っているか(「整形式」であるか)をチェックします。整形式のXMLは、適切にネストされたタグ、一致する開始/終了タグ、有効な文字、単一のルート要素を持つ必要があります。当オンラインXML検証ツールは、ブラウザのネイティブDOMParserを厳密なXMLモードで使用してXMLを解析し、構文エラーに関する即時フィードバックを提供します——解析が失敗した特定の行と位置を含みます。検証に加えて、設定可能なインデントでXMLをフォーマット(整形)したり、本番用に縮小したりすることもできます。
XML の検証とフォーマット方法
XMLを貼り付け
XMLコンテンツを入力テキストエリアにコピー&ペーストします。自動検証機能が入力中に構文をチェックします。
検証をクリック
検証ボタンを押して整形式性をチェックします。構文エラーがある場合は、XMLパーサーからの正確なエラー説明が表示されます。
フォーマットまたは縮小
検証成功後、「フォーマット」をクリックしてクリーンなインデントでXMLを整形するか、「縮小」をクリックしてコンパクトな1行形式に圧縮します。
コピーして使用
出力パネルのコピーボタンをクリックして、検証・フォーマット済みのXMLをクリップボードにコピーし、プロジェクトで使用します。
XML 検証の一般的な使用例
API レスポンスのデバッグ
SOAP API、RSSフィード、XMLベースのWebサービスからのXMLレスポンスを検証します。XMLパーサーを破壊する可能性のある不正な形式のレスポンスを迅速に特定します。
設定ファイルのチェック
本番環境にデプロイする前に、XML設定ファイル(web.config、pom.xml、AndroidManifest.xml)の構文エラーをチェックします。
データ交換の検証
データベースやデータ処理パイプラインにインポートする前にXMLデータファイルを検証し、ワークフロー途中での解析失敗を回避します。
サイトマップの検証
GoogleやBingなどの検索エンジンに送信する前に、XMLサイトマップが整形式であることを確認します。
一般的なXML構文エラーと修正方法
XMLは構文に厳格です。1つの閉じタグが欠けているだけでも、ドキュメント全体の解析が失敗します。開発者が遭遇する最も一般的なXMLエラーは以下の通りです:
| エラータイプ | 例 | 修正方法 |
|---|---|---|
| 閉じられていないタグ | <name>value | <name>value</name> |
| 不一致のタグ | <a><b></a></b> | <a><b></b></a> |
| 無効な文字 | <name>a & b</name> | <name>a & b</name> |
| ルート要素なし | <a/><b/> | <root><a/><b/></root> |
XML 検証の仕組み
XML検証は、ドキュメントがXML仕様の整形式性ルールに準拠しているかどうかをチェックします。ブラウザが寛容に解析するHTMLとは異なり、XMLパーサーは厳格です——1つの構文エラーでドキュメント全体が拒否されます。XML解析の仕組みを理解することで、より良いXMLを作成し、問題をより早くデバッグできるようになります。
XMLが整形式である条件
- すべての開始タグには一致する終了タグが必要です(または自己閉鎖:<tag/>)。
- タグは適切にネストされている必要があります——内側のタグは外側のタグより先に閉じます。
- 特殊文字(&, <, >, ', ")はそれぞれ &, <, >, ', " としてエスケープする必要があります。
- 他のすべての要素を含むルート要素が正確に1つ必要です。
- 属性値は引用符(シングルまたはダブル)で囲む必要があります。
当検証ツールの仕組み
当ツールはブラウザ内蔵のDOMParserを'text/xml' MIMEタイプで使用し、厳密なXML解析モードをトリガーします。パーサーがエラーを検出すると、<parsererror>要素をドキュメントに挿入します。当ツールはこの要素を検出し、エラーメッセージを抽出します。これには通常、行番号、列番号、問題の説明が含まれます。これは主要なブラウザや多くのXMLライブラリで使用されている解析動作と同じです。
当ツールは整形式性(構文)をチェックしますが、DTDやXSDスキーマに対する妥当性は検証しません。スキーマ検証にはスキーマ定義ファイルへのアクセスが必要であり、XML処理ワークフローの別のステップです。
プログラマティックにXMLを検証する方法
異なるプログラミング言語でXMLを検証する方法を学びます。各例では、エラー検出付きのXML解析を示します。
JavaScript
function validateXML(xmlString) {
const parser = new DOMParser();
const doc = parser.parseFromString(xmlString, 'text/xml');
const err = doc.querySelector('parsererror');
if (err) {
return { valid: false, error: err.textContent };
}
return { valid: true, doc };
}Python
import xml.etree.ElementTree as ET
def validate_xml(xml_string):
try:
ET.fromstring(xml_string)
return {"valid": True}
except ET.ParseError as e:
return {"valid": False, "error": str(e)}Java
import javax.xml.parsers.DocumentBuilderFactory;
import org.xml.sax.InputSource;
import java.io.StringReader;
public static boolean isValidXML(String xml) {
try {
var f = DocumentBuilderFactory.newInstance();
var b = f.newDocumentBuilder();
b.parse(new InputSource(new StringReader(xml)));
return true;
} catch (Exception e) {
return false;
}
}XML 検証のよくある問題
XMLは正しく見えるのに検証に失敗する
BOM(バイトオーダーマーク)、ノーブレークスペース、制御文字などの不可視文字がXML解析の失敗を引き起こす可能性があります。XMLをプレーンテキストとしてクリアして再貼り付けしてみてください。また、特定のパーサーではWindowsスタイルの改行(CRLF)が問題を引き起こすこともあります。
特殊文字が解析エラーを引き起こす
&、<、>、'、" の文字はXMLで特別な意味を持ちます。それぞれ &、<、>、'、" に置き換えてください。これはURLやコードスニペットを含むXMLで特に一般的です。
CDATAセクションが検証に通らない
CDATAセクションは、マークアップとして扱われる文字を含めるために使用します。正しい構文は <![CDATA[ 内容 ]]> です。よくある間違いには、余分なスペースや括弧の不一致があります。
エンコーディング宣言の不一致
XML宣言が <?xml version="1.0" encoding="UTF-8"?> となっているのに、実際のテキストが異なるエンコーディングの場合、非ASCII文字でパーサーが失敗する可能性があります。テキストが宣言されたエンコーディングと一致していることを確認してください。
XML 検証に関するよくある質問
XML検証とは何ですか?
XML検証は、XMLドキュメントがXML仕様で定義された構文規則に従っているかどうかをチェックするプロセスです。2つのレベルがあります:整形式性(正しい構文——タグが一致し、適切にネストされ、有効な文字であること)と妥当性(DTDまたはXSDスキーマに準拠していること)。当ツールは整形式性をチェックします。これはスキーマ検証の前の必須の第一歩です。
整形式XMLと妥当なXMLの違いは?
整形式XMLは基本的な構文規則(一致するタグ、適切なネスト、エスケープされた文字、単一のルート要素)に従います。妥当なXMLは整形式であり、かつDTD(文書型定義)またはXSD(XMLスキーマ定義)で定義された構造に準拠しています。整形式性は構文チェック、妥当性はスキーマに対する構造とコンテンツのチェックです。当ツールは整形式性検証に焦点を当てています。
最も一般的なXML構文エラーは何ですか?
最も一般的なXMLエラーは:(1) 閉じられていないタグ——</name>のような閉じタグを忘れる;(2) 不一致のネスト——<a><b></a></b>ではなく<a><b></b></a>が正しい;(3) エスケープされていない特殊文字——&の代わりに&を使用;(4) ルート要素の欠落——単一のルート要素なしで複数のトップレベル要素がある;(5) 大文字小文字の不一致——<Name>...</name>、XMLは大文字小文字を区別します。
XML vs JSON — どちらを使用すべきですか?
JSONはそのシンプルさとJavaScriptネイティブの解析により、Web APIの主要なデータ交換形式となっています。しかし、XMLは以下の分野で依然として重要です:SOAP Webサービス、RSS/Atomフィード、文書形式(DOCX、ODT)、設定ファイル(pom.xml、web.config)、サイトマップ、および確立されたXML標準を持つ業界(金融のXBRL、出版のDocBook)。エコシステムの要件に基づいて選択してください。
オンラインでXMLをフォーマット(整形)するには?
当サイトの無料オンラインXMLフォーマッターを使用してください——XMLを貼り付け、好みのインデント(2スペース、4スペース、またはタブ)を選択し、「フォーマット」をクリックします。ツールはXMLを解析して整形式であることを確認し、クリーンで適切にインデントされたバージョンを出力します。単純な正規表現ベースのフォーマッターとは異なり、当ツールのDOMベースのアプローチはテキストコンテンツと属性を正しく保持します。
XMLのDTDとは何ですか?
DTD(文書型定義)は、XML文書の合法的な構造(どの要素が出現できるか、その順序、持てる属性)を定義します。XMLの古くてシンプルなスキーマ言語です。例:<!DOCTYPE note SYSTEM "note.dtd"> は外部DTDを参照します。DTDはまだ使用されていますが、データ型と名前空間をサポートするXSD(XMLスキーマ定義)が新規プロジェクトでは主に置き換えています。
XSD(XMLスキーマ定義)とは何ですか?
XSD(XMLスキーマ定義)は、DTDよりも強力なXMLスキーマ言語です。データ型(文字列、整数、日付など)、名前空間、複雑なコンテンツモデルをサポートします。XSDスキーマ自体がXML文書であるため、プログラムでの処理が容易です。最新のXMLベースのシステムのほとんどは、検証にDTDではなくXSDを使用しています。
XMLは縮小できますか?
はい、タグ間の不要な空白を削除することでXMLを縮小できます。当ツールはXMLをコンパクトな1行に圧縮する縮小機能を提供します。縮小により本番用のファイルサイズが削減されます——SVGスプライトや大規模サイトマップなど、XMLを多用するアプリケーションにとって重要です。ただし、XMLの一部の空白は意味を持つ場合があるため(混合コンテンツなど)、縮小は注意して行ってください。
XMLに使用すべきエンコーディングは?
UTF-8はXML文書に推奨され、最も一般的なエンコーディングです。すべてのUnicode文字をサポートし、XML仕様によるデフォルトのエンコーディングです。常にエンコーディング宣言を含むXML宣言を含めてください:<?xml version="1.0" encoding="UTF-8"?>。特定の互換性要件がない限り、ISO-8859-1のようなレガシーエンコーディングは避けてください。
このツールは大きなXMLファイルを処理できますか?
当XML検証ツールはブラウザ内でネイティブDOMParserを使用して完全に実行され、通常数メガバイトまでのファイルを処理できます。非常に大きなXMLファイル(100MB以上)の場合は、xmllintのようなコマンドラインXMLリンターやストリーミングXMLパーサーの使用を検討してください。このツールにはブラウザの解析能力を超えるファイルサイズ制限はありません——サーバーにアップロードされるものは一切ありません。