MaiML (JIS K 0200) チートシート
XML構造、Python SDK (pymaiml / maiml-domain) クイックリファレンス
1. 4大セクションと主な要素
<maiml xmlns="http://www.maiml.org/schemas" xsi:type="maimlRootType" version="1.0">
<document id="doc1">
<creator/> <vendor/> <owner/> <date/>
</document>
<protocol id="protocol1">
<method id="m1">
<pnml> (<place/>, <transition/>, <arc/>) </pnml>
<program> (<instruction/>) </program>
</method>
<materialTemplate id="mt1"/>
</protocol>
<data id="data1">
<results>
<material ref="mt1"/> <!-- Protocol のテンプレートを参照 -->
</results>
</data>
<eventLog id="log1">
<log ref="m1">
<trace ref="program1">
<event ref="instr1">
<property key="lifecycle:transition" xsi:type="stringType">
<value>complete</value>
</property>
</event>
</trace>
</log>
</eventLog>
</maiml>
2. Python SDK コードスニペット
環境構築 (uv)
uv init .
uv add "pymaiml @ git+https://github.com/MaiML-Library/PyMaiML.git"
シリアライズ・保存
from pymaiml import serialization
from pymaiml.builders import LIFECYCLE_NS
# root は maiml_domain.MaimlRootType インスタンス
serialization.dump(root, "sample.maiml", extra_namespaces={"lifecycle": LIFECYCLE_NS})
検証 (バリデーション)
from pymaiml.validation import validate
result = validate("sample.maiml")
if not result.ok:
for finding in result.findings:
print(finding)
読み込み・クエリ
from pymaiml import serialization, query
loaded = serialization.load("sample.maiml")
root = loaded.root
print("Registered IDs:", loaded.ids)
# UUID一覧の取得
uuids = query.get_uuids(open("sample.maiml").read())