Uma ajudinha com XML

4 respostas
F

Bom Dia pessoal. To numa briga com xml aqui.

Observem a linha 06, deste trecho do meu XML que coloco aqui. Onde diz xsi:type=“ns4:string” não pode ficar daquele jeito. Mas não tem jeito de conseguir tirar aquilo dali.

<ans:procedimentosRealizados> <ans:procedimentos> <ans:procedimento> <ans:codigo>25020080</ans:codigo> <ans:tipoTabela>02</ans:tipoTabela> <ans:descricao xsi:type="ns4:string">PARAPLEGIA E PARAPARESIA</ans:descricao> </ans:procedimento> <ans:data>25/02/2008</ans:data> <ans:quantidadeRealizada>2</ans:quantidadeRealizada> <ans:reducaoAcrescimo>0</ans:reducaoAcrescimo> </ans:procedimentos>
A definição daquela tag, estou fazendo assim:

tab.setDescricao(new JAXBElement(new QName(null, "ans:descricao", ""), CtTabela.class, rs.getString("descProced")));

Alguém, por favor, pode me dar uma dica de como remover aquela string indesejada??

Estou usando JAXB.
Agradeço.

4 Respostas

cassio

TISS né? hehehe

Cara, se você fuçar no jar do TISSNet, já tm tudo isso implementado lá dentro… Adiciona o jar ao seu classpath e usa as classes que já tem tudo pronto lá dentro.

F

Sério? Mas tudo pronto o que? Vou olhar…

cassio

A geração dos xml (marshalling/unmarshalling), para cada tipo de envio (Guia SPSADT, etc). Tem todas as classes que representam cada parte dos arquivos, é só vc ir preenchendo os valores, combinando os objetos para representar a estrutura do arquivo xml conforme os schemas e pronto.

Só pra vc ter uma idéia básica de um dos campos do arquivo de uma guia SP/SADT:

public class CabecalhoGuiaBuilder {
	
	private Requisicao requisicao;
	
	public CabecalhoGuiaBuilder(Requisicao requisicao) {
		this.requisicao = requisicao;
	}
	
	@SuppressWarnings("deprecation")
	public CtCabecalhoGuia getCabecalhoGuia() throws DatatypeConfigurationException, Exception {
		CtCabecalhoGuia cabecalho = new CtCabecalhoGuia();		
		Date data = requisicao.getData();		
		cabecalho.setDataEmissaoGuia(DateHelper.dateToSlashSeparatedString(data));
		try {
			cabecalho.setNumeroGuiaPrestador(requisicao.getGuia().trim());
		}
		catch(NullPointerException npe) {
			
			throw new Exception("Erro: Requisicao " + requisicao.getCodigo() + " sem numero de guia");
		}
		cabecalho.setRegistroANS(CabecalhoBuilder.registroANS);		
		return cabecalho;
	}
}

E depois

private void prepareMarshallerV20103() throws JAXBException {
		ctx = JAXBContext.newInstance("br.gov.ans.padroes.tiss.schemas.v20103");
		marshaller = ctx.createMarshaller();
		marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
		//marshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, "br.gov.ans.padroes.tiss.schemas");
		marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");		
	}

E pra finalizar e gerar o arquivo

marshaller.marshall(outputPath);

Claro que muita coisa disso eu que fiz (os builders para cada elemento dos arquivos, etc), mas tudo reaproveitando boa parte do código do TissNet.

F

Pior que agora eu já estou em fase de finalização do projeto… Estou validando os arquivos agora e corrigindo as inconsistências.

Mas cara, consegui resolver meu problema. Eu estava fazendo do jeito errado.
Fiz assim agora e deu certo:

JAXBElement<String> descricaoProc = new ObjectFactory().createCtTabelaDescricao(rs.getString("descProc")); tab.setDescricao(descricaoProc);
Mas resolveu meu poblema atual.

Agradeço pela ajuda. Mas acredito que ainda surgirão outras, conforme for validando meu xml. Mas agradeço.

Criado 18 de julho de 2008
Ultima resposta 18 de jul. de 2008
Respostas 4
Participantes 2