Pregunta

Estoy considerando Altova MapForce (o algo similar) para producir XSLT y/o una clase Java o C# para realizar la traducción.Hoy en día, extraemos datos directamente de la base de datos y construimos manualmente una cadena XML que publicamos en un servicio web.

¿Debería ser db -> XML (interno) -> XSLT -> XML (externo)?¿Qué hacen ustedes en el mundo?

¿Fue útil?

Solución

Usaría una de las clases de serialización XML listas para usar para realizar la generación XML interna y luego usaría XSLT para transformar al XML externo.También puede generar un esquema para hacer cumplir que el código de traducción (lo que sea que impulse su traducción XSLT) continúe obteniendo el XML que espera para la traducción en caso de que los cambios en el objeto rompan las cosas.

Hay varios editores XSLT en el mercado que le ayudarán a realizar las asignaciones, pero prefiero usar un editor XML normal.

Otros consejos

Sí, creo que estás yendo por el camino correcto con MapForce.Si no desea escribir código para realizar la transformación real, MapForce también puede hacerlo por usted.Esto puede ser mejor a largo plazo porque hay menos código que mantener.

Manténgase alejado de opciones más caras (p. ej.BizTalk) a menos que realmente necesite integración y orquestación B2B.

¿Qué base de datos estas usando?Oracle tiene algunas buenas herramientas de mapeo XML.Hay algunas herramientas de enlace de Java (una es http://java.sun.com/developer/technicalArticles/WebServices/jaxb).Sin embargo, si tiene el lujo, considere usar Ruby, que tiene buenos métodos integrados "to_xml".

Consejo #1:Evite todo uso de XSLT.

El soporte de la herramienta apesta.La solución resultante será imposible de mantener.

Consejo #2:Elimine todos los pasos innecesarios.

Simplemente traduzca su conjunto de resultados (suponiendo que esté usando JDBC o equivalente) al XML saliente.

Consejo #3:Suponga que todo uso de una herramienta basada en esquemas es incorrecto y planifique en consecuencia.

En otras palabras, simplemente finge.Si tiene que lanzar alguna carga útil SOAP mutante (redundante, lo sé), simplemente simule un mensaje SOAP que funcione y luego conviértalo en una plantilla.La velocidad no apesta.

Dicho esto, la mejor respuesta/correcta es utilizar una solución de estilo "XML Writer".Hay algunos.

El mejor es el que escribí. LOX (Objetos ligeros para XML).

La API pública utiliza un patrón de diseño Builder.Debido a algo de magia bajo el capó, es imposible crear XML con formato incorrecto.

Tenga en cuenta: Si XML es la respuesta, ha hecho la pregunta equivocada.A veces, nos vemos obligados contra nuestra voluntad a utilizarlo de alguna manera.Cuando eso sucede, es fundamental utilizar herramientas que minimicen el esfuerzo del desarrollador y mejoren la capacidad de mantenimiento del código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top