CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Moderador: Moderadores
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Opa
Quem faz averbacao via webservice da AT&M, sabe que precisa mandar o XML do cte ou manifesto como string
Pra isso usamos ![CDATA [
O problema é que estou tentando averbar um xml, mas emitido por terceiros, onde eles usam [CDATA dentro do xml,
na parte que faz referencia ao endereco de QrCode.
O que fazer entao, ja tentei tira o CDATA do xml original mas o webserver nao aceita.
Como mandar um arquvo xml com CDATA[ se o xml já tem CDATA{ no conteudo ?
Ao mandar o arquivo fica truncado bem na parte que tem o CDATA{ do arquivo original
cxlido:=alltrim(HB_Memoread(varqxml))
cXml:=' <usuario xsi:type="xsd:string">'+vusuatm+'</usuario>'+hb_eol()+;
' <senha xsi:type="xsd:string">'+vsenhaatm+'</senha>'+hb_eol()+;
' <codatm xsi:type="xsd:string">'+vcodatm+'</codatm>'+hb_eol()+;
' <xmlCTe xsi:type="xsd:string"><![CDATA['+cxlido+']]></xmlCTe>'+hb_eol()
Quem faz averbacao via webservice da AT&M, sabe que precisa mandar o XML do cte ou manifesto como string
Pra isso usamos ![CDATA [
O problema é que estou tentando averbar um xml, mas emitido por terceiros, onde eles usam [CDATA dentro do xml,
na parte que faz referencia ao endereco de QrCode.
O que fazer entao, ja tentei tira o CDATA do xml original mas o webserver nao aceita.
Como mandar um arquvo xml com CDATA[ se o xml já tem CDATA{ no conteudo ?
Ao mandar o arquivo fica truncado bem na parte que tem o CDATA{ do arquivo original
cxlido:=alltrim(HB_Memoread(varqxml))
cXml:=' <usuario xsi:type="xsd:string">'+vusuatm+'</usuario>'+hb_eol()+;
' <senha xsi:type="xsd:string">'+vsenhaatm+'</senha>'+hb_eol()+;
' <codatm xsi:type="xsd:string">'+vcodatm+'</codatm>'+hb_eol()+;
' <xmlCTe xsi:type="xsd:string"><![CDATA['+cxlido+']]></xmlCTe>'+hb_eol()
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Resposta do pessoal da unimake para uma dúvida semelhante, veja se resolve ok
Na hora de gerar o XML a sua tag está assim (ignore os espaços que eu coloquei para alinhar as duas linhas e veja os destaques em vermelho):
<infAdProd>" Pedido Cliente:"LEO";< ![CDATA[< ped="LEO"/> ]]> ;</infAdProd>
Modifique para gerar assim (veja destaques em vermelho):
<infAdProd>" Pedido Cliente:"LEO";<![CDATA[<ped="LEO"/>]]>;</infAdProd>
Duas linhas na sequência para facilitar identificar as mudanças:
<infAdProd>" Pedido Cliente:"LEO";< ![CDATA[< ped="LEO"/> ]]> ;</infAdProd>
<infAdProd>" Pedido Cliente:"LEO";<![CDATA[<ped="LEO"/>]]>;</infAdProd>
Basicamente coloquei o caractere escape dos sinais de maior e menor.
Faz o teste, por favor.
Na hora de gerar o XML a sua tag está assim (ignore os espaços que eu coloquei para alinhar as duas linhas e veja os destaques em vermelho):
<infAdProd>" Pedido Cliente:"LEO";< ![CDATA[< ped="LEO"/> ]]> ;</infAdProd>
Modifique para gerar assim (veja destaques em vermelho):
<infAdProd>" Pedido Cliente:"LEO";<![CDATA[<ped="LEO"/>]]>;</infAdProd>
Duas linhas na sequência para facilitar identificar as mudanças:
<infAdProd>" Pedido Cliente:"LEO";< ![CDATA[< ped="LEO"/> ]]> ;</infAdProd>
<infAdProd>" Pedido Cliente:"LEO";<![CDATA[<ped="LEO"/>]]>;</infAdProd>
Basicamente coloquei o caractere escape dos sinais de maior e menor.
Faz o teste, por favor.
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Obrigado,
Sobre esses caracteres, tambem procurei , mas quem gera o xml nao sou eu, é uma XML emitido por terceiros, que emitem como se fosse nossa empresa
Nao tenho como pedir para eles mudarem, nao temos acesso.
Mudar no string lido, esssa parte do [DATA[ para esses caracteres tambem nao funciona
retorna: XML invalido para utilizacao neste webserver
Preciso averbar o xml, mandando como string para o Webservice
Sobre esses caracteres, tambem procurei , mas quem gera o xml nao sou eu, é uma XML emitido por terceiros, que emitem como se fosse nossa empresa
Nao tenho como pedir para eles mudarem, nao temos acesso.
Mudar no string lido, esssa parte do [DATA[ para esses caracteres tambem nao funciona
retorna: XML invalido para utilizacao neste webserver
Preciso averbar o xml, mandando como string para o Webservice
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Não lembro.Alexandre Silva escreveu:O problema é que estou tentando averbar um xml, mas emitido por terceiros, onde eles usam [CDATA dentro do xml,
na parte que faz referencia ao endereco de QrCode.
Já tentou arrancar tudo fora.
No exemplo do ACBR..... sei lá... eu uso o lugar correto de informar número de pedido de compra e sequencial do produto, conforme manual da Fazenda.
Se a moda pega ferrou, porque além de fugir do formato da nota eletrônica também foge do formato de XML, acaba sendo um formato inválido.
Ok, existe uma opção de converter pra formato internet para que < e > não sejam interpretados como início/fim de marca de xml, mas.... sei lá...
Lembrando: (evitando problema de formatação do site)
[nome]dsfdsfdsfd[/nome]
[nome]sdfdsfsdd[CDATA][/nome]
Isso tornou o XML inválido. Abriu um bloco sem fechar no meio do outro.
Sei lá como a Fazenda aceitou isso, talvez tenha sido feita conversão antes de transmitir, mas vai trazer problema pra tudo que vier depois.
Eu até baixaria o XML oficial da Fazenda pra ver se foi isso mesmo que foi autorizado.
Senão, eles estão autorizando um, e enviando outro.
É por isso que eu uso minha sefazclass, e só XML.
Ficar usando componente de terceiros, sai merd. e ninguém percebe.
Sei lá se isso dá multa....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Voltando ao webservice:
Um erro no xml de dentro causa erro no xml de fora.
O ponto é tentar verificar é se está reclamando do XML do envelope, ou do XML que está no CDATA.
Tentar transmitir qualquer coisa no lugar do xml pra ver se o retorno é o mesmo.
Isso resolve a dúvida sobre XML de comunicação estar correto.
A partir daí tem a ver com o XML do documento mesmo.
É resolver a questão do XML.
Um erro no xml de dentro causa erro no xml de fora.
O ponto é tentar verificar é se está reclamando do XML do envelope, ou do XML que está no CDATA.
Tentar transmitir qualquer coisa no lugar do xml pra ver se o retorno é o mesmo.
Isso resolve a dúvida sobre XML de comunicação estar correto.
A partir daí tem a ver com o XML do documento mesmo.
É resolver a questão do XML.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Olá!
Se não estou enganado em HTML <! é a tag de comentário.
Tá aqui uma explicação:
https://stackoverflow.com/questions/608 ... ean-in-xml Saudações,
Itamar M. Lins Jr.
Se não estou enganado em HTML <! é a tag de comentário.
Tá aqui uma explicação:
https://stackoverflow.com/questions/608 ... ean-in-xml Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Olá!
Faltou ver como inicia e termina o tal cxlido! Tem que começar com <qrcode>nCodigo</qrcode> ou algo parecido.
Saudações,
Itamar M. Lins Jr.
Faltou ver como inicia e termina o tal cxlido! Tem que começar com <qrcode>nCodigo</qrcode> ou algo parecido.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
respondendo acima
Se o xml do cte nao tiver o [CDATA[ , funciona 100%
Dentro do xml esta essa tag,(mudei a chave ai para postar ok)
<infCTeSupl>
<qrCodCTe>
<![CDATA[ https://dfe-portal.svrs.rs.gov.br/cte/q ... 49&tpAmb=1 ]]>
</qrCodCTe>
</infCTeSupl>
Encontrei isso
Mas nao entendo os exemplos ai
Se um documento XML incorporado contiver uma seção CDATA, a tag de fechamento incorporada ( ]]>) encerra a seção CDATA externa. Portanto, você não pode incorporar uma seção CDATA diretamente. Você terá que encerrar temporariamente a seção CDATA externa antes de inserir o terminador da seção CDATA interna. Suponha que você tenha a seguinte string:
https://www.soapui.org/docs/functional- ... ith-cdata/
Se o xml do cte nao tiver o [CDATA[ , funciona 100%
Dentro do xml esta essa tag,(mudei a chave ai para postar ok)
<infCTeSupl>
<qrCodCTe>
<![CDATA[ https://dfe-portal.svrs.rs.gov.br/cte/q ... 49&tpAmb=1 ]]>
</qrCodCTe>
</infCTeSupl>
Encontrei isso
Mas nao entendo os exemplos ai
Código: Selecionar todos
https://www.soapui.org/docs/functional-testing/working-with-cdata/
https://www.soapui.org/docs/functional- ... ith-cdata/
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
É exatamente o que postei antes.
xml precisa começo e fim.
Tá vendo lá <infAdProd> isso é abertura de bloco
Tá vendo lá </infAdProd> isso é fechamento de bloco
Tá vendo lá <!{CDATA isso é considerado abertura de bloco
Se tem abertura, cadê o fechamento ?
gambiarra 1: usar a conversão > < pra esconder o maior/menor e não ser considerado bloco
Vai virar tudo texto de infAdProd
gambiarra 2: definir um bloco pra colocar o data dentro pra ser considerado string e não parte do xml
Isso cria um bloco verdadeiro com o conteúdo dentro.
Pode tentar uma gambiarra 3, que nào tem lá na página, o final de bloco único.
É normal até em página de internet, que também é XML, a barra final.
Sobre o outro assunto:
pra postar URL é tudo na mesma linha
Quando digita url numa linha sozinha, assume automático, mas aí ficam os pontos e não consegue enxergar inteira depois, ao editar a mensagem.
Fiz a edição [-url-]endereco[-/url-]
Aqui os hífens são igual seu problema com CDATA, é a gambiarra pro site não traduzir pra link. vai usar assim, sem os hífens.
xml precisa começo e fim.
Código: Selecionar todos
<infAdProd>......<!{CDATA]>dddddd></infAdProd>
Tá vendo lá </infAdProd> isso é fechamento de bloco
Tá vendo lá <!{CDATA isso é considerado abertura de bloco
Se tem abertura, cadê o fechamento ?
gambiarra 1: usar a conversão > < pra esconder o maior/menor e não ser considerado bloco
Vai virar tudo texto de infAdProd
gambiarra 2: definir um bloco pra colocar o data dentro pra ser considerado string e não parte do xml
Isso cria um bloco verdadeiro com o conteúdo dentro.
Pode tentar uma gambiarra 3, que nào tem lá na página, o final de bloco único.
É normal até em página de internet, que também é XML, a barra final.
Código: Selecionar todos
<!{DATA}.....]]] />
Sobre o outro assunto:
pra postar URL é tudo na mesma linha
Quando digita url numa linha sozinha, assume automático, mas aí ficam os pontos e não consegue enxergar inteira depois, ao editar a mensagem.
Fiz a edição [-url-]endereco[-/url-]
Aqui os hífens são igual seu problema com CDATA, é a gambiarra pro site não traduzir pra link. vai usar assim, sem os hífens.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Obrigado pelo retorno
Devo deixar claro que nao posso mudar o xml do cliente, nao sou eu quem faz esse ai, e o xml esta correto sim.
Se tento mudar o conteudo da string (cxlido) apos lido, mudando <> ou mesmo tirando o [CDATA usando subst
recebo a mensagem :
XML invalido para utilizacao neste webserver
Entao o que tentei mudar foi a forma de mandar
que é nessa linha
<xmlCTe xsi:type="xsd:string"> <![CDATA['+cxlido+']]> </xmlCTe>'+hb_eol()
se mudo algum caracter , < > seja os <> ou mudar ] ou mudar ou acrescentar />
recebo a mensagem:
Invalid character as tag name ou Xml nao enviado
Devo deixar claro que nao posso mudar o xml do cliente, nao sou eu quem faz esse ai, e o xml esta correto sim.
Se tento mudar o conteudo da string (cxlido) apos lido, mudando <> ou mesmo tirando o [CDATA usando subst
recebo a mensagem :
XML invalido para utilizacao neste webserver
Entao o que tentei mudar foi a forma de mandar
que é nessa linha
<xmlCTe xsi:type="xsd:string"> <![CDATA['+cxlido+']]> </xmlCTe>'+hb_eol()
se mudo algum caracter , < > seja os <> ou mudar ] ou mudar ou acrescentar />
recebo a mensagem:
Invalid character as tag name ou Xml nao enviado
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Ninguém tá falando de alterar XML de cliente.
É alterar só pro envio.
Mas no cliente, pode sugerir mudanças pras próximas.
Caso exista alternativa.
É alterar só pro envio.
Mas no cliente, pode sugerir mudanças pras próximas.
Caso exista alternativa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
Olá!
<message><![CDATA[<data>some embedded xml <![CDATA[<text>with xml</text>]]]]>><![CDATA[</data>]]></message>
É CDATA dentro de CDATA.
Saudações,
Itamar M. Lins Jr.
<message><![CDATA[<data>some embedded xml <![CDATA[<text>with xml</text>]]]]>><![CDATA[</data>]]></message>
Acredito que isso ai na URL que vc mesmo postou, vai resolver.The first CDATA section wraps the following text: <data>some embedded xml <![CDATA[<text>with xml</text>]].
Note that this CDATA section does not contain the > character that would turn the last three characters into the CDATA terminator.
Then comes a single character >. This character is not treated as a markup, so there is no need to convert it to the > entity.
Another CDATA section contains the string </data>.
É CDATA dentro de CDATA.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
Ana Mitoooo
- Usuário Nível 3

- Mensagens: 118
- Registrado em: 17 Out 2018 10:00
- Localização: Sobradinho/DF
CDATA[ de xml com CDATA[ ( Averbacao AT&M)
\contrib\hbmxml
Código: Selecionar todos
mxmlGetCDATA
mxmlNewCDATA
mxmlSetCDATA