General Recommendations
全般的な推奨事項
状態:ドラフト
対象
XML文書であるJATS記事全般
解説
これらの推奨事項は記事のXML全体に適用されます。即ち、JATS記事XML文書の作り方についての最良慣行です。
どのJATS DTDか?
注記事項 全てのJATS4R推奨事項はNISO JATS Z39.96-2012, version 1.1以降のタグ集合に適用されます。
もし推奨事項が特定の版のJATSのみに当てはまる場合、そのことが明記されます。それ以外の版に則って作成されている文書に対してそのような推奨事項の確認を行っても、検証機は警告や落第の通知を出しません。
検証機と推奨事項は、記事出版用(青)と記事保存交換用(緑)の両方のスキーマーに適用する意図で作られています。推奨事項がスキーマの片方にのみ適用される場合は推奨事項の文書にはそのことが明記され、記事にもう片方のスキーマに則っている事が宣言されている場合は検証機もエラーや警告の通知を出しません。
JATSの記事執筆用スキーマ(『パンプキン』タグセットとしても知られる)JATS4Rの推奨事項では取り扱われてはいないが、それは執筆用のスキーマが著者が自著の記事をXMLに取り込む際に使う前提で作られているからです。このスキーマに該当する記事は出版までの早い段階にあるのであって、再利用のための物ではありません。JATS4Rの指針の中には執筆用モデルの記事に適用するものがあるかもしれませんが、この文書の推奨事項はその段階で使用することは意図していません。
推奨事項
1. XML文書の構造
JATS4Rに準拠した記事XMLファイルは、明確に一つのJATSスキーマを参照することで、どの版のJATSに従っているかをファイル内で明示しなければならなりません。ATSのスキーマは三種類の言語で提供されており、その一つ(そして一つだけ)が参照されているべきです。その三種類の言語とはDTD、Relax-NG、W3C Schema (XSD)です。・DTD
・ Relax-NG
・ W3C Schema (XSD)
記事XMLファイルが自分のスキーマを示すために使える方法は三つあります。言語別にどの方法が使用できるかも合わせて以下にこれを示します。
Reference method:Schema language
DOCTYPE declaration :DTD✓
xsi:noNamespaceSchemaLocation attribute:W3C XS✓
<?xml-model?> processing instruction:DTD ✓ W3C XS✓ DRelax-NG✓
■検証機の結果:
●文書がスキーマを参照していない場合、エラー。
●文書が二つ以上の異なるスキーマを参照している場合、エラー。
●もし二つ以上のスキーマを参照しており、それらが全く同じバージョンのJATSを指している場合、警告。
2. DOCTYPE宣言
JATS記事は文書型宣言を使って特定の版のJATS DTDを参照しているのが最も一般的です。JATS4R準拠とするためには、文書型宣言を使用する場合、公開識別子と、システム識別子として完全な絶対URLのシステム識別子を含んでいなければなりません。例えば、次のようになります。<!DOCTYPE article
PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN"
"http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article dtd-version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:mml="http://www.w3.org/1998/Math/MathML">
...
</article>■検証機の結果:
●DOCTYPE宣言がシステム識別子だけを使用している場合、エラー。
●DOCTYPE宣言が公開、もしくはシステム識別子で公式なNLMもしくはNISOのJATS DTDの一つに一致しないものを使っている場合、エラー。
●システム識別子がJATS DTDの完全で正式なURLでない時、エラー。
●参照されているJATSスキーマの版がJATS 1.0より前のものである場合、警告。
3. noNamespaceSchemaLocation属性
記事のXMLファイルはW3CのXSDで書かれたJATSスキーマを参照することもでき、その場合にはこの属性を使用する。その場合、XSDファイルの完全なURLが使用されていなければならない。例えば、次のようになります。<article dtd-version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:mml="http://www.w3.org/1998/Math/MathML"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://jats.nlm.nih.gov/publishing/1.1/xsd/JATS-journalpublishing1.xsd">
...</article>
■検証機の結果:
●属性の値が公式なNLMもしくはNISO JATSスキーマのW3C XSD版の完全で標準的なURLに正確に一致しない場合、エラー。
●参照されているJATSスキーマの版がJATS 1.0より前のものである場合、警告。
4. xml-model処理命令
記事では<?xml-model?>という処理命令(別途仕様を参照)を使用して三種のどの言語で記されたJATS(のスキーマ)どれに対する参照でも記述することが出来ます。<?xml-model?>処理命令を使用する場合、それをルート要素の前に置かなければなりません。この処理命令は@href疑似属性を持っていなければなりません(MUST)し、その疑似属性の中身は(JATSの)スキーマの完全な絶対URL(訳注:正しくはURI/IRI)でなければなりません。例えば、以下はDTDを参照するために処理命令を使用した例です。<?xml-model type="application/xml-dtd"
href="http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd"?>
<article dtd-version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:mml="http://www.w3.org/1998/Math/MathML">
...
</article>以下はxml-model処理命令をRelax-NG版のJATS(文書定義)を参照するために使用した例です。
<?xml-model schematypens="http://relaxng.org/ns/structure/1.0"
href="http://jats.nlm.nih.gov/publishing/1.1/rng/JATS-journalpublishing1.rng"?>
<article dtd-version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:mml="http://www.w3.org/1998/Math/MathML">
...
</article>最後に、W3C XSD版を参照する場合の例は、
<?xml-model schematypens="http://www.w3.org/2001/XMLSchema"
href="http://jats.nlm.nih.gov/publishing/1.1/xsd/JATS-journalpublishing1.xsd"?>
<article dtd-version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:mml="http://www.w3.org/1998/Math/MathML">
...
</article>■検証機の結果:
●@typeまたは@schematypen疑似属性がスキーマの言語に合致していない場合、エラー。即ち以下の通り。
・@hrefがDTDを参照しているなら、@typeはapplication/xml-dtdを含んでいなければならない。
・@hrefがRelax-NGファイルを参照しているなら、@schematypensはhttp://relaxng.org/ns/structure/1.0でなければならない。
・@refがW3C XSDを参照しているなら、@shematypensはhttp://www.w3.org/2001/XMLSchemaでなければならない。●@hefの値が、対応する言語の版の公式なNLMあるいはNISOのJATSスキーマの完全で標準席なURLに正確に一致しなかった場合、エラー。
●参照されているJATSスキーマの版がJATS 1.0より前のものである場合、警告。
5. 文字エンコード
全てのJATSXM文書はUTF-8もしくはUTF-16でエンコードされるべきです。バイトオーダーマーク(BOM)については、
「エンコーディングがUTF-8である場合はついていても良い」
「エンコーディングがUTF-16である場合はついていなければならない」という事に注意して下さい。
またもう一つ注意するべき点として、広く使われているUS-ASCIIはUTF-8の一部であり、従って(エンコーディングが)US-ASCIIに制限されているファイルは完全に問題が無いのですが、もしXML宣言が与えられている場合にはエンコーディングは「utf-8」と指定されているべきです。
■検証機の結果:
●(文字の)エンコードがUTF-8またはUTF-16でない場合、エラー。
●エンコードがUTF-16でありBOMがない場合、エラー。実際、検証機の現在の実装ではUTF-8またはUTF-16ではないXMLファイルを正しく読めないため、表示されるエラーメッセージは単純に読み込めないことを示すものである。6. 文字実体参照
特殊な文字を表すために文字実体参照を使ってはなりません(下記の論理的根拠を参照)。その代わりに、エスケープされていない状態の文字を使用するか、数値文字参照を使って下さい。
論理的根拠と例示:
JATS DTDはMathMLから継承した大量の文字実体参照を定義しています。(MathMLの第六章「実体、文字、フォント」でリストを参照。)例えばこれらはXML文書中に「©」として現れ、XMLパーサーによってユニコードの符号位置に変換されます。文字実体参照を使用したXMLファイルを正しく構文解析するためには、ツールはDTD全体を取得して構文解析する必要があるでしょう。インターネットからであれ内部的にキャッシュされたものからであれ、適切なDTDを取得できるシステムを設定するのは極めて煩雑であるため、JATS4Rでは作成された文書では文字実体参照を使用してはいけないと推奨します。この規則には5つの「組み込みの」XML文字実体“<”, “>”, “'”, “"”, “&”は含まれない事に注意して下さい。XMLに準拠したパーサーはこれら(の文字実体参照)をDTDを参照することなく展開できます。
従って、例えば次の著作権宣言文はJATS4R準拠ではありません。
<copyright-statement>© 2014 Surname et al.</copyright-statement>
代わりに著作権記号の記号はエスケープされない形で直に含まれるようにするべきです(望ましい対応)
<copyright-statement>© 2014 Surname et al.</copyright-statement>
あるいは数値文字参照として表すべきです。
<copyright-statement>© 2014 Surname et al.</copyright-statement>
■検証機の結果:
●文字実体参照が使われている場合、エラー
7. 「タグセットのバージョン(DTD)」属性
JATS4R(準拠)の記事は<article>要素にこの属性を指定するべきであり、その値は使用しているJATSの版に対して正しい物でなければならない。
■検証機の結果:
●属性が存在しない場合、警告。
●この属性の値が参照されているJATSの版から要求される値と違う場合、エラー。