Dùng JAXB tools để chuyển đổi tài liệu XML thành java và ngược lại
JAXB với 2 tools xjc và schemagen cho phép chúng ta chuyển đổi tài lệu từ xml sang java và ngược lại.
A>Cấu hình JAXB
Đầu tiên chúng ta pahi3 download Java Web Services Developer Pack 2.0. Sau đó cài đặt gói này. Giả sử chúng ta cài vào C:\Sun\jwsdp-2.0\.
Tạo các biến môi trường sau:
JWSDP_HOME có giá trị là thư mục cài đặt jwsdp, ở đây là C:\Sun\jwsdp-2.0
JAXB_HOME có giá trị là thư mục cài đặt JAXB, ở đây là %JWSDP_HOME%\jaxb
OK, bây giờ ta có thể chạy các tools được rồi.
B>Phát triến 1 ví dụ minh họa
1>chuyển từ xsd sang java
a. Tạo thư mục jaxbdemo
b. tạo file xsd với tên customer.xsd trong thư mục jaxbdemo có nội dung sau
| <?xml version=”1.0″?> <xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”> <xsd:element name=”customer1″ type=”Customer”/> <xsd:element name=”comment” type=”xsd:string”/> <xsd:complexType name=”Customer”> <xsd:sequence> <xsd:element name=”customerid” type=”xsd:string”/> <xsd:element name=”name” type=”xsd:string”/> <xsd:element name=”address” type=”xsd:string”/> <xsd:element name=”city” type=”xsd:string”/> <xsd:element name=”phone” type=”xsd:positiveInteger”/> </xsd:sequence> </xsd:complexType> </xsd:schema> |
c. Mở của sổ command, di chuyển thư mục hiện hành đến jaxbdemo
Gõ lệnh sau: xjc customers.xsd
ta sẽ có kết quả
c:\jaxbdemo\xjc ustomers.xsd
parsing a schema…
compiling a schema…
generated\Customer.java
generated\ObjectFactory.java
Xem trong thư mục ta sẽ thấy được các file được sinh ra.
2> Chuyển từ java sang xsd
a>Tạo file Sinhvien.java trong thư mục jaxbdemo với nội dung sau
|
public class Sinhvien { private String mssv; private String hoten; private String diachi; private String lop; private String email; public String getMssv() { return mssv; } public void setMssv(String mssv) { this.mssv = mssv; } public String getHoten() { return hoten; } public void setHoten(String hoten) { this.hoten = hoten; } public String getDiachi() { return diachi; } public void setDiachi(String diachi) { this.diachi = diachi; } public String getLop() { return lop; } public void setLop(String lop) { this.lop = lop; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Sinhvien(String mssv, String hoten, String diachi, String lop, String email) { super(); this.mssv = mssv; this.hoten = hoten; this.diachi = diachi; this.lop = lop; this.email = email; } public Sinhvien() { super(); } } |
b.Mở của sổ command, di chuyển thư mục hiện hành đến jaxbdemo
c. Gõ lệnh schemagen Sinhvien.java
Kết quả màn hình DOS như sau
Note: Writing schema1.xsd
ta có thể mở file schema1.xsd để xem kết quả như sau
| <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?> <xs:schema version=”1.0″ xmlns:xs=”http://www.w3.org/2001/XMLSchema”> <xs:complexType name=”sinhvien”> |
Bây giờ chúng ta có thể làm nhiều thứ từ các tools này.