Design: 2 jcomboboxes, lista de caixa 2 depende da seleção da caixa 1, dados de XML

Eu estou sobrecarregado com a tentativa de projetar uma solução para este problema - é um subproduto da inexperiência.

Meu objetivo é ler um arquivo de entrada XML, armazenar as informações do XML e preencher duas caixas de combinação com dados do XML. O conteúdo da segunda caixa de combinação será alterado com base na seleção no primeiro.

Dada essa estrutura XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Category xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Node>
    <ID>Unique string</ID>
    <Name>Unique string</Name>
    <Code>Generic string<Code>
    <Kind>Generic string</Kind>
    <Frame>Generic string</Frame>
            ...
</Node>
    ...
</Category>

Primeira caixa de combinação: deve conter apenas os valores exclusivos encontrados na seção Tipo.

Segunda caixa de combinação: Contém TODAS as entradas de Nome de cada Nó cujo Tipo é igual ao Tipo selecionado na primeira caixa de combinação.

Em relação à fonte XML: ela é mantida e gerada externamente. Os valores na seção ID sempre serão exclusivos. Os valores na seção Nome sempre serão exclusivos. O esquema (supostamente) nunca mudará. Novos valores exclusivos podem aparecer na seção Tipo no futuro.

Minha solução proposta: Crie uma classe XMLNode para representar um nó da fonte XML. Os membros da classe XMLNode correspondem às tags em cada nó. Faça um loop por todos os nós e crie um XMLNode para cada um. While looping por nós: Adicione objetos XMLNode em um mapa de hash, com Keys = XMLNode.ID e vals = o XMLNode. Crie uma matriz de tipos exclusivos.

Preencha a caixa de combinação um do array de entradas Kind. Preencha a caixa de combinação dois dos dados de nome para cada um.

Esta é uma abordagem apropriada, ou eu negligenciei uma solução melhor / mais fácil / mais elegante? Se estou no caminho certo, há alguma falha óbvia na minha solução proposta?

questionAnswers(2)

yourAnswerToTheQuestion