<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 7108:2004</anchor></li></ul></refs></section><section><h1>TM_Duration</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 
<dfn><code>TM_Duration</code></dfn>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">時間次元<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">時間 (ISO 19108)</title></anchor>上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">長さ</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">距離</anchor>を記述する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ型</anchor>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.2.3.7</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <code>TM_PeriodDuration</code> と
<code>TM_IntervalLength</code>
の2種類あります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <dfn><code>TM_PeriodDuration</code></dfn>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO 8601の時間長形式</anchor>から派生した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">時間長形式</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ型</anchor>です。
次のような文字列を連結したものとされています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.2.3.7</src></p><ol><li><code>P</code></li><li><var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正整数</anchor></var> <code>Y</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">年</anchor>数)</li><li><var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正整数</anchor></var> <code>M</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">月</anchor>数)</li><li><var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正整数</anchor></var> <code>D</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日</anchor>数)</li><li><code>T</code></li><li><var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正整数</anchor></var> <code>H</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">時</anchor>数)</li><li><var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正整数</anchor></var> <code>M</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">分</anchor>数)</li><li><var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正整数</anchor></var> <code>S</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秒</anchor>数)</li></ol><p>ただしここで、</p><ul><li>年から秒までの各項は省略可能ですが、最低1つは必要です。</li><li><code>T</code> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">時</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">分</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秒</anchor>を指定するとき必要です。<ul><li>そうでないとき指定してはならないことは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 7108</anchor> に明記されていませんが、
参照されている <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO 8601</anchor> では規定されています。</li></ul></li><li>年から秒までのうち最後に指定したもののみ、<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正整数</anchor></var>部に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10進小数</anchor>値を指定できます。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO 8601の時間長形式</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グレゴリオ暦</anchor>と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTC</anchor> について規定されたものですが、
<code>TM_PeriodDuration</code>
では年月日のある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暦<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">暦 (ISO 19108)</title></anchor>や時分秒のある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">時計<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">時計 (ISO 19108)</title></anchor>を参照していれば使えます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.2.3.7</src></p></section><section><h1>TM_Separation</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 
<dfn><code>TM_Separation</code></dfn>
は、
<code>TM_GeometricPrimitive</code>
が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">«use»</title></anchor>する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.2.3.6</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 
<dfn><code>length</code></dfn> 演算は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">持続時間</anchor>を <code>TM_Duration</code> として返すもので、
次のようにしなければなりません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.2.3.6 a)</src></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <code>TM_Instant</code> では、 <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> を返します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <code>TM_Period</code> では、 <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">begin</f> と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">end</f> の各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">時間位置</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">距離</anchor>を返します。<ul><li>ただし、 <code>TM_TemproalPosition</code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">不確定</anchor>の場合、または
<code>TM_TemporalPosition</code> が <code>TM_OrdinalReferenceSystem</code> を参照する場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">投げ</anchor>ます。</li></ul></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
<dfn><code>distance</code></dfn>
演算は、
<code>TM_GeometricPrimitive</code>
を引数とし、
そちらまでの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">距離</anchor>を返すもので、
次のようにしなければなりません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.2.3.6 b)</src></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 両者の最も近い <code>TM_TemporalPosition</code> 間の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">距離</anchor>を返します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> ただし一方が他方に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">連結</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">重複</anchor>、または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">包含</anchor>されている場合、<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> を返します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 2つの <code>TM_TemporalPosition</code> のいずれかが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">不確定</anchor>な場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">投げ</anchor>ます。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 2つの <code>TM_TemporalPosition</code> の <code>TM_ReferenceSystem</code> が同じでない場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">投げ</anchor>ます。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> いずれかの <code>TM_TemporalPosition</code> のいずれかが
<code>TM_OrdinalReferenceSystem</code> を参照する場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">投げ</anchor>ます。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 連結、重複、包含とは <code>TM_RelativePosition</code> の相当するものを指していると思われますが、
明記されていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 
<code>TM_OrdinalEra</code> も利用可能となるとされています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.3.4</src></p></section></body></html>