Classes de terceiros de serialização com XML simples (org.simpleframework.xml)

Eu decidi usarSerialização XML simples e foi preso com um problema básico. Estou tentando serializarjava.util.UUID instância de classe como campo final nesta classe pequena:

@Root
public class Identity {
    @Attribute
    private final UUID id;

    public Identity(@Attribute UUID id) {
        this.id = id;
    } 
}

Tutorial mostra como serializar objetos de terceiros registrando conversores como este:

Registry registry = new Registry();
registry.bind(UUID.class, UUIDConverter.class);
Strategy strategy = new RegistryStrategy(registry);
Serializer serializer = new Persister(strategy);

serializer.write( object, stream );

conversor apropriado para UUID é bastante simples:

public class UUIDConverter implements Converter<UUID> {
    @Override
    public UUID read(InputNode node) throws Exception {
       return new UUID.fromString(node.getValue());
    }
    @Override
    public void write(OutputNode node, UUID value) throws Exception {
       node.setValue(value.toString());
    }
}

Mas esse código simples simplesmente não funcionou para mim, durante objetos de serialização com campos UUID foram lançados exceçãoTransformação da classe java.util.UUID não suportada.

Eu tentei algo semelhante com o costumeMatcher (que não estava no tutorial) que funciona para mim:

Serializer serializer = new Persister(new MyMatcher());

serializer.write( object, stream );

eMatcher classe fica assim:

public static class MyMatcher implements Matcher {
    @Override
    @SuppressWarnings("unchecked")
    public Transform match(Class type) throws Exception {
        if (type.equals(UUID.class))
            return new UUIDTransform();
        return null;
    }
}

public class UUIDTransform implements Transform<UUID> {
    @Override
    public UUID read(String value) throws Exception {
        return UUID.fromString(value);
    }
    @Override
    public String write(UUID value) throws Exception {
        return value.toString();
    }
}

Questões:

O Matcher personalizado é sempre uma prática recomendada para o streaming de aulas de terceiros?Nesse caso, posso usar o conversor?Existem melhores tutoriais / exemplos para XML simples por aí?

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion