我知道,使用JAXB,您可以generate Java files from an XSD,也可以是generate the XSD from annotated POJOs。每個的優點和缺點是什麼?總體來說比另一個好嗎?Java到XSD或XSD到Java
我們基本上想要將事件序列化爲XML格式的日誌。
我知道,使用JAXB,您可以generate Java files from an XSD,也可以是generate the XSD from annotated POJOs。每個的優點和缺點是什麼?總體來說比另一個好嗎?Java到XSD或XSD到Java
我們基本上想要將事件序列化爲XML格式的日誌。
最終它取決於要重點:
如果XML Schema是最重要的事情
那麼最好從XML模式開始並生成JAXB模型。有跡象表明,一個JAXB(JSR-222)實現只是不能生成XML模式的細節:
如果對象模型是最重要的事情
如果你將要使用的Java模型不僅僅是convertin更多g之間的對象和XML(即使用它與JPA進行持久化),那麼我會建議從Java對象開始。這會給你最大的控制。
這取決於您的要求和方案的啓動點。
考慮您的要求,請使用generate Java files from an XSD
只要你想定義輸出(XML)格式首先應當由Java的。支持,
由於XML的要點之一是爲便攜式數據 - 傳輸格式,無論平臺或語言如何,都可以使用,我會避免從任何特定的編程語言生成XSD,作爲經驗法則。如果你知道你只是在Java端點之間進行通信,這可能並不重要(但是你確定這將永遠是永遠?)。
用編程語言中立的方式定義接口/模式比其他方式更好。
有很多例外的這一總原則,特別是如果你使用現有的或遺留代碼整合...
如果你要設計兩個POJO和模式的機會,這是設計的問題 - 做你爲「完美」模式或「完美」java類設計。
在某些情況下,您沒有選擇餘地,在系統集成的情況下,您可能會從另一個系統獲得預定義的XSD,然後您需要適應XSD - > Class將是唯一的辦法。
我們使用JAXB將數據傳入REST Web服務和從REST Web服務傳輸數據。有時我們可能已經有了可用於生成XSD的bean/DTO。有時我們會從頭開始創建這些bean。我的猜測是我們的對象模型在這些情況下是最重要的,你同意嗎? XSD將只用於創建用於傳輸數據的對象。 – medloh