1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

JAXB Marshaller esquece um elemento

Estou tentando utilizar JAXB para interpretar uma NFe e transferir os dados para um objeto. Porém, no momento em que eu realizo o marshaller desse objeto, o valor da tag não é setado no objeto, fazendo com que a tag fique vazia. Preciso descobrir como resolve esse problema.

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "X509DataType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = {
    "x509Certificate"
})
public class X509DataType {

    @XmlElement(name = "X509Certificate", required = true)
    protected byte[] x509Certificate;

    public byte[] getX509Certificate() {
        return x509Certificate;
    }

    public void setX509Certificate(byte[] value) {
        this.x509Certificate = ((byte[]) value);
    }

}

> classe parent (referente ao comentário de Jeandeson)

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "KeyInfoType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = {
    "x509Data"
})
public class KeyInfoType {

    @XmlElement(name = "X509Data", required = true)
    protected X509DataType x509Data;
    @XmlAttribute(name = "Id")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlID
    @XmlSchemaType(name = "ID")
    protected String id;

    // getters & setters

}
  • tente retirar o namespace

    Jeandeson   16 de out de 2014
  • Fiz um teste com as mesmas classes, sem nenhum namespace, o problema persiste.

    Gledson Povidaiko   16 de out de 2014
  • Como a propriedade desta classe está mapeada na classe parent? Será que não está como transient?

    Jeandeson   16 de out de 2014
  • A classe parent, que pelo que deduzi é a classe que contem X509DataType como atributo, está mapeada como acima.

    Gledson Povidaiko   17 de out de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java jaxb xml ou faça a sua própria pergunta.