2008-09-15 5 views
3

Мы ищем библиотеку или движок Transformation, которые могут считывать любые входные данные (файлы EDIfact, CSV, XML и т. Д. Таким образом, файлы (или результаты веб-сервисов), содержащие данные, которые необходимо преобразовать в известную структуру бизнес-объектов.) Эти данные должны быть преобразованы в существующий бизнес-объект с использованием пользовательских правил. XSLT как сложный (учиться), так и простой (недостаточно функций)Есть ли механизм трансформации или библиотека, использующая .NET?

Может ли кто-нибудь рекомендовать библиотеку или движок C#? Я видел Altova MapForce, но хотел бы что-то, что я могу отправить десяткам людей, которые будут строить/разрабатывать свои собственные преобразования без необходимости платить десятки лицензий Altova.

ответ

3

Если вы считаете, что XSLT является слишком сложным для вас, я думаю, вы можете попробовать LINQ к XML для синтаксического анализа XML-файлов. Он интегрирован в платформу .NET, и вы можете использовать C# (или, если вы используете VB.NET 9.0, лучше из-за XML-литералов) вместо изучения другого языка. Вы можете интегрировать его с существующим приложением без особых усилий и с несовпадением парадигмы между языком и управлением файлами, которое происходит с XSLT.

Microsoft LINQ to XML

Конечно, это не рамки или библиотека для разбора файлов, но ни XSLT это, так что ...

1

Я бы не стал так быстро отклонять XSLT как слишком сложный или не содержащий требуемые функции.

Есть много книг/сайтов, которые описывают все, что вам нужно знать о XSLT. Да, есть немного кривой обучения, но для этого не требуется многого, и вам всегда нужно отличное сообщество, такое как stackoverflow, если вам нужна помощь ;-)

Что касается отсутствия функций, всегда может расширять xslt и вызывать сборки .NET из xslt с помощью метода XsltArgument.AddExtensionObject() , который даст вам необходимую вам мощность.

MSDN имеет отличный пример использования этого here

Это правда, что приложения MapForce и Biztalk делают создание XSLT очень легко, но они также стоят немного. Кроме того, в зависимости от вашей базы пользователей (при условии, что не разработчики), я думаю, вы обнаружите, что у этих приложений есть собственные кривые обучения и часто слишком богаты тем, что вам нужно.

Я бы рекомендовал вам рассмотреть возможность создания и распространения собственного настраиваемого инструмента сопоставления, соответствующего вашим потребностям пользователей.

Кроме того, если вам нужна библиотека, чтобы помочь с преобразования файлов я бы рекомендовал FileHelpers на SourceForge

2

XSLT не будет работать для ЭОД и CSV. Если вам нужен полностью общий механизм преобразования, вам, возможно, придется выложить деньги. Я использовал Symphonia для работы с EDI, и это сработало, но оно не является бесплатным.

Проблема заключается в том, что вы описываете звуки «enterpriseisey» (я уверен, что никто не использует EDI для удовольствия), поэтому нет никакого открытого/бесплатного инструментария для работы с этим материалом.

+0

Хех, смешно, как все это получается. Я один из разработчиков Symphonia и связанных с ними инструментов. Если кто-то заинтересован, не стесняйтесь обращаться ко мне. – 2009-05-19 21:33:07

1

В DataDirect Technologies есть продукт, который выполняет именно это. В http://www.xmlconverters.com/ есть библиотека под названием XmlConverters, которая преобразует EDI в XML и наоборот.Существуют также конвертеры для CSV, JSON и других форматов. Библиотеки доступны как 100% .net управляемый код, так и параллельный порт в 100% Java. Сторона .net поддерживает XmlReader и XmlWriter, а сторона Java поддерживает SAX, StAX и DOM. Оба устройства поддерживают поток и ввод/вывод считывателя/записи. DataDirect также имеет движок XQuery, оптимизированный для объединения реляционных данных с EDI и XML, но это только Java.