Zwiftのカスタムワークアウトを作っていて、苦労したのでメモ。
Zwiftのカスタムワークアウトの.zwoファイルはxml形式なのでテキストエディタで編集できる。で、編集していてエラーがあると、PCだと無言でZwiftの一覧に表示しなくなるという仕打ちが待っている。Androidアプリは起動途中で終了してしまう。せめてエラーが発生しているとメッセージを出してほしいところ。
<workout_file> <author>doroyamada</author> <name>1 CW Z5(50%3min+60%2min+40%1min)*9 60min</name> <description>FTP50%付近で1時間</description> <sportType>bike</sportType> <tags> <tag name="Z5"/><tag name="50%"/> </tags> <workout> <SteadyState Duration="300" Power="0.40" pace="484"/> <SteadyState Duration="180" Power="0.50" pace="484"/> <SteadyState Duration="120" Power="0.60" pace="484"/> <SteadyState Duration="60" Power="0.4"/> <textevent timeoffset="55" message="Round 2"/> </SteadyState> </workout> </workout_file>
少しずつ追加していく、4つめの、子要素texteventを持つSteadyStateでエラーが起きることがわかった。
かなり悩んだけど、人様が作ったファイルと見比べて原因判明。<SteadyState Duration="60" Power="0.4">と、閉じカッコの前の/を取らなければならなかった。
<br />とかよく見かけるけど、どういう意味だろうかと改めて調べてみたら、対になるタグがない場合に/>とするんだとか。htmlだとブラウザが適当に処理してくれるけど、データファイルであるxmlだとそうはいかないということか。