スキマトロン(Schematron)勉強会 日時:2016年5月13日 15時から17時 場所:科学技術振興機構 別館4F-H会議室
Schematron とは学術情報XML推進協議会 (XSPA)時実 象一2016/5/132016/5/13 スキマトロン勉強会 1
View Slide
Schematron とは• Schematron プログラムは整形式 (well-formed) のXML 文書• 各要素は「コマンド」• プログラムは「スキーマ」とも呼ばれる– schema, の他に、specification, rule set, program,pattern set, assertion set, などとも呼ばれる• データの変換はおこなわない• 記述には XPath 1.0 を用いる• プロセッサが必要 (oXygen)2016/5/13 スキマトロン勉強会 2
Schematron の利用法• 人がチェックできるようにレポートを出力(例)「図表のタイトルとキャプションを出力」• スキーマでチェックできないチェックをおこなう(例)「受理年は 2014 年以降でなくてはならない」• パターンを発見する– (例)「著者履歴が記載されていない著者の一覧を出力」• 要素の値を用語表を用いてチェックする• プログラムの入力と出力を比較する2016/5/13 スキマトロン勉強会 3
Schematron のテスト例– 複雑なチェックも可能• 「図は本文中に引用が必要」• 「セクション表題の長さは最大450文字」• 「Lab Reportの著者の数は最大6名」• 「引用文献はすべて文中て引用が必要」• 「図は文中で少なくとも1回、最大5回まで引用」• 「キーワードは重複してはいけない」• 「記事の先頭ページは最終ページより小さい、ただし編集後記は最終ページで始まって、内部ページにつづいてもよい」• 「出版日は の中以外はISO dates」• 「抄録は1パラグラフ」• 「意見欄の筆者は になる」2016/5/13 スキマトロン勉強会 4
JATS と Schematron• Schematron を利用すると– JATS XML データの内容の確認ができる– 人手のチェック作業が大幅に削減できる– 雑誌毎の「ビジネス・ルール」に正しくのっとった製品ができる– 製品の品質が向上する– 学会・著者の満足度が向上する2016/5/13 スキマトロン勉強会 5
Schematron 実施例• SAGE• ISO– DTDの管理・更新• ある航空機・軍需会社– 数千のルールを表で管理• ある大出版社– 雑誌ごとに異なるビジネス・ルールを管理• 研究助成情報をCrossrefのFunding Informationと照らしてチェック (OSA)• QA ツールに利用 (De Gruyter)• 自社 SGML/XML データの JATS 変換に利用 (AIP, CambridgeUniversity Press)• oXgen 上で Schematron によるリアルタイム・チェック / 修正(le-tex)2016/5/13 スキマトロン勉強会 6
Schematron の構造• Assertions テストする内容• Messages テストの結果の報告• Rules テストの集合• Patterns Rule の集合• Phases Pattern を実行するタイミング2016/5/13 スキマトロン勉強会 7
Schematron の実行• Rule– 一連のテストをまとめたものCheck Sections 12/07This section has no titleThis section has noparagraphs2016/5/13 スキマトロン勉強会 8
oXgen での Schematron の実行 (1)• デモ用サンプルあり– https://www.oxygenxml.com/demo/Schematron_Validation.html2016/5/13 スキマトロン勉強会 9
oXgen での Schematron の実行 (2)• sample.xpr > schematron > 1.5 > tournament– tournament-schema.sch スキマトロン・ルール– Tournament.rng RELAX NG– Tournament.xml サンプル XML– Tournament.xsd W3G XML Schema2016/5/13 スキマトロン勉強会 10
oXgen での Schematron の実行 (3)1. XML ファイルを開く2. 「検証」 > 「次で検証...」2016/5/13 スキマトロン勉強会 11
oXgen での Schematron の実行 (4)3. Phase を選択して実行4. エラーの表示2016/5/13 スキマトロン勉強会 12
oXgen での Schematron の実行 (5)5. エラーを右クリック > 「メッセージを表示」– Team 要素の個数は @nbrTeams の値と一致しなくてはならない– Thenumber of Name elements in should matchthe @nbrParticipants attribute.2016/5/13 スキマトロン勉強会 13
oXgen での Schematron の実行 (6)6. XML を修正して Schematron を再実行– エラー・メッセージは表示されない2016/5/13 スキマトロン勉強会 14
• このスライドは下記の資料を参考にしています。• Introduction to Schematron. Version 90-1.0(November 2008), © 2008 MulberryTechnologies, Inc.• Hands On Schematron. Version 3.3 (August2014). ©2013, 2014 Mulberry Technologies,Inc.2016/5/13 スキマトロン勉強会 15