| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 09:09:18
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Bom Dia.
Alguém sabe como faço para definir o prefixo de todo um arquivo xml. Eu uso JAXB.
Tentei implementar uma classe que extende de NamespacePrefixMapper mas não obtive sucesso. O que eu consegui é definir a primeira tag do jeito que eu quero fazendo assim:
Desta maneira, a primeira tag fica com o prefixo <ans>, que é o que eu desejo para todo meu arquivo.
Mas meu xml tem centenas de tags, penso que deve haver um parametro ou algo que faço com que todo o arquivo xml fique com as tags desejadas.
Agradeço.
This message was edited 1 time. Last update was at 10/07/2008 14:50:31
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 09:57:16
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
A propriedade que você está usando para colocar os prefixos é essa?
http://java.sun.com/webservices/docs/1.6/jaxb/vendorProperties.html
Ela não funciona em todas as implementações do JAXB, então provavelmente se você usar
uma implementação que implementa essa propriedade vai funcionar.
E uma dica: a ANS não obriga que o prefixo do seu xml seja ans
e os prefixos dos namespaces não influenciam em nada o processo de marshall e unmarshall
Se mesmo assim vc quiser colocar prefixos, você pode fazer o marshal pra um Result do SAX
ou um Node do DOM, e depois usar Transformations pra transformar isso em arquivos.
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 10:07:47
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Sim, é essa sim.
Ela não funciona em todas as implementações do JAXB, então provavelmente se você usar
uma implementação que implementa essa propriedade vai funcionar.
Como eu sei se com a minha implementação do JAXB ela deve funcionar??
E uma dica: a ANS não obriga que o prefixo do seu xml seja ans
Capaz... sério mesmo? To sofrendo com isso aqui...
Se eu colocar o código do meu namespacePrefixMapper aqui você me ajuda a conferir se ele está ok? Pois não sei como descubro se o erro é no meu código ou se é a implementação do meu JAXB que não suporta.
Agradeço.
Fernando.
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 10:17:12
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
certeza que a ans não obriga que o prefixo seja ans... eu to desenvolvendo os web-services do TISS
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 10:28:37
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Bah.. então vou deixar isso de lado. Não vou mais me stressar com os prefixos.
É que quando vou validar ele no Visualizador de arquivos do Tiss dá a seguinte mensagem:
"O arquivo selecionado não corresponde aos padrões disponíveis no Visualizador"
Pensei que era por causa do prefixo que não tinha definido.
Deve ser outra coisa então.
Aproveitando o tópico então e já que você está na mesma tarefa, você já fez o cálculo da hash?
Agradeço.
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 10:45:56
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
É que quando vou validar ele no Visualizador de arquivos do Tiss dá a seguinte mensagem:
"O arquivo selecionado não corresponde aos padrões disponíveis no Visualizador"
Pensei que era por causa do prefixo que não tinha definido.
tenta validar a mensagem que você tá mandando com o xsd do tiss
http://www.ans.gov.br/padroes/tiss/schemas/tissV2_01_03.xsd
Aproveitando o tópico então e já que você está na mesma tarefa, você já fez o cálculo da hash?
Existe uma implementação de referência chamada TissNet... dá uma olhada nela... mas de qualquer
forma é só pegar todo o texto que está dentro das tags, concatenar um na frente do outro e passar
o hash MD5 neles.
De qualquer forma, esse código troca os prefixos dos elementos pra "ans":
É só trocar o System.out pra qualquer InputStream ou Writer... O problema é que esse código pode ser meio lento...
Se você preferir voce pode colocar um xslt que faz isso... com certeza vai ficar mais rápido...
[]'s
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 13:00:50
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
O código tá me gerando a seguinte exception:
Sabe me ajudar?
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 13:14:06
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
instala a VM da sun.... você está com a VM da GNU instalada... ela provavelmente não tem algumas
features instaladas... por isso que vc não estava conseguindo setar o prefixo daquele primeiro jeito...
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 13:22:39
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
lucascs wrote:instala a VM da sun.... você está com a VM da GNU instalada... ela provavelmente não tem algumas
features instaladas... por isso que vc não estava conseguindo setar o prefixo daquele primeiro jeito...
O que você fala por VM da Sun?? Virtual Machine?
Mas aí eu começo a pensar nas consequências daí... terei que trocar a versão do VM no cliente também?
Tu tem o link correto pra me dar então, porque não entendo como poderia ter instalado a VM da GNU e não da Sun...
Agradeço.
Fernando.
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 13:36:07
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
a vm da sun vc consegue baixar no site da sun...
é soh procurar por java runtime environment
se vc usa linux, e instalou o java usando algum gerenciador de pacotes é possivel
que a VM tenha vindo a da gnu...
se vc usa windows é realmente estranho vc ter a vm da gnu... mas de qqer forma
tenta baixar a vm do site da sun...
por padrão todas as pessoas instalam a vm da sun... (qdo vc entra em site de banco,
por exemplo, é essa vm que é baixada)...
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 13:40:34
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Pois é, aqui é Windows... por isso estranhei.
Bem, vou atualizar aqui, mas não to muito crente na solução não.
Agradeço.
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 16:12:09
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Infelizmente não deu certo. Tentei instalar outra jre mas não funcionou. Mas uma dúvida eu tirei. Meu arquivo não estava sendo validado pelo programa Validador do Tiss. Então eu peguei manualmente mesmo e adicionei o prefixo <ans:> em todas as tags, e troquei também manualmente o cabeçalho para porque pelo meu código, apesar de estar setando a propriedade no xml gerado ele não pego essa linha, pega utf. Depois disso, meu xml passou a ser validado. Então não sei quanto àquela sua afirmação de que o prefixo <ans:> era dispensável, mas para mim, a inclusão do prefixo, mais a troca do cabeçalho fez meu arquivo se tornar correto. Meu código deve estar com defeito em algum lugar para não estar trabalhando direito. Mas bem, tentarei mais um pouco e farei mais algumas buscas na internet. Mas se você tiver mais alguma dica eu agradeço lucascs. Atenciosamente. Fernando.
This message was edited 1 time. Last update was at 07/07/2008 16:13:18
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2008 18:48:12
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
vc tentou colocar só o cabeçalho do xml?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/07/2008 08:58:43
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Olha cara... as vezes dá vontade de se dar um tiro da testa
Que barbaridade... desde ontem de tarde mexendo (desde manhã já pra falar a verdade) com estes prefixos do xml. Fui rever as fontes na internet que tinha usado como pesquisa, pois não podia aceitar que não estava dando certo.
Sabe por que não funcionava???
O nome da classe devia ser NamespacePrefixMapperImpl
e eu estava usando o s de space maiusculo NameSpacePrefixMapperImpl.
Foi só alterar isso e bah, blz.. funcionou direitinho.
Valeu pela ajuda lucascs.
Agradeço muito.
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/07/2008 13:35:01
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Trazendo o tópico de volta...
lucascs, você pode me dar alguma sugestão sobre o cálculo do hash? Concatenei todo o conteúdo do meu xml, e efetuei o cálculo sobre ele, mas ao validá-lo, sempre me retorna "hash incorreto" no tissnet.
Na string concatenada, eu faço o seguinte:
- Removo todos espaços em branco.
- Tiro qualquer tipo de acentuação.
- Pego somente o valor das tags.
- Deixo, evidentemente, as tags do epilogo de fora do cálculo.
No fim das contas tenho uma string assim:
ENVIO_LOTE_GUIAS129/05/200715:13999999999998888882.01.013173088888802/01/2007103500111254874126577777777777777777777Paciente TestenomeConvenio99999999999Joao da Silva081Rua das Flores550411520PR871000001111111CRM5.555PR06117CID-10I10._02/01/2007940001001415observacao
que gera o código:
d41d8cd98f00b204e9800998ecf8427e
Só que o tissnet rejeita.
Tu teria alguma dica a mais, que eu deveria fazer na hora de gerar a string?? Quem sabe remover a identação do xml? Isso eu ainda não faço.
Incrivelmente a ans não dá suporte, então temos que buscar referências em outros lugares.
Te agradeço pela ajuda.
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
|
|