"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como empacotar um mapa para XML com chave como nome de elemento em JAXB?

Como empacotar um mapa para XML com chave como nome de elemento em JAXB?

Publicado em 2024-11-14
Navegar:656

How to Marshall a Map to XML with Key as Element Name in JAXB?

Marshall um mapa para XML com chave como nome do elemento

JAXB fornece uma maneira conveniente de mapear objetos para XML. No entanto, para um mapa, ele normalmente o empacota em uma estrutura com elementos aninhados contendo elementos e .

Em alguns casos, você pode querer empacotar o mapa para XML com o chaves como nomes de elementos e os valores como o conteúdo do elemento.

Endereçamento de nomes de atributos dinâmicos

A abordagem recomendada fornecida pelos desenvolvedores JAXB para lidar com empacotamento e desempacotamento personalizado envolve o uso de um XmlAdaptador. No entanto, implementar o adaptador para lidar com nomes de atributos dinâmicos pode ser um desafio.

Soluções Alternativas

Embora a geração de tal XML seja geralmente desencorajada devido ao seu impacto no contrato de interface, há existem algumas soluções possíveis:

1. Use um tipo enumerado para chaves:

Defina um tipo enumerado para as chaves do mapa. Isso garante que o XSD inclua uma lista de elementos conhecidos em tempo de compilação.

2. Simplifique a estrutura padrão:

Use um MapAdapter para converter o mapa em uma matriz de MapElements contendo atributos para chave e valor. Isso simplifica a estrutura XML para uma lista de elementos com atributos de chave e valor.

Conclusão

Embora não seja recomendado gerar XML com nomes de elementos dinâmicos, as alternativas fornecidas oferecem soluções para cenários específicos onde esse comportamento é desejado.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3