Dúvida em mapeamento do JAXB

Bom dia pessoal,
Estou com um problema e não sei como solucionar ou se tem algum modo de ser feito.
Estou realizando a exportação de arquivos em XML utilizando o JAXB, já implemente grande parte da minha aplicação mas estou me debatendo com algumas peculiaridades e elas são as seguinte:

tenho uma classe A, que tem alguns atributos nativo do JAVA (String, Integer, Date) e ainda possui um atributo Classe B.

Classe A

[code]
public class A {

private String funcao;
    private String horaTrabalho;
    private B pessoa;

@XmlAttribute(name = "funcao")
public String getFuncao() {
	return funcao;
}
    @XmlAttribute(name = "horaTrabalho")
public String getHoraTrabalho() {
	return horaTrabalho;
}
public String getPessoa() {
	return pessoa;
}
//set's 

}[/code]

Classe B

[code]public class B {

private String nome;
    private Integer idade;
private String nomeMae;
    private String nomePai;
    
    @XmlAttribute(name = "nome")
public String getNome() {
	return nome;
}
    @XmlAttribute(name = "idade")
public Integer getIdade() {
	return idade;
}
    @XmlAttribute(name = "nomePai")
public String getNomePai() {
	return nomePai;
}
    @XmlAttribute(name = "nomeMae")
public String getNomeMae() {
	return nomeMae;
}

//set's 

}[/code]

Meu arquivo XML gerado fica do seguinte modo:

... <a funcao="abc" horaTrablho="12"> <b nome="abcd" idade="23" nomeMae="mae abcd" nomePai="pai abcd"/> </a> ...

A Classe B vira um elemento da Classe A.

Gostaria de saber como devo fazer o mapeamento para conseguir que a Classe A absorvesse os dados da Classe B e os tornassem atributos e não elemento. (estender a classe seria uma “gambiarra” mas funcionaria, porem é possível estender apenas 1 classe pai e em alguns casos preciso de 2 ou 3 classe)

Bem o resultado que eu desejo é:

... <a funcao="abc" horaTrablho="12" nome="abcd" idade="23" nomeMae="mae abcd" nomePai="pai abcd" /a> ...

Espero que consigam entender a minha dúvida e que possam me ajudar.
Grato

A única forma que consigo imaginar seria cria métodos acessores get que retornariam os valores do atributo B e anotar esses métodos com @XmlAttribute - creio que nesse caso não seja gambiarra pois B é um atributo de A e esta pode muito bem decidir qual forma retornar os seus atributos.

Seria interessante desse modo mesmo, já estava desistindo e prestes a colocar todos os atributos em todas as classes, hehe. Vou criar os métodos get’s. Vlw.

Feedback:

A solução acima apresentada pelo colega não solucionou, irei colocar os atributos primitivos que preciso na minha classe enquanto não encontrar uma solução cabível.

Sinceramente, eu não sei qual é o problema, por exemplo, de se criar uma outra classe que represente o seu modelo (na qual os atributos de A e de B estão no mesmo nível)…

Creio que essa seja a função de um objeto, criar uma classe para que outras possam utiliza-las. No meu exemplo foi algo simples, mas a minha necessidade é algo diferente. Tenho a necessidade de utilizar a Classe B em enumeras outras classes, e pretendia deixar meu código seco, mas não vejo uma maneira.

Confesso que não conheço todo o poder das anotações que o JAXB oferece, então, veja se há algo aqui que te ajude:

http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/annotation/package-summary.html

Vc quer que fique assim?

<classsA nomePai="Nome pai" nomeMae="Nome mae" nome="Nome 1" idade="10" horaTrabalho="2 horas" funcao="funcao 1"/>

Faz o seguinte: mantem os metodos acessores em A e tira o método getPessoa .

ou, crie métodos em A que chame atributos de B e anote com XMLAttribute…

Vou fazer esses testes aqui e volto para dar um feedback. Grato

Feedback:

Nenhuma das alternativas deu certo, então vou ficar com essa coisa feia ai embaixo citada (hehe):

[quote=LaercioPontin]Feedback:

A solução acima apresentada pelo colega não solucionou, irei colocar os atributos primitivos que preciso na minha classe enquanto não encontrar uma solução cabível.[/quote]