Pergunta

Estou considerando o Altova MapForce (ou algo semelhante) para produzir XSLT e/ou uma classe Java ou C# para fazer a tradução.Hoje, extraímos dados diretamente do banco de dados e construímos manualmente uma string XML que publicamos em um webservice.

Deveria ser db -> (interno)XML -> XSLT -> (Externo)XML?O que vocês fazem aí no mundo inteiro?

Foi útil?

Solução

Eu usaria uma das classes de serialização XML prontas para uso para fazer sua geração de XML interno e, em seguida, usaria XSLT para transformar em XML externo.Você também pode gerar um esquema para garantir que o código de tradução (o que quer que conduza sua tradução XSLT) continue a obter o XML que espera para tradução em caso de alterações no objeto quebrem as coisas.

Existem vários editores XSLT no mercado que irão ajudá-lo a fazer os mapeamentos, mas prefiro usar apenas um editor XML normal.

Outras dicas

sim, acho que você está seguindo o caminho certo com o MapForce.Se você não quiser escrever código para pré-formar a transformação real, o MapForce também pode fazer isso por você.Isso pode ser melhor a longo prazo porque há menos código para manter.

Evite opções mais caras (por exemplo,BizTalk), a menos que você realmente precise de integração e orquestração B2B.

Qual banco de dados você está usando?A Oracle possui algumas ferramentas interessantes de mapeamento XML.Existem algumas ferramentas de ligação Java (uma é http://java.sun.com/developer/technicalArticles/WebServices/jaxb).No entanto, se você tiver o luxo, considere usar Ruby, que possui ótimos métodos "to_xml" integrados.

Dica nº 1:Evite todo uso de XSLT.

O suporte da ferramenta é uma droga.A solução resultante será insustentável.

Dica nº 2:Elimine todas as etapas desnecessárias.

Basta traduzir seu conjunto de resultados (supondo que você esteja usando JDBC ou equiv) para o XML de saída.

Dica nº 3:Suponha que todo uso de uma ferramenta baseada em esquema esteja incorreto e planeje adequadamente.

Em outras palavras, apenas finja.Se você tiver que esguichar alguma carga SOAP mutante (redundante, eu sei), apenas simule uma mensagem SOAP funcional e depois transforme-a em um modelo.A velocidade não é uma merda.

Dito isto, a resposta melhor/correta é usar uma solução no estilo "XML Writer".Existem alguns.

O melhor é aquele que escrevi, LOX (objetos leves para XML).

A API pública usa um padrão de design Builder.Devido a alguma mágica subjacente, é impossível criar XML malformado.

Observe: Se XML for a resposta, você fez a pergunta errada.Às vezes, somos forçados, contra nossa vontade, a usá-lo de alguma forma.Quando isso acontece, é crucial usar ferramentas que minimizem o esforço do desenvolvedor e melhorem a manutenção do código.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top