<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><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> <dfn>LTSV</dfn> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ログファイル</anchor>などで用いられる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ形式</anchor>です。</p><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> <cite>Labeled Tab-separated Values (LTSV)</cite>
(<time>2013-02-07 15:03:21 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://ltsv.org/">http://ltsv.org/</anchor-external></li></ul></refs></section><section><h1>MIME型</h1><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>は不明です。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TSV</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/tab-separated-values</anchor></code>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>で構成されると定義されていますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LTSV</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>ですから、
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/tab-separated-values</anchor></code> を使うのは必ずしも正しくありません。</p></section><section><h1>歴史</h1><p><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>のデータ形式を一般化し、
名前を与えたものです。</p><p><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> <cite xml:lang="en">GitHub - stanaka/ltsv</cite>, <time>2023-04-17T09:46:44.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/stanaka/ltsv">https://github.com/stanaka/ltsv</anchor-external></p></section><section><h1>メモ</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> <cite>LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー</cite>
( (<time>2013-02-10 13:34:37 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://d.hatena.ne.jp/naoya/20130209/1360381374">http://d.hatena.ne.jp/naoya/20130209/1360381374</anchor-external></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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LTSV</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> 構文には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x00</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NULL</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>するようになっています。</p><p><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> その趣旨からすると一つの行に含まれるラベルはすべて互いに異なるものであるべきでしょうが、
構文上は敢えてそのような制約は設けていません。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> ではそのような制約は記述できないというのもありますが。)
実用上 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LTSV</anchor> は単独で用いるのではなく、応用分野ごとに何らかのラベル集合を定義する必要がありますから、
衝突するラベルが存在するときの解釈や処理方法は、応用次第で定めるべきものです。</p><p><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LTSV</anchor> は構文上、ラベルに「:」を含められない、ラベルや値にタブや改行や NULL を含められないといった制約があります。
それらを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エスケープ</anchor>する方法も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LTSV</anchor> としては敢えて用意されていません。
これも応用分野ごとに既存の慣習等に基づき定めるべきものです。</p><p><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> <cite xml:lang="en">ltsv - Fluentd</cite>, <time>2023-04-17T09:50:40.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.fluentd.org/parser/ltsv">https://docs.fluentd.org/parser/ltsv</anchor-external></p></section></body></html>