JavaEE 7をやってみよう。 JAX-RS その5
その4の続き。
Eclipseのウィザードに「JAXBプロジェクト」、「JAXBクラスからスキーマ」といったものがあるので、
今回のxsdファイル作りはこれでやってみることにする。
- 1. プロジェクト作成
- ファイルメニューから新規を選び、ウィザードから「JAXBプロジェクト」を選ぶ。
- 2. 詳細設定
- ランタイムはWildflyを使っているが、互換を考えて標準になりそうなJavaを選んだ。バージョンについては環境に合わせて7とした。
固有のランタイムも選べるので、状況に合わせて使うと良いかもしれない。 - 3. ソースのコピー
- プロジェクトができたら、前回作ったWarShipクラスとCatalogクラスをプロジェクトにコピーする。
- 4. スキーマ生成
- 新規のウィザードから「JAXBクラスからスキーマ」を選ぶ。
スキーマファイルの名前と出力先を選ぶ。
プロジェクトの中から出力対象のクラスを選択して完了。
ブラウザが勝手に開いて、Page Not Foundになるけど気にしないで閉じる。
指定位置にはちゃんとファイルが出力されている。
できたスキーマはこんなだった。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="result" type="catalog"/> <xs:complexType name="catalog"> <xs:sequence> <xs:element name="shipList" type="warShip" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="warShip"> <xs:sequence> <xs:element name="type" type="xs:string" minOccurs="0"/> <xs:element name="name" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema>
これを見てもなんとなくわかる通り、自分が想定した作りにはなってない。
どう見てもshipListが繰り返される形だ。
これをshipListタグの中にwarShipタグが内包されるようなXMLの形式になるように
書き換えようと思う。
といったところで、次回へ続く。