[quote=looljunior]Olá pessoal…
estou com um problema na geração do arquivo xml “NFe.xml”
Estou fazendo o seguinte:
Gerei meus bens através das instruções deste site utilizando JAXB.
depois eu faço um “teste” eu pego o arquivo xml de exemplo que está disponivel no blog da receita neste site
ai eu faço assim:
public static void main(String[] args) {
try {
NFe retorno = JAXB.unmarshal("C:\\NFe.xml", NFe.class); // do xml de exemplo da receita, eu passo para os beans gerados pelo meu JAXB
toXML(retorno); // depois eu faço o processo inverso de novo, para ve se meus beans gerados, foram gerados corretamente...
} catch (JAXBException e) {
e.printStackTrace();
}
}
public static void toXML(NFe root) throws JAXBException {
JAXBContext ctx = JAXBContext.newInstance(NFe.class);
Marshaller marshaller = ctx.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(root, new File("D://NFe.xml"));
System.out.println("Arquivo gerado com sucesso!");
}
Porem o que acontece é que no arquivo xml exemplo da receita nesta parte do código em xml está assim:
<?xml version="1.0" encoding="utf-8"?>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe"> // a tag NFe
<infNFe Id="NFe35080599999090910270550010000000015180051273" versao="1.10">
<ide>...
...
no meu arquivo sai assim:
[code]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> ... ...[/code]Com o nFe minusculo na hora de eu validar no site da receita da erro…
o que pode está acontecendo para o meu xml está saindo diferente?
aparece aquele "xmlns:ns2=“http://www.w3.org/2000/09/xmldsig#” tambem no meu…
mas eu soh alterando o nFe para NFe e boto para validar… jah diz que o arquivo está certo…
alguem tem idéia do que pode ser??[/quote]
quando vc gera os beans pelo JAXB aconte esses rolos, ele adiciona esse ns2 e esse problema de nomeação com algumas tags, por isso decidi fazer os beans todos na mão porque esse xml ai de exemplo nem contem todos os campos que se utiliza na NFe, pois tem varias formas de se emitir uma NFe tributações aliquotas pins cofins redução de impostos e toda esse m. do governo, por isso optei em fazer os beans no braço seguindo a risca o manual do contribuinte e usando as annotation do JAXB para construir meu xml, quando dou unmarshall não tenho problema algum, os beans são populados corretamente e pra qualquer tipo de nota fiscal gerada esta conforme o padrão da receita, ai vai um exemplo, pra solução do ns2 tem varios posts aqui que ensinam como remover, abraços.
@XmlRootElement(name = "NFe")
@XmlAccessorType(XmlAccessType.FIELD)
public class NFe {
public NFe() {
xmlns = "http://www.portalfiscal.inf.br/nfe";
}
@XmlElement(name = "infNFe")
private InfNFe infNFe;
@XmlAttribute(name = "xmlns")
private String xmlns;
@XmlElement(name = "Signature")
private Signature signature;
public InfNFe getInfNFe() {
return infNFe;
}
public void setInfNFe(InfNFe infNFe) {
this.infNFe = infNFe;
}
public Signature getSignature() {
return signature;
}
public void setSignature(Signature signature) {
this.signature = signature;
}