[英]Is there a standard XML schema for Java objects/classes?
是否有可用的標准XML模式來描述Java對象的一般結構和內容? 我搜索了這個無濟於事。
我對XML一般都是相對較新的,特別是各種基於Java的XML技術(主要是JaxB),如果我忽略了某些東西,請原諒我。
簡單的答案是沒有這樣的標准架構。
當您使用類似JAXB的序列化時,您實際上為綁定的每個類/類網絡都有不同的XML架構。
還有幾點意見:
可以編寫一個能夠表示任何類型Java對象的XML模式。 你需要一個“對象”元素,它有一個叫做類名的屬性,叫做“field”的子元素等等。 但由此產生的XML表示將占用更多空間,並且難以閱讀和使用。
在JAXB等中,(顯然)是類網絡和XML結構之間的系統關系,但它不能表示為XML模式。 相反,它是一個映射,從概念意義上“從類”生成一個模式。 (實際上,它類似於XMI中發生的事情,其中元模型映射到XML模式。)
參照完整性超出了XML模式中可表達的范圍,但這並不是沒有通用模式的原因。 即使您忽略引用完整性並將問題減少為“樹形”,您仍然無法為JAXB,XMI和類似映射生成的XML類型生成有用的公共模式。
它不是官方的Oracle / Sun標准,而是第三方工具JSX,將java對象序列化為xml,並具有其格式的XML Schema規范 。
示例XML顯示了它如何記錄對象的內部細節,包括字段類型和繼承的類。
即使您自己不使用此模式,它也會為您提供一個格式要解決的問題的起點,以便完全表示對象狀態。
XMLSchema文件描述符合此XMLSchema文件中存儲的元素定義的XML文檔中可能和不可能的內容。
XMLSchema本身與Java無關:XMLSchema文件僅用於檢查符合XMLSchema文件的XML文件的有效性。
Java人員使用XMLSchema文件生成Java源代碼,該源代碼能夠從符合XMLSchema(xjc工具)的XML文件接收數據。
您還可以從一組Java源文件生成XMLSchema文件(使用schemagen工具)。
如果有以下元素,則可以使用JAXB將Java對象編組/解組為XML文件:
假設可以構造一種允許JAX-B或其他序列化庫生成的所有可能XML文件的元模式。 但是,大多數人都不會發現這樣的模式有用,因為它允許如此廣泛的XML文檔基本上沒有用。 相反,人們要么從模式開始並生成Java類,要么從特定的java類圖開始,並生成反映(哈哈)其中特定數據的模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.