5.6 NewsManagement
5.6.5 StatusWillChange
オプションの StatusWillChange要素は、指定された日時に自動的に起こるステータス変化の事前通知 を行う。StatusWillChange中の必須のFutureStatus要素は、NewsItemが将来の指定日時に持つステー タスを示す。FormalName属性の値は、ステータスのための形式的な名前である。その意味と許される 値は、Vocabulary属性とScheme属性によって識別されるcontrolled vocabularyによって決定される。必 須のDateAndTime要素は、ISO 8601 標準フォーマットを用い、ステータス変化が起きる日時を示す。
例えば「embargoed (公開待機)」StatusのNewsItemは、StatusWillChange要素を持つことにより指定 された時間に「usable(公開可能)」になる。これは公開待機が終わり、NewsItemが公開される時間を、
事前にアナウンスすることに相当する。この要素の複数使用は、NewsItemの事前計画された変化を前も って表すことができる。
<!ELEMENT StatusWillChange (FutureStatus , DateAndTime )>
<!ATTLIST StatusWillChange %localid; >
<!ELEMENT FutureStatus EMPTY >
<!ATTLIST FutureStatus %localid;
%formalname; >
以下の例では、NewsItemがその生成時には公開待機(embargoed)だったのが、UTC時間の2000年7月7日12時 に公開可能(usable)になることを示している。NewsItemのステータスの変更は、ニュース配信社内のローカルなイ ベントではなく、グローバルなイベントであることに留意すること。なぜならばそのNewsItemはグローバルな識別 子を持ち、そのステータスは世界中で適応されるからである。
<Catalog>
<Resource>
<Urn>urn:newsml:iptc.org:20001006:IptcStatus:1</Urn>
<DefaultVocabularyFor Scheme="IptcStatus" Context="Status|FutureStatus"/>
</Resource>
<Catalog>
...
<Status FormalName="Embargoed"/>
<StatusWillChange>
<FutureStatus FormalName="Usable"/>
<DateAndTime>20000707T1200+0000</DateAndTime>
</StatusWillChange>
2つのDefaultVocabularyFor要素が、XPathの文法を代替パターンでマッチングするのに使用することにより、1 つに結合されていることに注目すること。以下の例において、DefaultVocabularyFor要素で表現されているのは、
IPTC status vocabularyを「要素名=Statusまたは要素名=FutureStatus」のパターンにマッチするあらゆるデータ に適応するということである。
<Resource>
<Urn>urn:newsml:iptc.org:20001006:IptcStatus:1</Urn>
<DefaultVocabularyFor Scheme="IptcStatus" Context="Status|FutureStatus"/>
</Resource>
[ツリー図]
[NSK解説]
StatusWillChange要素は指定日時に指定ステータスに変更することを示す。
例えば、公開禁止期間(後日、公開予定)のニュースを先に提供する場合に、公開日時をこの要素で指定 する。
ステータス変更時刻以降、該当する版のNewsItemをurnなどで呼び出した場合、ステータスの変更 が反映されたNewsItemを示す。
また、StatusWillChange要素は、複数回記述することができる。これにより、Status要素の値を変更さ せるためにNewsManagementを送信しなくても、事前にStatusWillChange要素によってStatus要素の 値の変更を指示する事が可能である。つまり、あらかじめStatus要素の値の変更時間が分かっている場合 は、送信側からの指示がなくてもFurtureStatus要素とDateAndTime要素を使い、受信側でStatus要素 の値を変更することができる。但し、FurtureStatus要素の値とDateAndTimeの値は未来に対して矛盾 の無いように進むよう注意すること。Status要素の値に変更を与えるFurtureStatus要素の有効な変化過 程は、次のものが一般的に考えられる。
FutureStatusのボキャブラリはStatusと同じくIPTCのボキャブラリを使用する。また、DateAndTime は、5.4.3 DateAndTimeに準じる。
▽目的の時間に公開したい場合
・Embargoed(Status要素の値)? Usable(FurtureStatus要素の値)
▽目的の時間に削除したい場合
・Usable(Status要素の値)? Canceled(FurtureStatus要素の値)
また、StatusWillChangeが複数記述可能になったため、上記を組み合わせて次のような表現が可能とな った。
▽目的の時間に公開したのち、一定時間後に削除したい場合
・Embargoed(Status要素の値)? Usable(FurtureStatus要素の値)? Canceled(FurtureStatus要素の 値)
一度CanceledになったStatus要素の値は、他の値に変更することはできないので注意すること。
StatusWillChange要素を使用する場合の値の組み合わせ一覧
Statusの値 Usable Withheld Embargoed Canceled
Usable FutureStatusの値 Canceld Canceled
Canceled
Canceled StatusWillChange を記述できない
なお、NskNewsML:1.2 では StatusWillChange 要素は 0 回、または 1 回。繰り返しは認めない。
* StatusWillChange
△DateAndTime
△FutureStatus
△77
(例1)Embargoed→Usable の変化過程
(例2)Usable→Canceled の変化過程
13:00 ニュース提供側
8月15日の13時まで公開するニュースを提供する
(8月15日13時に公開取消にする)
:
<Status FormalName="Usable"/>
<StatusWillChange>
<FutureStatus FormalName=“Cancel ed"/>
<DateAndTime>20040815T130000+0900</DateAndTime>
</StatusWillChange>
:
受信側 受信側
ニ ュ ー ス を 読めない
(提供直後から)ニュース を読める
時間経過
NewsMLニュース提供システム 12:00 ニュース提供側
8月15日の12時に公開するニュースを提供する
(8月15日12時に公開する)
:
<Status FormalName="Embargoed "/>
<StatusWillChange>
<FutureStatus FormalName=“ Usable"/>
<DateAndTime>20040815T120000+0900</DateAndTime>
</StatusWillChange>
:
受信側 受信側
ニ ュ ー ス を 読める ニュースを
読めない
時間経過
NewsMLニュース提供システム
(例3)Embargoed→Usable→Canceled の変化過程
[NewsML仕様の変更点:NewsML v1.1]
StatusWillChangeは、Version1.0では0回または1回しか記述できなかった。しかし、Version1.1に なって、複数回の記述ができるようになった。
[NskNewsML:1記述形式] StatusWillChange要素··△
[NskNewsML:1.2記述形式]
StatusWillChange要素 △
NewsML1.1でStatusWillChange要素は複数回記述可能となったが、NskNewsML:1.2では0回また
は1回。繰り返しは認めない。
13:00 12:00
時間経過 時間経過 ニュース提供側
8
月15 日の12 時から13
時まで公開するニュース を提供する受信側 受信側
ニュース を読める ニュースを
読めない ニュースを
読めない
8月15日の12時から13時まで公開するニュースを提供する。
(8月15日12時に公開し、13時に公開取り消しする。)
:
<Status FormalName="Embargoed"/>
<StatusWillChange>
<FutureStatus FormalName="Usable"/>
<DateAndTime>20040815T120000+0900</DateAndTime>
</StatusWillChange>
<StatusWillChange>
<FutureStatus Formal Name=“Cancel ed"/>
<DateAndTime>20040815T130000+0900</DateAndTime>
</StatusWillChange>
:
NewsMLニュース提供システム
受信側
79