Zwiftの.zwoに苦労しまくった話

 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だとそうはいかないということか。