• 検索結果がありません。

Property

ドキュメント内 新聞協会NewsMLレベル1.2解説書 (ページ 93-97)

5.6 NewsManagement

5.6.11 Property

Property 要素はContentItem、Topic、NewsComponent、NewsItemのいくつかのプロパティの値を 表すのに使われる。そのプロパティには形式名が付いていなければならず、複 雑なプロパティを扱うため の下位プロパティを含んでもよい。

Propertyは名称を持ち、単純な値または、さらに入り組んだプロパティのセットでなる複雑な値のどち らかである。Value属性はPropertyの値を表す文字列である。ValueRef属性はPropertyの値へのポインタ を与えている。これはTopicSetにあるTopicかもしれないし、何か他のデータの一部であるかもしれない。

もしValue属性とValueRef属性の両方が与えられたなら、ValueRefはPropertyの実際の値を表し、Value は文字列の表現か記憶を与えるだけのものである。AllowedSheme属性がもしあれば、propertyのValue 属性の内容に結びついたSchemeを表している。AllowedValues属性がある場合、それは一連のプロパテ ィの値を定めたcontrolled vocabularyへのポインタである。この場合http URLかNewsML URN、また は#文字の後に現在の文章中にある 要素のDuidが続くfragment identifierであろう。ポインタは外部の controlled vocabularyを示すResource要素か、それ自体がcontrolled vocabularyである TopicSet要素の どちらかを必ず参照しなければならない。

以下の例は、Characteristics要素配下にあるPropertyの形式名のためのdefault vocabularyがCharacteristicsであ ることを、Catalogが宣言しているもので、ボキャブラリは www.mydomain.com の vocabs というサブディレクト リの中で見つけることができる。Context属性の値は2つの // 文字を含むXPath 文法の形式で、Characteristics内 にあるPropertyの入れ子の度合いを任意に示すものである。Width(幅)Propertyは、Quantity(量)Property と Unit(単位)Propertyを含んでいる。3つの名前(Width、Quantity、Unit)は上記で宣言したcontrolled vocabulary に よ っ て す べ て 管 理 さ れ る 。 Quantity の 値 は 7.5 で 、 Unit の 値 は URN が urn:newsml:mydomain.com:20010101:Units:1 のリソース内にある要素である。このURN文字列の後ろに続く#cm は、cmという値であるDuid属性を持つ要素を結び付けるfragment identifierである。DuidはNewsML DTDでID属 性となるように宣言されており、これはどのようにfragment identifierがXML文書内で解析するかということであ る。この例では、URNがTopicSetを識別するだろう。また、fragment identifierは、“センチメートル(centimeter)”

単位であることを示すDescription下位要素を持つTopicへ行き着くだろう。例えば、Topicはまた、メートル単位の長 さのISO標準記述を指すHref属性を持つかもしれない。

<Catalog>

<Resource Duid="resource1">

<Urn>urn:newsml:mydomain.com:20010101:Characteristics:3</Urn>

<Url>www.mydomain.com/vocabs/characteristics.xml</Url>

<DefaultVocabularyFor Context="Characteristics//Property"/>

</Resource>

</Catalog>

...

<Characteristics>

<Property FormalName="Width">

<Property FormalName="Quantity" Value="7.5"/>

<Property FormalName="Unit" ValueRef="urn:newsml:mydomain.com:20010101:Units:1#cm"/>

</Property>

</Characteristics>

<!ELEMENT Property (Property*)>

<!ATTLIST Property %localid;

% f o r m a l n a m e ; % a s s i g n m e n t ;

Value CDATA #IMPLIED ValueRef CDATA #IMPLIED AllowedScheme CDATA #IMPLIED AllowedValues CDATA #IMPLIED >

[ツリー図]

   

[NSK解説]

  Property要素はNewsMLに規定されている要素では表現できない情報を記述する。基本的な使い方と

してはFormalName属性で種別を表し、Value属性にその値を記述する。AllowedScheme属性を使って、

Value属性の内容に結びつくSchemeを指定できる。AllowedScheme属性はNskNewsML レベル1.2か ら追加された属性で、他の属性と同様Propertyそのものが使用停止の個所は、下位の AllowedScheme も使用停止とする。

Property要素の中にProperty要素を入れ子構造で記述する場合は、親のProperty要素はFormalName 属性だけを記述する。その値は、子のPropertyに記述する。Value属性値は原則として自由形式である。

AllowedValues属性には、Value属性値の候補の入っているTopicSetファイルへのポインタを記述する。

(例)入れ子構造のない場合

