2017年3月までに、NetflixはTTMLスキーマ検査機能を追加実装します。

今回更新されるTTML構文解析ツールはソースの受け入れ検査を行う際にTTML標準スキーマを使用します。多くのパートナーから納品されたTTMLファイルを調査した結果、以下のエラーが最も多く確認されました。社内でこれらのエラーについて確認していただき、新しい検査機能が追加されるまでにTTMLファイルが正しい状態であることを確認してください。

xml:lang が定義されていません。このプロパティは必ず定義されていなければならず、定義される場所はトップレベルのttエレメント内になります。xml:lang は空の文字列(“”)になることもあるかもしれませんが、可能な限りファイルのコンテンツと一致した有効な言語コードが入るようにしてください。

xml:lang が正しくフォーマットされていません。例えば、言語コードに pt_BR と入力されていた場合、アンダースコアはRFC 4646: Tags for Identifying Languagesにおいて許容されていないため、検査でエラーとなります。正しい言語コードは代わりにダッシュを使用した pt-BRです。

id 対 xml:id 
id は以前のバージョンのTTML仕様では許容されていましたが、承認されたTTML仕様 v1より前から存在します。idは単純にxml:idと置き換えてください。

xml:id が正しくフォーマットされていません。値はアルファベットと数字を使用し、最初の1文字は数値を使わないでください。

同じ xml:id 値が複数回使用されています。この属性はドキュメント内に唯一のものでなければならず、スタイルリファレンスを正しく逆参照している必要があります。 

無効な属性があります。スキーマ検査では全ての定義された属性がTTML仕様に沿って有効であることを確認します。ソース内にTTML以外の属性が多く見受けられました (例: ccol, ccrow等)。TTML仕様で定義されていない属性は削除してください。

TTMLスキーマ整合性はSkynav TTLツールを使うことで確認することができます:
http://www.skynav.com:8080/ttv/verify


TTMLの例:

<?xml version="1.0" encoding="utf-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:ttp="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling" xmlns:ttm="http://www.w3.org/ns/ttml#metadata" xmlns:xml="http://www.w3.org/XML/1998/namespace" ttp:timeBase="media" ttp:frameRate="24" xml:lang="en">
    <head>
        <metadata>
            <ttm:title>Sample TTML</ttm:title>
        </metadata>
        <styling>
            <style xml:id="s1" tts:textAlign="center" tts:fontFamily="Arial" tts:fontSize="100%"/>
        </styling>
        <layout>
            <region xml:id="bottom" tts:displayAlign="after" tts:extent="80% 40%" tts:origin="10% 50%"/>
            <region xml:id="top" tts:displayAlign="before" tts:extent="80% 40%" tts:origin="10% 10%"/>
        </layout>
    </head>
    <body region="bottom" style="s1">
        <div>
            <p xml:id="subtitle1" begin="00:00:01.375" end="00:00:05.750" style="s1" region="top" >TOP SAMPLE TEXT</p>
            <p xml:id="subtitle2" begin="00:00:05.916" end="00:00:10.216" style="s1" >BOTTOM SAMPLE TEXT</p>
            <p xml:id="subtitle3" begin="00:00:10.418" end="00:00:15.083" style="s1" region="top" >Top Hello</p>
            <p xml:id="subtitle4" begin="00:00:15.391" end="00:00:20.558" style="s1" >Bottom Hello</p>
            <p xml:id="subtitle5" begin="00:00:20.750" end="00:00:25.041" style="s1" >He had a great story.</p>
            <p xml:id="subtitle6" begin="00:00:25.875" end="00:00:30.166" style="s1" >- Did he tell you what it was about?<br/>- He did.</p>
            <p xml:id="subtitle7" begin="00:00:30.416" end="00:00:35.558" style="s1" >In 1992, a shipping container<br/>fell overboard</p>
            <p xml:id="subtitle8" begin="00:00:35.858" end="00:00:40.091" style="s1" >on its way from China</p>
            <p xml:id="subtitle9" begin="00:00:40.341" end="00:00:45.133" style="s1" >to the United States,<br/>releasing 29,000 rubber ducks</p>
            <p xml:id="subtitle10" begin="00:00:45.325" end="00:00:50.041" style="s1" >into the Pacific Ocean.</p>
        </div>
    </body>
</tt>

この記事は役に立ちましたか?
48人中28人がこの記事が役に立ったと言っています