JAXB 本身支援將Map 編組為如下結構:
<map> <entry> <key> KEY </key> <value> VALUE </value> </entry> <entry> <key> KEY2 </key> <value> VALUE2 </value> </entry> ... </map>
但是,在某些情況下,可能需要生成XML,其中key 成為元素名稱,value 成為其內容,如下所示:
<map> <key> VALUE </key> <key2> VALUE2 </key2> ... </map>
通常建議避免這種類型的XML 生成,因為它會在運行時引入對地圖內容的依賴。這可能會影響 XML 模式 (XSD) 中定義的介面契約。
相反,請考慮使用枚舉類型作為 Map 的鍵,以確保元素名稱在編譯時已知,從而允許 JAXB 產生模式限制 XML 中的元素。
將預設產生的結構簡化為某些內容例如:
<map> <item key="KEY" value="VALUE"/> <item key="KEY2" value="VALUE2"/> </map>
實作一個自訂MapAdapter,將Map 轉換為MapElements 數組。
以上是如何在 JAXB 中將映射編組為「值」格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!