JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java & XML、Web Service  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:JAXB 簡介 [Re:iampoya]
saijone

Web Services

版主

發文: 470
積分: 24
於 2003-07-27 05:42 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
在早期JAXB尚未支援Schema時, 我們是用 Castor, 基本上Castor Project
中有一個功能跟WSDP的JAXB-RI功能一樣, 你給它一份 Schema 它便幫你產
生 Java Class(es), 或是你給它一個 Java Class 它便幫你產生 Schema. 不管是
JAXB或是 Castor, 他們的核心觀念都一樣:
Schema或 DTD 對應到 Java Class, 而依據 Schema/DTD 寫出的 XML 對應到
Java Oject. (The XML is an instance of the schema/DTD, and the
corresponding Java Object is an instance of corresponding schema/DTD)

這技術應用在處裡 configuration file 或 deployment descriptor 上非常方便.
你先為你要的 configuration file 或 deployment descriptor 寫好 schema,
JAXB 或 Castor 便會幫你產生 Java codes. 你不用在那邊走DOM tree 或
Handle SAX Event.

然而由於這樣的技術太重要, 尤其是在 WebServices 中處裡 XML 格式的
SOAP message 時也需要將之 de-serialize 成 Java Object 或將傳回值 serialize
回 SOAP(XML), 所以在 JAX-RPC(Java API for XML-based RPC) 中除了定義
標準的 Java to SOAP/XML type mapping (例如 int 對應到 xsd:int) 外, 也有
一個尚未被納入標準的 Serialization framework.基本上這 framework 解決了
一個不算單純的問題:
如果一個 array 中有兩個 reference 指到同一物件如何做Serialization?
1
2
3
4
5
6
    String[] array = new String[3];
    String a = "a";
    String b = "b";
    array[0] = a;
    array[1] = b;
    array[2] = a;

在 SOAP Encoding, 可以用href來表達這樣的情形. WSDP中的 JAXRPC-RI也
有implement 這樣的觀念

另外在JSR109 Enterprise Web Services 中, User可以利用一個
deployment descriptor (jaxrpc mapping file) 來定義 Java variable class 對
schema element 的 mapping(name之間的對應).

關於.NET嗎就更Cool了, 在 code 上用些 metadata annotation 就成了:
1
2
3
4
5
6
7
8
public class Group {                   
    [SoapAttribute(Namespace = "http://foo.com")]
    public string GroupName; 
 
    [SoapElement(DataType = "nonNegativeInteger",
           ElementName = "PosInt")] 
    public string PostitiveInt; 
} 


這樣的 metadata annotation 未來將會在Java中出現(好像是 Tiger/1.5 中
就會有): http://www.jcp.org/en/jsr/detail?id=175

http://developer.java.sun.com/developer/technicalArticles/xml/jaxb/
http://jaxb.dev.java.net/


saijone edited on 2003-07-27 05:47
reply to postreply to post
You don't need a reason to help people
話題樹型展開
人氣 標題 作者 字數 發文時間
32086 [精華] JAXB 簡介 iampoya 3299 2003-07-27 00:28
27141 Re:JAXB 簡介 ray_linn 51 2003-07-27 01:43
28500 Re:JAXB 簡介 saijone 1960 2003-07-27 05:42
25863 Re:JAXB 簡介 saintk 108 2004-09-05 22:50
25922 Re:JAXB 簡介 leonyanj 214 2004-09-07 22:14
25040 Re:JAXB 簡介 StrUtsOne 272 2005-01-08 13:41
25134 Re:JAXB 簡介 iampoya 28 2005-01-09 10:45
23947 Re:JAXB 簡介 stanley 236 2005-11-17 10:37
7345 Re:JAXB 簡介 IORI71721A 86 2011-02-17 12:23
» JWorld@TW »  Java & XML、Web Service

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8