Есть ли механизм трансформации или библиотека, использующая .NET? - PullRequest
3 голосов
/ 15 сентября 2008

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

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

Ответы [ 5 ]

3 голосов
/ 15 сентября 2008

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

Microsoft LINQ to XML

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

2 голосов
/ 15 сентября 2008

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

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

1 голос
/ 29 декабря 2008

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.

1 голос
/ 15 сентября 2008

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

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

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

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

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

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

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

0 голосов
/ 15 сентября 2008

Microsoft BizTalk Server очень хорошо справляется с этой задачей.

...