Unmarshalで2つのノードが!?

"読み込みは、Ummarshaller#unmarshal を使用します。大体コードが想像できますよね!?"
なんて書いたんですが、実際やってみると、少し問題が。。
前述のXMLスキーマ形式の次のようなデータ・ファイル

 <?xml version = '1.0' encoding = 'UTF-8'?>
 <bookData xmlns="http://jkidd.com/book">
   <book title="JAX-Bプログラミング" price="12000"/>
   <book title="JAX-Bプログラミング応用編" price="25000"/>
 </bookData>

に対して、以下のコードで読み込みしたら、

 //読み込み
 Unmarshaller unmarshaller = context.createUnmarshaller();
 Object root = unmarshaller.unmarshal( file );
 if (root instanceof BookData) 
 {
   List bookList = ((BookData)root).getBook();
   for (int i = 0; i < bookList.size(); i++)
   {
     BookDataType.Book book = (BookDataType.Book) bookList.get(i);
     System.out.println( book.getTitle() + ": " + book.getPrice() + "円" );
   }
 }

結果は次のとおりでした。


JAX-Bプログラミング: 12000円
JAX-Bプログラミング: 12000円
JAX-Bプログラミング応用編: 25000円
JAX-Bプログラミング応用編: 25000円
どうも、Unmarshalの際に、Attribute単位でノードができるようで、そのため、bookデータが2つずつ構成されるようです。うーん、これってどうすると良いのでしょう?