5.4 NewsEnvelope
5.4.2 SentFrom と SentTo
SentFrom要素は、NewsML 文書を送信した 1つ以上の組織を識別し、SentTo要素はその文書を送ら れた1つ以上の組織を識別する。これら2つの内容モデルはpartyエンティティによって提供され、ニュ ース・ワークフローにおいて特定の役割を果たす個人、組織、企業を記 述する。オプションのComment 要素は、自然言語で非形式的な追加情報を提供する。Comment要素はオプションとしてxml:lang属性と
TranslationOf 属性を持つ。xml:lang属性はXML要素の内容の言語を識別する。それはXMLの仕様に定義
されており、その値はIETF RFC3066で定義されたものでなければならない。IETF RFC3066 では、
ISO639−1かISO639−2の言語コードと、ISO3166−alpha2かISO3166−alpha3の国コードの任意の 仕様(言語コードと国コードをハイフンで組み合わせること)が許されているが、(NewsMLでは言語コ ードは)ISO639−1 の2文字言語コードを使う必要がある。発行者は2文字または3文字の国コードを 選べる。そのために、xml:lang属性は ll−CC か ll−CCC の構造になる。TranslationOf 属性は、この
Commentが直訳となる他のComment要素へのポインタである。コメントタイプは、Comment要素の
FormalName属性で任意に命名される。Comment要素のVocabulary属性は、FormalNameの意味を定義 するcontrolled vocabularyへのポインタである。Scheme属性は、もし存在すれば、ボキャブラリ内のど のnaming schemeがこの形式名に当てはまるかを識別する。
そのProperty要素、またはそのFormalName属性、Vocabulary属性、Scheme属性を通して、Party 要 素は当該の組織であるTopicを識別する。オプションのTopic属性はそのTopicへの直接のポインタとして 使用できる。そのポインタはhttpのURL形式、またはNewsMLのURN形式、または#記号の後に現行
文書でのTopic要素のDuid属性の値を続ける形をとる。
<!ENTITY % party " (Comment* , Party+ )">
<!ELEMENT SentFrom (%party;)>
<!ATTLIST SentFrom %localid; >
<!ELEMENT SentTo (%party;)>
<!ATTLIST SentTo %localid; >
<!ELEMENT Comment (#PCDATA)>
<!ATTLIST Comment %localid;
xml:lang CDATA #IMPLIED TranslationOf IDREF #IMPLIED FormalName CDATA #IMPLIED Vocabulary CDATA #IMPLIED Scheme CDATA #IMPLIED >
<!ELEMENT Party (Property)*>
<!ATTLIST Party %localid;
%formalname;
Topic CDATA #IMPLIED >
以下の例は、文書を送信しているPartyの、MyCompanyCodes controlled vocabularyにおけるxyz naming scheme での形式名が、MYCODEであることを表している。Party要素のVocabulary属性は、MYCODEの意味を解析するた めに使用されるcontrolled vocabularyを提供するTopicSetを識別する。
<SentFrom>
<Party FormalName="MYCODE" Scheme="xyz"
Vocabulary="urn:newsml:mycompany.com:20010101:MyCompanyCodes:1"/>
</SentFrom>
[ツリー図]
[NSK解説]
SentFrom要素には送信元、SentTo要素には送信先の組織を表す。
Comment要素には自然言語で自由な形式で追記情報を記述が可能である。ただし、NewsML1.1 より
xml:lang属性がISO639-1とISO3166-alpha2の組み合わせ(ll-CC)、またはISO639-1とISO3166-alpha3 の組み合わせ(ll-CCC)で表現することになったため注意が必要である。日本語を表現する場合は、ll-CC だと「xml:lang="ja-JP"」となり、ll-CCCは「xml:lang="ja-JPN"」になる。また、国コードはかつてIPTC
? SentFrom
○+ Party
○* Comment
△* Property
×? SentTo
○+ Party
○* Comment
△* Property
×49
によりTopicSetとして管理されていた。しかしこの国コードのTopicSetは、事実上、ISO3166とISO639 で定義されているものをそのまま使用しているだけなので意味をなさない。それゆえ、現在、これらの ISO 仕様の値あるいは言語のための RFC3066 に一致した値を採用することや、ISO あるいは RFC の web サイトの情報ページに示されているボキャブラリの値を加えることを認めている。こういった処理 は、もはやIPTCがiso-country-codesとiso-language-codeのTopicSetを管理しないため、IPTCも強く推 奨している。
Party要素は組織の名称を表す。内容は、送信元と送信先の組織間で取り決めを行う必要がある。また、
NewsML1.1よりPartyの子要素としてProperty要素が追加されている。
下位要素のComment要素の値は人間が読むことを想定した形式で記述される。Party要素の直前に Comment要素を記述して、子要素のParty要素を解説する。
なお、Comment要素はオプションとしてxml:lang属性と TranslationOf 属性を持つ。xml:lang属性で Comment要素値の言語を指定することにより、さまざまな言語で記述することができる。
TranslationOf属性はIDREF型で、同一文書内の同じID型属性値をとるComment要素を示すポイン
タとなる。
[NewsML 仕様の変更点:NewsML v1.1]
1. Comment要素のxml:langの表現方法が従来は言語コードのみであったが、言語コードと国コード の組み合わせに変更された。
2. Comment要素にFormalName、Vocabulary、Schemeが追加された。
3. Party要素にProperty子要素が追加された。
[NskNewsML:1記述形式]
Partyのボキャブラリは新聞社・通信社間の場合、NSK オリジナルボキャブラリを推奨するが、配信
社と受信社で決める。
NewsEnvelope/SentFrom要素···○ NewsEnvelope/SentFrom/Party要素 ○ NewsEnvelope/SentTo要素···○ NewsEnvelope/SentTo/Party要素····○
<SentFrom>
<Party FormalName=”A-company”/>
</SentFrom>
<SentTo>
<Party FormalName=”B-company”/>
</SentTo>
[NskNewsML:1. 2記述形式]
NewsEnvelope/SentFrom/Comment △
NewsEnvelope/SentFrom/Comment/@FormalName △ NewsEnvelope/SentFrom/Comment/@Vocaburaly △ NewsEnvelope/SentFrom/Comment/@Scheme △
NewsEnvelope/SentTo/Comment △ NewsEnvelope/SentTo/Comment/@FormalName △ NewsEnvelope/SentTo/Comment/@Vocaburaly △ NewsEnvelope/SentTo/Comment/@Scheme △ NewsEnvelope/SentFrom/Party/Property要素 × NewsEnvelope/SentTo/Party/Property要素 ×
NewsML v1.1で追加されたComment要素のFormalName属性、Vocaburaly属性、Scheme属性は
使用しても良いが、同じく追加されたParty要素のPropertr子要素は使用してはいけない。
Comment要素のxml:langの表現方法は、言語コードと国コードの組み合わせで表現する。