Relaxerメモ
スキーマの作成
1から作成するのはめんどいので、既存のXMLからスキーマを作成しちゃる。
元のXML(いつもと同じ)
以下のコマンドで、スキーマファイルykhr-kokko.rngが作成される。
# 基となるXMLは複数指定してもいいっぽい。
java -jar trang.jar ykhr-kokko2.xml ykhr-kokko.rng
作成されたもの。
<?xml version="1.0" encoding="UTF-8"?>
Javaファイルの作成
Eclipseでの設定方法などは@ITを参照。
作成したスキーマを適用するだけで、Javaファイルが作成される。
作成されたのは、以下のクラスたち。
RStack.java
StartRoot.java
StartRootPerson.java
UJAXP.java
URelaxer.java
Javaから実行
public static void main(String[] args) {
try {
StartRoot root = new StartRoot(new File("ykhr-kokko2.xml"));
StartRootPerson[] persons = root.getStartRootPerson();
for (StartRootPerson person : persons) {
String name = person.getName();
String age = person.getAgeAsString();
String hobby = person.getHobby();
System.out.println(name + "-" + age + "-" + hobby);
}
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
実行結果。
ykhr-25-Java
kokko-22-Game
なんてこともなく終了。
XMLスキーマの煩わしさにあきらめかけたこともあったけど、
Relaxerだったら全然いいかも。
バインディングも素敵。