Приветствую, народ, подскажите наиболее быстрый способ создания XML для следующего функционала:
с сервера А на сервер С, через некоторое транзитное звено — Б передаются некоторые данные большого объёма. Сервер А отдаёт в некотором своём формате, сервер Б принимает в своём (ну здесь просто XML согласно своей XSD, в данном случае не суть важно)
задача сервера С — принять от сервера А, преобразовать в XML-формат для сервера Б.
поскольку объёмы данных велеки и передача данных осуществляется каждые 10-15 минут, сервер С должен осуществлять это преобразование достаточно быстро, на лету...
подскажите, используя какое именно АПИ, какую технику (технологию и т.д.) следует применить на сервере С, что бы достичь максимально возможной производительности (такие факторы как ширина канала, прочие алгоритмы и т.д. здесь можно не учитывать, интересует исключительно способ генерирования XML в соответствии с используемой схемой)
большое спасбо
Re: Быстрый способ создания XML
От:
Аноним
Дата:
30.10.07 16:06
Оценка:
я прошу прощения, уже под конец дня глаза что говорится "вылезают"... этот вопрос следует читать так:
с сервера А на сервер С, через некоторое транзитное звено — Б передаются некоторые данные большого объёма.
Сервер А отдаёт в некотором своём формате, сервер С принимает в своём (ну здесь просто XML согласно своей XSD, в данном случае не суть важно)
задача сервера Б — принять от сервера А, преобразовать в XML-формат для сервера С.
поскольку объёмы данных велеки и передача данных осуществляется каждые 10-15 минут, сервер Б должен осуществлять это преобразование достаточно быстро, на лету...
подскажите, используя какое именно АПИ, какую технику (технологию и т.д.) следует применить на сервере Б, что бы достичь максимально возможной производительности (такие факторы как ширина канала, прочие алгоритмы и т.д. здесь можно не учитывать, интересует исключительно способ генерирования XML в соответствии с используемой схемой)
Здравствуйте, Аноним, Вы писали:
А>поскольку объёмы данных велеки и передача данных осуществляется каждые 10-15 минут, сервер С должен осуществлять это преобразование достаточно быстро, на лету...
XmlReader и XmlWriter — как раз таки можете разбирать входной XML-поток и одновременно писать в выходной XML-поток.
Здравствуйте, <Аноним>, Вы писали:
А>с сервера А на сервер С, через некоторое транзитное звено — Б передаются некоторые данные большого объёма. А>Сервер А отдаёт в некотором своём формате, сервер С принимает в своём (ну здесь просто XML согласно своей XSD, в данном случае не суть важно) А>задача сервера Б — принять от сервера А, преобразовать в XML-формат для сервера С.
А>поскольку объёмы данных велеки и передача данных осуществляется каждые 10-15 минут, сервер Б должен осуществлять это преобразование достаточно быстро, на лету...
А>подскажите, используя какое именно АПИ, какую технику (технологию и т.д.) следует применить на сервере Б, что бы достичь максимально возможной производительности (такие факторы как ширина канала, прочие алгоритмы и т.д. здесь можно не учитывать, интересует исключительно способ генерирования XML в соответствии с используемой схемой)
А>(C#; .NET Framework 2.0)
XSLT трансформация. Пишете XSLT файл в котором описываете шаблоны по которым будет производится исходного XML в целевой XML и используете XslTransform.
По поводу XslTransform — это класс от первого фреймворка, во втором он помечен как deprecated и предлагается использовать новый XslCompiledTransform.
Однако, не знаю почему, но XslCompiledTransform работает на несколько порядков медленнее чем XslTransform...
Поэтому я пока во втором фреймворке продолжаю пользовать XslTransform не обращая внимания на эти ворнинги:
Warning 1 'System.Xml.Xsl.XslTransform' is obsolete: 'This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202'
возможно ктото подскажет чем (кроме XslTransform) во втором фреймворке можно произвести трансформацию также быстро как с помощью XslTransform?
Здравствуйте, Аноним, Вы писали:
А>Приветствую, народ, подскажите наиболее быстрый способ создания XML
Я извиняюсь за туповатую идею, но если передаётся примерно та же структура, что и исходная, то может чисто заменить теги как подстроки?
Для своего проекта выбрал JSON — тоже посмотрите.
Здравствуйте, matumba, Вы писали:
А>>Приветствую, народ, подскажите наиболее быстрый способ создания XML
M>Я извиняюсь за туповатую идею, но если передаётся примерно та же структура, что и исходная, то может чисто заменить теги как подстроки?
Здравствуйте, _Morpheus_, Вы писали:
M>>Я извиняюсь за туповатую идею, но если передаётся примерно та же структура, что и исходная, то может чисто заменить теги как подстроки?
_M_>это опятьже лучше сделать с помощью XSLT
Здравствуйте, Lloyd, Вы писали:
M>>>Я извиняюсь за туповатую идею, но если передаётся примерно та же структура, что и исходная, то может чисто заменить теги как подстроки?
_M_>>это опятьже лучше сделать с помощью XSLT
L>Отнюдь
XSLT это крайне медленный способ создания XML. Самый быстрый — рукопашная запись в TextWriter строк. Почти такой же быстрый — XmlWriter. Если требуется сложная нелинейная манипуляция над деревом, то, наверное, сейчас самый быстрый способ — использовать XDocument.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>