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中文网其他相关文章!