Domanda

Stiamo cercando una libreria o un motore di trasformazione in grado di leggere qualsiasi input (file EDIfact, CSV, XML, cose del genere.Quindi file (o risultati di servizi web) che contengono dati che devono essere trasformati in una struttura di oggetti di business conosciuta.) Questi dati dovrebbero essere trasformati in un oggetto di business esistente utilizzando regole personalizzate.XSLT è sia complesso (imparare) che semplice (funzionalità insufficienti)

Qualcuno può consigliare una libreria o un motore C#?Ho visto Altova MapForce ma vorrei qualcosa da poter inviare a dozzine di persone che costruiranno/progetteranno le proprie trasformazioni senza dover pagare dozzine di licenze Altova.

È stato utile?

Soluzione

Se ritieni che XSLT sia troppo difficile per te, penso che puoi provare LINQ to XML per analizzare i file XML.È integrato nel framework .NET e puoi utilizzare C# (o, se usi VB.NET 9.0, meglio a causa dei valori letterali XML) invece di imparare un'altra lingua.Puoi integrarlo con l'applicazione esistente senza troppi sforzi e senza la discrepanza paradigmatica tra la lingua e la gestione dei file che si verifica con XSLT.

MicrosoftLINQ to XML

Certo, non è un framework o una libreria per l'analisi dei file, ma nemmeno XSLT lo è, quindi...

Altri suggerimenti

XSLT non funzionerà per EDI e CSV.Se desideri un motore di trasformazione completamente generico, potresti dover sborsare dei soldi.ho usato Sinfonia per gestire EDI, e ha funzionato, ma non è gratuito.

Il fatto è che il problema che stai descrivendo sembra "enterprisey" (sono sicuro che nessuno usa EDI per divertimento), quindi non esistono strumenti open source/gratuiti per gestire queste cose.

Non sarei così veloce nel liquidare XSLT perché troppo complesso o non contenente le funzionalità richieste.

Esistono moltissimi libri/siti Web che descrivono tutto ciò che devi sapere su XSLT.Sì, c'è un po' di curva di apprendimento, ma non ci vuole molto per entrarci, e c'è sempre una grande comunità come StackOverflow a cui rivolgersi se hai bisogno di aiuto ;-)

Per quanto riguarda la mancanza di funzionalità, è sempre possibile estendere i gruppi XSLT e chiamare .NET da XSLT utilizzando il metodo XSLTARGUMENTLIST.ADDExtensionObject (), che ti darebbe la potenza di cui hai bisogno.

MSDN ha un ottimo esempio di utilizzo di questo Qui

È vero che le applicazioni MapForce e Biztalk rendono la creazione di xslt molto semplice ma costano anche un po'.Inoltre, a seconda della tua base utenti (assumendo che non siano sviluppatori), penso che scoprirai che queste applicazioni hanno curve di apprendimento proprie e sono spesso troppo ricche di funzionalità per ciò di cui hai bisogno.

Ti consiglierei di prendere in considerazione la creazione e la distribuzione del tuo strumento di mappatura personalizzato specifico per le esigenze dei tuoi utenti.

Inoltre, se hai bisogno di una libreria per aiutarti con le conversioni di file, lo consiglierei FileHelper presso SourceForge

DataDirect Technologies ha un prodotto che fa esattamente questo.A http://www.xmlconverters.com/ esiste una libreria chiamata XmlConverters che converte EDI in XML e viceversa.Esistono anche convertitori per CSV, JSON e altri formati.Le librerie sono disponibili come codice gestito al 100% .net e una porta parallela al 100% Java.Il lato .net supporta XmlReader e XmlWriter, mentre il lato Java supporta SAX, StAX e DOM.Entrambi supportano anche lo streaming e l'I/O di lettura/scrittura.DataDirect dispone anche di un motore XQuery ottimizzato per unire dati relazionali con EDI e XML, ma è solo Java.

Microsoft BizTalk Server fa un ottimo lavoro in questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top