Eclipse 3.5 Galileo で SDO を動かす Getting Started。
クラスパス上のXMLスキーマを読み込み、それに従って XML を解釈し、文字列 "Hello" と"World"を取り出して合成し、コンソールに"Hello, World!"を出力する。
■ プロジェクトの作成
■ hello world 作成
- src/main/resources に greeting.xsd を作成する。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://sample/sdo-test1"
targetNamespace="http://sample/sdo-test1">
<xsd:element name="greeting" type="GreetingType"/>
<xsd:complexType name="GreetingType">
<xsd:sequence>
<xsd:element name="word" type="xsd:string"/>
<xsd:element name="to" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
- App クラスを書き換える
public static String xmlDoc =
"<?xml version=\"1.0\" encoding=\"ASCII\"?>\n"
+ "<greeting xmlns=\"http://sample/sdo-test1\">\n"
+ " <word>Hello</word>\n"
+ " <to>World</to>\n"
+ "</greeting>\n";
public static void main(String[] args) throws Exception {
HelperContext scope = SDOUtil.createHelperContext();
XSDHelper xsdHelper = scope.getXSDHelper();
URL url = App.class.getResource("/greeting.xsd");
InputStream is = url.openStream();
xsdHelper.define(is, url.toString());
is.close();
XMLDocument doc = scope.getXMLHelper().load(xmlDoc);
DataObject greeting = doc.getRootObject();
System.out.printf("%s, %s!%n",
greeting.get("word"), greeting.get("to"));
}
■ 雑感
わりとすんなり動いた。参考にしたのは、tuscany-sdo-1.1.1 の sampleで、これは、コメンタリを出力しながら複数のサンプルが連続して動作するような、ちょっと趣向を凝らしたフレームワーク的なものだけど、ただ、コードの断片だけ参考にしたい時にはちょっと回りくどいかもしれない。
0 件のコメント:
コメントを投稿