DevToys Web Pro iconDevToys Web Proブログ
評価:
ブラウザ拡張機能を試す:

XML / XSD バリデーター

サーバーサイド

サンプル

検証結果

検証を読み込み中...

XSD スキーマ

  • XML ドキュメント

  • Loading editor...
    Loading editor...
    技術的な詳細

    XML / XSDバリデーターの仕組み

    このツールでできること

    このXML XSDバリデーターは、サーバーサイド処理を使用してXMLドキュメントをXML Schema定義に対して検証します。このツールは、スキーマで定義された構造、データ型、要素の順序、属性要件を検証します。検証に失敗した場合、可能であれば行番号と列番号とともに具体的なエラーを報告します。バリデーターは、名前空間、複合型、シーケンス制約、パターンマッチングや値制約などのスキーマファセットを処理します。

    例: 書籍カタログの検証

    このXSDスキーマでは、書籍に整数のIDと小数の価格が必要だとします:

    <xs:element name="book">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="title" type="xs:string"/>
                <xs:element name="price" type="xs:decimal"/>
              </xs:sequence>
              <xs:attribute name="id" type="xs:integer" use="required"/>
            </xs:complexType>
          </xs:element>

    &lt;book id="abc"&gt;&lt;price&gt;not-a-number&lt;/price&gt;&lt;/book&gt;のような無効なXMLは、ID属性とprice要素の両方について型制約エラーにより検証に失敗します。

    一般的なユースケース

    開発者は、SOAP APIとの統合、設定ファイルの検証、またはデータ交換形式の処理においてXML Schema検証を使用します。一般的なシナリオには、公開スキーマに対するAPIレスポンスの検証、デプロイ前の設定ファイルのチェック、ETLパイプラインにおけるデータ品質の確保などがあります。このバリデーターは、データが本番システムに到達する前に、型の不一致、必須要素の欠落、要素順序の誤りを検出するのに特に有用です。

    検証エンジンと制限事項

    このツールは、libxmljsのNode.jsバインディングを介してlibxml2を使用し、XML Schema 1.0に準拠しています。バリデーターはセキュリティのためスキーマを完全にサーバーサイドで処理し、外部リソースの取得やネットワークベースのimportの解決は行いません。安全性のため外部エンティティ処理(XXE)は無効化されています。スキーマのincludeおよびimportは、参照されるすべてのスキーマがメインのXSD内容内に提供されている場合にのみ機能します。

    • ネットワークアクセス:セキュリティのためブロック
    • スキーマimport:インライン必須、外部解決なし
    • 外部エンティティ:無効(XXE対策)
    • 処理制限:妥当なサイズ制限が適用されます

    サーバーサイド処理とクライアントサイド処理の比較

    基本的な構文検証であれば、クライアントサイドでのXML整形式チェックで十分です。しかし、XSD検証には専用のエンジンが必要です。なぜなら、ブラウザにはXML Schemaプロセッサが含まれていないためです。サーバーサイド検証は一貫した結果を保証し、継承やインポートなどの複雑なスキーマ機能を扱え、潜在的に悪意のあるXMLコンテンツからのセキュリティ分離も提供します。