簡単な入れ子構造を扱う #16
SchoolBuilderはスキーマschool.rncにinvalidなXMLデータの一部も受け入れる。
一つは、要素内にテキストが含まれているようなもの。
これは単にそのテキストを無視する。
もう一つは、school、grade、group要素が子要素を持たないもの。
schoolの場合は子データを持たないあまり意味のないデータが構築されるだけだが、
gradeやgroupの場合はその名前だけ先にリストに記載しておき、
後からその子データを加えることができる。
...snip <group name="さるすべり"/> <group name="しゃくなげ"> <student name="Nate" height="140"/> </group> <group name="さるすべり"> <student name="Ophelia" height="151"/> </group> ...snip
のようになっていると下位要素は無いが百日紅が石楠花よりリストでは先になる。
ここではXMLをデータをプログラムに提示するための手段として使っているので、
あまりうるさいことは言う必要がないのだった。