Definicao de xmlns no JAXB

3 respostas
spranta

Pessoal, estou tentando utilizar o JAXB para parsear um objeto em xml, estou fazendo da seguinte maneira:

JAXBContext context = JAXBContext.newInstance(Cliente.class);
Marshaller marshaller = context.createMarshaller();
QName Cliente_QNAME = new QName("http://localhost:8080/ws/schemas/tipos_complexos.xsd", "Cliente");
JAXBElement<Cliente> element = new JAXBElement<Cliente>(Cliente_QNAME, Cliente.class, objetoCliente);
marshaller.marshal(element, System.out);

Pois bem, acontece que o xml está saindo assim:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Cliente xmlns:ns2="http://localhost:8080/ws/schemas/tipos_complexos.xsd">
<ns2:Nome>1</ns2:Nome>
</ns2:Cliente>

E eu queria que ele saisse assim, sem esse tal de ‘ns2’:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Cliente xmlns="http://localhost:8080/ws/schemas/tipos_complexos.xsd">
<Nome>1</Nome>
</Cliente>

Alguem sabe o porque de estar saindo a definicao do xsd de tipo complexo em xmlns:ns2 e não só como xmlns ?

3 Respostas

H

Estou com este mesmo problema, sempre gera com este ns2 na frente. Vc conseguiu descobrir ?

H

Olá

Tenho o mesmo problema… Vocês conseguiram descobrir ?

isaiasa

Eu tenho a solução para o problema de vocês:

Não é a melhor solução, mas resolve o problema que muita gente enfrenta com jaxb:

ns2 não é errado, porém quem vai parsear… as vezes pode não usar a forma correta para ler, ou então simplesmente rejeita, no caso um site map do google por exemplo rejeita-o, para tanto a solução descrita no email nao é a melhor possivel, ainda aguardo uma solução melhor e vou atraz disso hoje. Até lá… se tens pressa pode resolver de uma das 2 maneiras descritas no link acima, no meu blog.

Abraço

Criado 16 de julho de 2008
Ultima resposta 19 de fev. de 2009
Respostas 3
Participantes 3