[org.xml.sax.SAXParseException: The prefix "v1" for element "v1:fiscalScenarioSummary" is not bound.]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(Unknown Source)
A questão não é o “v1” (que, neste caso, é chamado de “prefixo”). A questão é que esse v1 se refere a um namespace que, provavelmente, não está mapeado no seu objeto FiscalScenarioSummary. Você pode postar este objeto e o XML completo, para que eu possa checar o mapeamento?
[]'s
D
dudu795
Correto, é namespace e não prefixo, analisando o envelope SOAP, teria ainda que criar o objeto sendTaxParameters para encapsular o FiscalScenarioSummary, antes da transformação, seguem os arquivos.
//imports omitidos@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name="FiscalScenarioSummary",propOrder={"product","originState","destinationState","taxableOperation","goodsSource","originSector","destinationSector","taxRulesFrom","taxRulesTo","specialMeasuresFrom","specialMeasuresTo","cfop"})@XmlRootElementpublicclassFiscalScenarioSummary{protectedList<Product>product;protectedStringoriginState;protectedStringdestinationState;protectedIntegertaxableOperation;protectedIntegergoodsSource;protectedIntegeroriginSector;protectedIntegerdestinationSector;protectedStringtaxRulesFrom;protectedStringtaxRulesTo;protectedIntegerspecialMeasuresFrom;protectedIntegerspecialMeasuresTo;@XmlElement(name="CFOP")protectedIntegercfop;//getteres e setters..
o envelope soap é este:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.application.server.messaging.fiscalapp.ciss.com.br/" xmlns:v1="http://canonical.ciss.com.br/financials/v1" xmlns:cli="http://integration.ciss.com.br/sync/client">
<soapenv:Header/>
<soapenv:Body>
<v1:sendTaxParameters>
<v1:fiscalScenarioSummary>
<v1:cfop>5102</v1:cfop>
<v1:destinationState/>
<v1:goodsSource/>
<v1:originSector/>
<v1:taxableOperation/>
<v1:originState/>
<v1:taxRulesFrom/>
<v1:taxRulesTo/>
<v1:specialMeasuresFrom/>
<v1:specialMeasuresTo/>
<v1:product>
<v1:internalCode>454455</v1:internalCode>
<v1:subInternalCode>454455</v1:subInternalCode>
<v1:barCode>7891141018572</v1:barCode>
<v1:ncm>33051000</v1:ncm>
<v1:icms>
<m:cst>00</m:cst>
<m:taxRate>17.00</m:taxRate>
<m:commencementDate>2002-12-01-02:00</m:commencementDate>
<m:expiryDate>2999-12-31-02:00</m:expiryDate>
<m:legalProvision>Art. 63, I e §1º do RICMS/ES . Art. 71, I, "a" do RICMS/ES</m:legalProvision>
<m:observations>Inexistente</m:observations>
<m:additionalInformation>Inexistente</m:additionalInformation>
</v1:icms>
</v1:product>
</v1:fiscalScenarioSummary>
</v1:sendTaxParameters>
</soapenv:Body>
A
Alexandre_Saudate
Neste caso, basta alterar o código para ficar assim:
Talvez também seja necessário alterar mais alguma coisa no método sendTaxParameters, mas acredito que você entendeu a idéia
[]'s
D
dudu795
ocorreu o mesmo erro!
Fiz o inverso, criei um objeto manualmente, e ao invés de transformar o XML em Object, transformei o Object em XML, e o XML ficou assim, teria alguma tag para nomear este namespace de ns2 para v1, e os atributos assumirem este tipo, ou será que tenho que incluir uma anotação para cada atributo, dizendo que seu namespace é v1?
mas não ficou muito claro por que, pois ao gerar o XML a aprtir do objeto, o prefixo namespace mantém ns2.
D
dudu795
não funcionou não!!!
sem querer sobreescrevi o arquivo XML que causa erro com o XML transformado a partir do objeto!!!
A
Alexandre_Saudate
Você pode fazer o seguinte… se você tiver os schemas, tente fazer o processo inverso, ou seja, gerar os objetos a partir deles. Para isso, basta utilizar o xjc - um utilitário que vem com a JDK.