XSDバリデーター
整形式のXMLドキュメントでも、依然として間違っていることがあります: 必須の要素が欠けている、属性に誤ったデータ型を使っている、要素の順序が間違っている、など。XSD(XML Schema Definition)は、ドキュメントがどう見えるべきかを正確に記述します。このバリデーターは、あなたのXMLをそのXSDと組み合わせ、W3C XMLスキーマバリデーターを実行し、すべての違反を行、要素、破られた具体的な制約とともに列挙します。
XSDに対してXMLを検証する方法
-
1
両方のファイルを貼り付け
片側にXML、もう片側にXSDスキーマ。複数のスキーマをまとめて貼り付けられます。
-
2
検証を実行
パーサーが要素、属性、型をスキーマの宣言に照合します。
-
3
エラーを確認
各違反は要素のパス、期待される制約、実際の値を表示します。
-
4
修正して再検証
その場で編集し、再読み込みなしで再実行します。
XSDがチェックするもの
- 要素名と多重度: 必須、任意、最小/最大出現回数。
- 要素の順序: sequence、choice、all。
- 属性の有無と型: 必須 vs 任意、デフォルト値、固定値。
- データ型:
xs:string、xs:integer、xs:decimal、xs:dateTime、xs:boolean、xs:anyURI、カスタム。 - 制限: 最小/最大長、列挙、正規表現パターン、最小/最大値。
- 参照整合性: 要素をまたぐ制約のための
xs:key、xs:keyref、xs:unique。
典型的なエラー
| エラー | XSD 制約 |
|---|---|
必須要素 <email> の欠落 |
minOccurs="1" |
<phone> 要素が多すぎる |
maxOccurs="2" を超過 |
| 値 “abc” は有効な整数ではない | type="xs:integer" |
| 値 “[email protected]” がパターンに一致しない | xs:string の xs:pattern |
| 要素の順序が違う | xs:sequence |
未知の要素 <foo> |
スキーマで未宣言 |
| キーの重複 | xs:unique 違反 |
XSDと代替案の選択
- XSD: W3C標準、冗長、強力、広くサポートされています。エンタープライズXMLの第一候補。
- RELAX NG: よりシンプルな構文、同等に表現力豊か。ドキュメント形式(DocBook、TEI)で人気。
- Schematron: ルールベースで、ドキュメントに対してXPathのアサーションを実行します。構造を超えたビジネスルールに良い。
- DTD: 古く、表現力がはるかに低い。HTMLの歴史的互換性のために依然として使われています。
多くのプロジェクトは、構造にXSDを、複雑なフィールド横断ルールにSchematronを使います。
よくある落とし穴
- 名前空間が一致しなければなりません。 XSDが
targetNamespace="http://example.com"を宣言しているのにXMLがその名前空間を使っていない場合、検証は「宣言が見つかりません」で失敗します。 - xs:anyTypeは魔法の抜け道ではありません。 何にでも一致しますが、検証はまったく行いません。
- デフォルト値は属性が欠けている場合にのみ適用されます。明示的な空の値(
attr="")はデフォルトを得ません。 - 空白の扱いは型によって異なります。
xs:stringはそれを保持し、xs:tokenは折りたたみ、xs:normalizedStringはタブ/改行をスペースに置き換えます。
デバッグのワークフロー
- まずスキーマなしで検証(整形式チェック)。パースエラーを修正します。
- 次にスキーマに対して検証。
- 最初のエラーに集中。 XSDバリデーターはときどきエラーを連鎖させます。最初のものが通常、最も対処しやすいです。
- 大きなドキュメントでは、XPathを使って問題のある要素を特定します。
よくある質問
いいえ。別々に貼り付けるか、XML内の xsi:schemaLocation でスキーマを参照してください。ほとんどのツールは両方のアプローチに対応します。
はい。異なる名前空間の要素が現れる場合、それぞれに独自のスキーマが必要です。それらすべてを貼り付けてください。バリデーターはそれらをすべて読み込みます。
XSD 1.0 です。基盤となる libxml エンジンは XSD 1.1 を実装していないため、アサーション、条件付き型、オープンコンテンツといった 1.1 固有の機能は適用されません。
いいえ。XML とスキーマは、その 1 回のリクエストで検証を実行するためだけにサーバーへ送信され、その後は保存もログ記録もされません。
関連ツール
プレースホルダー画像ジェネレーター
1〜4000 pxの画像に色と文字を設定し、PNGで保存できます。外部URLとHTMLもコピーできます。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
HTML 圧縮ツール
通常のコメントを削除し、空白を整理して、ブラウザ内で HTML をコンパクトにします。使用前に結果を確認してください。
Nginx 設定ジェネレーター
かんたんなフォームから、TLS・HTTP/2・gzip・ブラウザキャッシュ・リバースプロキシの設定を含む Nginx の server block を生成します。
Markdownリンク生成ツール
URLとアンカーテキストからMarkdownリンクの記法を生成します。タイトルのツールチップや、長い文書を読みやすく整える参照形式のリンクにも対応しています。
補色ファインダー
任意の色の補色を見つけます。HSL上の反対色、スプリットコンプリメンタリーのペア、アクセシブルな配色のヒントを返します。
このツールは他の言語でも利用できます
- Validador XSD [ES]
- Bộ xác thực XSD [VI]
- XSD 검증기 [KO]
- Validator XSD [ID]
- Walidator XSD [PL]
- Validateur XSD [FR]
- Validador XSD [PT]
- XSD-Validator [DE]
- مُحقق تنسيق XSD [AR]
- XSD-validator [NL]
- XSD-validerare [SV]
- เครื่องตรวจสอบความถูกต้องของ XSD (XSD Validator) [TH]
- XSD Validator [EN]
- Validator XSD [IT]
- Валидатор XSD [RU]
- XSD Doğrulayıcı [TR]
- XSD 校验工具 [ZH]