Sdílet prostřednictvím


LINQ to XML vs. jiné technologie XML

Tento článek porovnává LINQ to XML s následujícími technologiemi XML: XmlReader, XSLT, MSXML a XmlLite. Tyto informace vám můžou pomoct při rozhodování, které technologie se mají použít.

Porovnání LINQ to XML s modelem DOM (Document Object Model) najdete v tématu LINQ to XML vs. DOM.

LINQ to XML vs. XmlReader

XmlReader je rychlý analyzátor bez ukládání do mezipaměti.

LINQ to XML je implementováno nad XmlReadera jsou úzce integrované. Můžete ale také použít XmlReader přímo.

Předpokládejme například, že vytváříte webovou službu, která bude analyzovat stovky dokumentů XML za sekundu a dokumenty mají stejnou strukturu, což znamená, že k parsování XML stačí napsat jenom jednu implementaci kódu. V takovém případě byste pravděpodobně chtěli použít XmlReader přímo.

Naproti tomu pokud vytváříte systém, který analyzuje mnoho menších dokumentů XML a každý z nich se liší, měli byste využít vylepšení produktivity, která poskytuje LINQ to XML.

LINQ to XML vs. XSLT

LinQ to XML i XSLT poskytují rozsáhlé možnosti transformace dokumentů XML. XSLT je deklarativní přístup založený na pravidlech. Pokročilí programátoři XSLT píší XSLT ve stylu funkčního programování, který zdůrazňuje bezstavový přístup. Transformace je možné zapsat pomocí čistých funkcí, které jsou implementovány bez vedlejších účinků. Tento přístup založený na pravidlech nebo funkčním přístupu není pro mnoho vývojářů neznámý a může být obtížné a časově náročné se učit.

XSLT může být produktivní systém, který přináší vysoce výkonné aplikace. Například některé velké webové společnosti používají XSLT jako způsob, jak generovat HTML z XML, který byl načítaný z různých druhů úložišť dat. Spravovaný modul XSLT zkompiluje XSLT do kódu CLR (Common Language Runtime) a v některých scénářích funguje ještě lépe než nativní modul XSLT.

XSLT ale nevyužívá znalosti jazyka C# a Jazyka Visual Basic, které má mnoho vývojářů. Vyžaduje, aby vývojáři napsali kód v jiném a složitém programovacím jazyce. Použití dvou neintegrovanou vývojových systémů, jako je C# (nebo Visual Basic) a XSLT, má za následek vývoj a údržbu softwarových systémů, které jsou obtížnější vyvíjet a udržovat.

Jakmile se seznámíte s používáním výrazů dotazů LINQ to XML, jsou transformace LINQ to XML výkonnou technologií, která se snadno používá. V podstatě vytvoříte dokument XML pomocí funkční konstrukce, načítáte data z různých zdrojů, dynamicky vytváříte XElement objekty a sestavujete celý soubor do nového stromu XML. Transformace může vygenerovat zcela nový dokument. Vytváření transformací v JAZYCE LINQ to XML je relativně snadné a intuitivní a výsledný kód je čitelný. Tím se sníží náklady na vývoj a údržbu.

LINQ to XML není určen k nahrazení XSLT. XSLT je stále nástrojem pro složité a dokumentově orientované transformace XML, zejména pokud struktura dokumentu není dobře definovaná.

XSLT má výhodu, že je standardem W3C (World Wide Web Consortium). Pokud požadujete, abyste používali pouze technologie, které jsou standardy, může být vhodnější XSLT.

XSLT je XML a proto může být programově manipulováno.

LINQ to XML vs. MSXML

MSXML je technologie založená na modelu COM pro zpracování XML, která je součástí systému Microsoft Windows. MSXML poskytuje nativní implementaci DOM s podporou XPath a XSLT. Obsahuje také analyzátor SAX2, který není v mezipaměti založený na událostech.

MSXML funguje dobře, je ve většině scénářů zabezpečený a je přístupný v prohlížeči pro zpracování XML na straně klienta v aplikacích ve stylu AJAX. MSXML lze použít z libovolného programovacího jazyka, který podporuje com, včetně C++, JavaScriptu a Jazyka Visual Basic 6.0.

MSXML se nedoporučuje používat ve spravovaném kódu založeném na CLR.

LINQ to XML vs. XmlLite

XmlLite je ukládání do mezipaměti, pouze předávání a vyžádání analyzátoru. Vývojáři primárně používají XmlLite s jazykem C++. Nedoporučuje se, aby vývojáři používali XmlLite se spravovaným kódem.

Hlavní výhodou XmlLite je, že je to jednoduchý a rychlý analyzátor XML, který je ve většině scénářů zabezpečený. Jeho prostor pro hrozby je malý. Pokud potřebujete analyzovat nedůvěryhodné dokumenty a chcete chránit před útoky, jako je odepření služby nebo vystavení dat, může být dobrou volbou XmlLite.

XmlLite není integrovaný s jazykově integrovaným dotazem (LINQ). Nepřináší vylepšení produktivity programátora, která jsou motivační silou za LINQ.

Viz také