Download presentation
Presentation is loading. Please wait.
Published byVerawati Susanti Sanjaya Modified 約 5 年前
1
http://www.wakhok.ac.jp/~tatsuo/ws2/ 2006年10月18日 植田龍男
Webサービス II (第4回) 2006年10月18日 植田龍男
2
JAXB JAXB(Java architecture for XML Binding) Java と XML とのマッピングを提供
新しい Webサービスを支える基礎技術 アノテーションをフルに活用
3
Java と XML(1) Java のクラスとインスタンス public class Name { String first;
String last; } Name name = new Name(); name.first=“Tatsuo”; name.last=“Ueda”;
4
Java と XML(2) XMLのドキュメント <nama> <first>Tatsuo</fist>
<last>Ueda</last> </name> 要素<name> -- インスタンス name 要素<first>,<last> -- フィールドに対応
5
XML Schema の例(1) <xsd:schema xmlns:xsd
=" <xsd:element name="name" type="nameType"/> <xsd:complexType name="nameType"> <xsd:sequence> <xsd:element name="first" type="xsd:string"/> <xsd:element name="last" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
6
Javaクラスからスキーマを生成 ツール schemagen schemagen persen/*.java サンプルでは
person.Person.java , person.Name.java
7
アノテーションの例(要素の性質) @XmlElement アノテーション 個々の要素の性質(デフォルト値など)
@XmlElement( defaultValue=“0” ) public int x;
8
アノテーションの例(属性に変換) @XmlAttribute アノテーション public class Point {
public int x; pulbic int y; }
9
生成される XML Schema <xs:complexType name="point">
<xs:sequence/> <xs:attribute name="x" type="xs:int" use="required"/> <xs:attribute name="y" type="xs:int" use="required"/> </xs:complexType>
10
対応するXML文書の表現 <point> <x>0</x> <y>1</y>
ではなく、 <point x=“0” y=“1” />
11
補足: ant ツールの使用 Apache プロジェクトが提供するオープンソース http://ant.apache.org/
コマンドラインで操作できるビルドツール 開発の手順、環境を xml で記述 デフォルトのビルドファイル build.xml ant で実行 必要に応じて「ターゲット」を指定
12
build.xml の例(クラスパス) <property name="jwsdp.home" value="/Sun/jwsdp-2.0" /> <path id="classpath"> <pathelement path="." /> <fileset dir="${jwsdp.home}" includes="jaxb/lib/*.jar" /> </path>
13
build.xml の例(コンパイル) <target name="compile">
<echo message="Compiling the java source files..." /> <javac destdir="." debug="on"> <src path="." /> <classpath refid="classpath" /> </javac> </target>
14
build.xml の例(実行) <target name="run" depends="compile">
<echo message="Running the sample application..." /> <java classname="Java2SchemaTest"> <classpath refid="classpath" /> </java> </target>
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.