Pregunta

Estamos buscando una biblioteca o motor de transformación que pueda leer cualquier entrada (archivos EDIfact, CSV, XML, cosas así).Por lo tanto, archivos (o resultados de servicios web) que contienen datos que deben transformarse a una estructura de objeto comercial conocida). Estos datos deben transformarse en un objeto comercial existente mediante reglas personalizadas.XSLT es demasiado complejo (para aprender) y demasiado simple (no tiene suficientes funciones)

¿Alguien puede recomendar una biblioteca o motor de C#?He visto Altova MapForce pero me gustaría algo que pueda enviar a docenas de personas que puedan construir/diseñar sus propias transformaciones sin tener que pagar docenas de licencias de Altova.

¿Fue útil?

Solución

Si cree que XSLT es demasiado difícil para usted, creo que puede probar LINQ to XML para analizar archivos XML.Está integrado en el marco .NET y puedes usar C# (o, si usas VB.NET 9.0, mejor debido a los literales XML) en lugar de aprender otro idioma.Puedes integrarlo con la aplicación existente sin mucho esfuerzo y sin el desajuste de paradigma entre el lenguaje y la gestión de archivos que ocurre con XSLT.

Microsoft LINQ a XML

Claro, no es un marco o biblioteca para analizar archivos, pero tampoco XSLT lo es, así que...

Otros consejos

XSLT no funcionará para EDI y CSV.Si desea un motor de transformación completamente genérico, es posible que deba desembolsar algo de dinero.He usado sinfonía para tratar con EDI, y funcionó, pero no es gratis.

La cuestión es que el problema que estás describiendo suena "empresarial" (estoy seguro de que nadie usa EDI por diversión), por lo que no hay herramientas de código abierto/gratuitas para lidiar con estas cosas.

No me apresuraría a descartar XSLT por ser demasiado complejo o no contener las funciones que necesita.

Hay muchos libros y sitios web que describen todo lo que necesita saber sobre XSLT.Sí, hay una pequeña curva de aprendizaje, pero no hace falta mucho para entenderlo, y siempre hay una gran comunidad como stackoverflow a la que recurrir si necesitas ayuda ;-)

En cuanto a la falta de características, siempre puede extender los ensamblados XSLT y llamar a .NET desde el XSLT utilizando el método XSLTarGumentList.AdDextensionObject (), que le daría la potencia que necesita.

MSDN tiene un gran ejemplo del uso de esto. aquí

Es cierto que las aplicaciones MapForce y Biztalk facilitan mucho la creación de xslt pero también cuestan un poco.Además, dependiendo de su base de usuarios (suponiendo que no sean desarrolladores), creo que encontrará que estas aplicaciones tienen sus propias curvas de aprendizaje y, a menudo, tienen demasiadas funciones para lo que necesita.

Le recomiendo que considere crear y distribuir su propia herramienta de mapeo personalizada y específica para las necesidades de sus usuarios.

Además, si necesita una biblioteca para ayudar con la conversión de archivos, le recomiendo Ayudantes de archivos en SourceForge

DataDirect Technologies tiene un producto que hace exactamente esto.En http://www.xmlconverters.com/ Existe una biblioteca llamada XmlConverters que convierte EDI a XML y viceversa.También hay convertidores para CSV, JSON y otros formatos.Las bibliotecas están disponibles como código administrado 100% .net y un puerto paralelo en 100% Java.El lado .net admite XmlReader y XmlWriter, mientras que el lado Java admite SAX, StAX y DOM.Ambos también admiten E/S de flujo y de lector/escritor.DataDirect también tiene un motor XQuery optimizado para fusionar datos relacionales con EDI y XML, pero es sólo Java.

Servidor Microsoft BizTalk hace un muy buen trabajo con esto.

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