<Property FormalName=”ISBN” Value=”ISBN-87966-870-2” />

<Property FormalName=”PageCount” Value=”462” />

(例)  入れ子構造がある場合

<Property FormalName="NskOriginatedArea">

<Property FormalName="NskCountry" Value="USA"/>

<Property FormalName="NskLocation" Value="ハワイ島ホノルル沖"/>

</Property>

[NewsML 仕様の変更点:NewsML v1.1]

AllowedScheme属性が追加された。

 

[NskNewsML:1記述形式]

Metadata/Property要素・・・  ○  Characteristics/Property要素  △  その他のPropertyは・・・・・・  ×   

 

* Property

×

* Property

×

87

コラム:独自Metadataの追加について

以下、Propertyを使ったメタデータの拡張方法について記述する。

Property要素は入れ子にすることで階層表現が可能であるが、構造を定義できないため、複雑な構造に することは避けるべきである。

Property要素はFormalName属性で種別、Value属性でその値を記述する。

Value属性のとり得る値は自由記述形式、または Catalog/Resourceでボキャブラリを宣言することに よりcontrolled vocabularyとして使用できる。

階層構造をとった場合は最下層のProperty要素のみValueをもつこととする。

1階層の場合も含めて、最下層のProperty要素にValueがない場合はエラーとする。

例)

・1階層並列表記の場合

<Property FormalName=”ImageWidth” Value=”1000”/>

<Property FormalName=”ImageHigh” Value=”1500”/>

・  2階層表記の場合

<Property FormalName="NskOriginatedArea">

<Property FormalName="NskCountry" Value="USA"/>

<Property FormalName="NskLocation" Value="ハワイ島ホノルル沖"/>

</Property>

各 社 独 自 にMetadataを 使 用 す る 場 合 は 、 独 自 のMetadataTypeの ボ キ ャ ブ ラ リ を 用 意 で きる 。 MetadataType要素 のFormalName属性の値により拡張されたメタデータのタイプを記述する。NSK、

IPTCのボキャブラリを拡張することによりNSK、IPTCで定義するFormalName(メタデータタイプ)

を同時に使用することもできる。

Propertyのボキャブラリについての規定は無い。IPTC、NSK、その他独自のものが使用できる。

例)独自Metadataで写真の値段を入れた場合

1.Valueが自由記述形式の場合

<Metadata>

<Catalog>

<Resource>

<!—MetadataType のボキャブラリを宣言(MyMetadataType中では、MediaPriceが定義され ている) -->

<Urn>urn:newsml:Mycompany.or.jp:20010602:MyMetadataType:1</Urn>

<DefaultVocabularyFor Context="MetadataType/@FormalName"/>

</Resource>

<Resource>

<!—Property のボキャブラリを宣言(MyMediaPrice中では、PhotoPriceが定義されている)

-->

<Urn>urn:newsml:Mycompany.or.jp:20010602:MyMediaPrice:1</Urn>

<DefaultVocabularyFor Context="Property/@FormalName"/>

</Resource>

</Catalog>

<MetadataType FormalName="MediaPrice"/>

<Property FormalName="PhotoPrice" Value="5000"/>

</Metadata>

2.Valueにcontrolled vocaburalyの値を使用する場合。

<Metadata>

<Catalog>

<Resource>

<!—MetadataType のボキャブラリを宣言(MyMetadataType中では、MediaPriceが定義され ている) -->

<Urn>urn:newsml:Mycompany.or.jp:20010602:MyMetadataType:1</Urn>

<DefaultVocabularyFor Context="MetadataType/@FormalName"/>

</Resource>

<Resource>

<!-- Property のボキャブラリを宣言(MyMediaPrice中でPhotoPriceが定義されている) -->

<Urn>urn:newsml:Mycompany.or.jp:20010602:MyMediaPrice:1</Urn>

<DefaultVocabularyFor Context="Property/@FormalName"/>

</Resource>

<Resource>

<!-- Value のボキャブラリを宣言(MyPhotoPrice中でPrice1が定義されている) -->

<Urn>urn:newsml:Mycompany.or.jp:20010602:MyPhotoPrice:1</Urn>

<DefaultVocabularyFor Context="Property[@FormalName='PhotoPrice']/@Value"/>

</Resource>

</Catalog>

<MetadataType FormalName="MediaPrice"/>

<Property FormalName="PhotoPrice" Value="Price1"/>

</Metadata>

89

ドキュメント内 新聞協会NewsMLレベル1.2解説書 (ページ 93-97)