MaiML Validator は、MaiML(Measurement Analysis Instrument Markup Language) ファイルを JIS K 0200 のスキーマで検証する Web アプリです。
HTML ファイルを Chrome / Edge で開くだけで動作し、追加のインストールは一切不要です。読み込んだ文書とスキーマがどこかに送信されることはありません。
- 本物の検証エンジン:
lxmlやxmllintコマンドと同じ libxml2 を WebAssembly にコンパイルして同梱。ブラウザ内で完結しながら、コマンドラインツールと同等の検証を行います - サーバー不要・インストール不要:HTML 1 ファイル。オフラインでも動作します
- OK / WARN / ERROR の 3 段階判定:「検証できなかった箇所」を OK に埋没させず、かつ ERROR とも混同しません
- XSD が表現できない MaiML の約束事もチェック:IDREF の解決、UUID の重複、
<log>と<method>の対応など - エラー箇所へのジャンプ:行番号付きのエラーをクリックすると、ソース表示パネルの該当行へ移動します
- スキーマのキャッシュ:一度読み込んだスキーマはブラウザに保存され、次回以降は読み込み不要です
MaiMLValidator.htmlをダウンロード- ブラウザで直接開く(サーバー不要)
- または任意の Web サーバーで配信
スキーマは本ツールに同梱していません。 JIS K 0200 のスキーマ定義ファイルは、JAIMA(日本分析機器工業会)が運営する MaiML のサイトから入手します。
- https://www.maiml.org/ を開く
- 「ダウンロード」から申請フォームへ進む
- 氏名・メールアドレス・所属を入力し、プライバシーポリシーに同意して送信する
- ダウンロード画面へ遷移するので、スキーマ定義ファイル一式を取得する
取得した .xsd は一式まとめて本ツールに読み込ませます(次の「基本操作」を参照)。ただし、同じスキーマの別版や退避したコピーは含めないでください(「補足 › ルートスキーマの自動判定」を参照)。
なお、同サイトの英語ページからは、同じスキーマセットを MaiML-Schema-1_0.zip(16 KB)として申請フォームを経由せず直接ダウンロードできます。
📌 同サイトで配布されている LINQPad 版のスキーマチェックとは、別のツールです。 MaiML のサイトでは、LINQPad を使ったスキーマチェックの手順書とスクリプトも配布されています。MaiML Validator はそれとは独立に開発されたツールで、検証には libxml2(WebAssembly)を使い、ブラウザ内で完結します。手順書のスクリプトの代わりに使えますが、検証エンジンが異なるため、判定が完全に一致するとは限りません。
- JIS K 0200 の
.xsdスキーマファイルを読み込む ドラッグ&ドロップ、またはファイル選択で読み込みます。スキーマ一式を、すべてまとめて読み込ませてください。 どのファイルが必要かを利用者が判断する必要はありません。実際に文書から参照されているファイルだけが使われ、残りは無視されます。 読み込んだスキーマはブラウザ内(localStorage)にキャッシュされるので、次回以降は読み込み直す必要はありません。 - 検証したい
.maimlまたは.xml文書を読み込む - 結果を確認する 色付きバッジが総合判定(OK / WARN / ERROR)を示し、サマリー行にはルートスキーマとして選ばれたファイル名が表示されます。
- エラー箇所へジャンプする 行番号付きのエラー・警告をクリックすると、下の Show source パネルで該当行へ移動します。
- 結果を保存する Copy report / Save report でプレーンテキストとして保存できます。
📌 ファイルはページのどこにドロップしても構いません。拡張子で自動的に振り分けられます(
.xsdはスキーマ、.maiml/.xmlは検証対象の文書)。
| 判定 | 意味 |
|---|---|
| ✅ OK | いかなる問題も検出されなかった |
| スキーマ違反ではないが、完全に検証できなかった箇所がある、または誤りに見える記述がある | |
| ❌ ERROR | 実際のスキーマ違反、または解決できない IDREF がある |
WARN を OK からも ERROR からも意図的に分けています。 ERROR に含めるとスキーマ上は正当な文書を弾いてしまい、OK に含めると「このツールが検証できなかった部分」を黙って隠すことになるためです。
WARN になるのは次のいずれかです。
- スキーマを読み込んでいない名前空間の要素が、
xs:any processContents="lax"の開いたワイルドカードによって受理された(その中身は実際には検証されていない) - 下記「MaiML 固有のチェック」に該当した
要素・属性の名前、内容モデル、出現回数、順序、データ型、パターン、名前空間 — XSD による構造検証を一通り行います。
libxml2 が行わない検証を、上に載せて独自に実装しています。 XSD の仕様は xs:IDREF が宣言済みの xs:ID を指していることを要求しており、Apache Xerces は cvc-id.1 として報告しますが、libxml2 はこれを検証しません。
MaiML ではペトリネットのアーク(arc/@source、arc/@target)やイベントログの参照がこの仕組みに依存しているため、参照先が存在しないという不具合が黙って通過してしまうのを防いでいます。
どの属性が ID / IDREF(S) 型かは読み込んだスキーマから読み取るので、スキーマの改訂に自動的に追随します。
スキーマでは表現できない約束事を検査します。
| チェック | 内容 |
|---|---|
| 非 ASCII の識別子 | ID / IDREF / QName 型の値に非 ASCII 文字が使われている。スキーマ上は正当ですが、MaiML のツール群で問題を起こすことが知られています |
<uuid> の重複 |
同一文書内に同じ UUID が複数回現れる。<uuid> は個々のオブジェクトを一意に識別するためのものです |
<log> と <method> の対応 |
JIS K 0200 6.5.2 は <method> 1 つに対して <log> 1 つを求めています。複数回の計測分析は <log> を増やすのではなく、その中の <trace> を並列に増やして表現します |
- スキーマを読み込んでいない名前空間の中身(WARN として提示するところまで)
- 上記以外の業務ルール(例:計測値が科学的に妥当かどうか)
- XML 電子署名の検証 署名の構文はスキーマ検証の対象ですが、署名値やハッシュが内容と整合するかという検証は本ツールの機能ではありません。署名の検証は MaiMLStandaloneViewer が行います
libxml2 が実装するのは XSD 1.0 です。これは JIS K 0200 のスキーマが書かれている W3C のスキーマ言語の版であり、MaiML 文書の版(ルート要素の version 属性)とは無関係です。読み込んだスキーマが記述する MaiML の版が、そのまま検証対象になります。
XSD 1.1 固有の構文(xs:assert、xs:alternative、xs:openContent、xs:override)を使ったスキーマは、該当する構文名と行番号を示して明示的にエラーになります。黙って無視することはありません。適用されていない規則に対して「妥当」と報告してしまう事態を避けるためです。
なお vc:minVersion="1.1" を宣言しているだけで上記の構文を使っていないスキーマは、通常どおり検証できます。
サマリー行の Root schema: は、検証対象の文書のルート要素と同名のグローバル要素を宣言しているスキーマファイルを探して決定しています。ファイル名を決め打ちしていないため、規格の改訂でファイル名が変わっても追随します。
同じルート要素を宣言するスキーマファイルが複数読み込まれていると一意に決定できません。同じファイルの別版(例:*_rev0.xsd / *_import.xsd、退避した原本のコピーなど)は取り除いてください。退避用の原本を同じフォルダに置く場合は、拡張子を .xsd.bak などに変えておくと安全です。
配布されているスキーマセットに xs:import 宣言が不足している場合、本ツールはメモリ上のコピーにだけそれを補ってから検証します。読み込んだファイルが書き換えられることはありません。
XSD では xmlns: による接頭辞の宣言だけでは他の名前空間の部品を参照できず、xs:import が別途必要です。この宣言が欠けていると厳格な処理系では名前空間の解決に失敗します。補完した内容は Copy report / Save report の出力に記録されます。
| 項目 | 内容 |
|---|---|
| ブラウザ | Chrome / Edge を推奨 |
| サーバー | 不要(file:// で直接開けます) |
| ネットワーク | 不要(オフラインで動作) |
| 検証エンジン | libxml2(WebAssembly)を同梱 |
本ツールは以下のオープンソースソフトウェアを同梱しています。各ライセンスの全文はアプリ内の Help パネルに掲載しています。
| ソフトウェア | ライセンス |
|---|---|
| libxml2 | MIT |
| xmllint-wasm(libxml2 の WebAssembly ビルド) | MIT |
| ツール | 用途 |
|---|---|
| MaiML Studio | MaiML ファイルのデザイン・作成・エクスポート |
| MaiML Standalone Viewer | MaiML ファイルの可視化・分析・署名検証 |

