Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule porównuje LINQ to XML z następującymi technologiami XML: XmlReader, XSLT, MSXML i XmlLite. Te informacje mogą pomóc w podjęciu decyzji o tym, które technologie mają być używane.
Aby zapoznać się z porównaniem linQ to XML z modelem obiektów dokumentów (DOM), zobacz LINQ to XML a DOM.
LINQ to XML a XmlReader
XmlReader jest szybkim, jednokierunkowym, niebuforującym analizatorem.
LINQ to XML jest implementowany na platformie XmlReaderi jest ściśle zintegrowany. Można jednak również użyć XmlReader bezpośrednio.
Załóżmy na przykład, że tworzysz usługę sieci Web, która analizuje setki dokumentów XML na sekundę, a dokumenty mają taką samą strukturę, co oznacza, że trzeba napisać tylko jedną implementację kodu, aby przeanalizować kod XML. W takim przypadku prawdopodobnie chcesz użyć XmlReader bezpośrednio.
Natomiast jeśli tworzysz system, który analizuje wiele mniejszych dokumentów XML, a każdy z nich jest inny, warto skorzystać z ulepszeń produktywności zapewnianych przez LINQ to XML.
LINQ to XML a XSLT
Zarówno LINQ to XML, jak i XSLT zapewniają rozbudowane możliwości przekształcania dokumentów XML. XSLT to podejście deklaratywne oparte na regułach. Zaawansowani programiści XSLT piszą XSLT w funkcjonalnym stylu programowania, który podkreśla podejście bezstanowe. Przekształcenia można zapisywać przy użyciu czystych funkcji, które są implementowane bez skutków ubocznych. To podejście oparte na regułach lub funkcjonalne jest nieznane wielu deweloperom i może być trudne i czasochłonne do nauki.
XSLT może być wydajnym systemem, który daje aplikacje o wysokiej wydajności. Na przykład niektóre duże firmy internetowe używają języka XSLT jako sposobu generowania kodu HTML z kodu XML, który został pobrany z różnych rodzajów magazynów danych. Zarządzany aparat XSLT kompiluje kod XSLT do kodu środowiska uruchomieniowego języka wspólnego (CLR) i działa jeszcze lepiej w niektórych scenariuszach niż natywny aparat XSLT.
Jednak XSLT nie korzysta z wiedzy języka C# i Visual Basic, którą ma wielu deweloperów. Wymaga to od deweloperów pisania kodu w innym i złożonym języku programowania. Użycie dwóch niezintegrowanych systemów programistycznych, takich jak C# (lub Visual Basic) i XSLT, skutkuje systemami oprogramowania, które są trudniejsze do opracowywania i konserwacji.
Kiedy opanujesz korzystanie z wyrażeń zapytań LINQ to XML, przekształcenia LINQ to XML będą potężną technologią, która jest łatwa w użyciu. Zasadniczo dokument XML jest tworzony przy użyciu konstrukcji funkcjonalnej, ściągania XElement danych z różnych źródeł, tworzenia obiektów dynamicznie i tworzenia całości w nowym drzewie XML. Przekształcenie może wygenerować zupełnie nowy dokument. Konstruowanie przekształceń w linQ to XML jest stosunkowo łatwe i intuicyjne, a wynikowy kod jest czytelny. Zmniejsza to koszty programowania i konserwacji.
LINQ to XML nie ma na celu zastąpienia XSLT. XSLT jest nadal narzędziem do wyboru w przypadku skomplikowanych i skoncentrowanych na dokumentach przekształceń XML, zwłaszcza jeśli struktura dokumentu nie jest dobrze zdefiniowana.
XSLT ma przewagę nad standardem World Wide Web Consortium (W3C). Jeśli masz wymaganie, że używasz tylko technologii, które są standardami, XSLT może być bardziej odpowiednie.
XSLT to KOD XML i dlatego można go programowo manipulować.
LINQ to XML kontra MSXML
MSXML to technologia oparta na modelu COM do przetwarzania kodu XML dołączonego do systemu Microsoft Windows. Program MSXML zapewnia natywną implementację modelu DOM z obsługą bibliotek XPath i XSLT. Zawiera również analizator SAX2, niebuforujący, oparty na zdarzeniach.
Program MSXML działa dobrze, jest domyślnie bezpieczny w większości scenariuszy i może być dostępny w przeglądarce do wykonywania przetwarzania XML po stronie klienta w aplikacjach w stylu AJAX. Program MSXML może być używany z dowolnego języka programowania obsługującego język COM, w tym C++, JavaScript i Visual Basic 6.0.
Program MSXML nie jest zalecany do użycia w kodzie zarządzanym na podstawie środowiska CLR.
LINQ do XML vs. XmlLite
XmlLite to parser bez buforowania, jednokierunkowy, działający na żądanie. Deweloperzy korzystają głównie z biblioteki XmlLite z językiem C++. Nie zaleca się, aby deweloperzy używali interfejsu XmlLite z kodem zarządzanym.
Główną zaletą xmllite jest to, że jest to lekki, szybki analizator XML, który jest bezpieczny w większości scenariuszy. Jego obszar powierzchni zagrożenia jest mały. Jeśli musisz przeanalizować niezaufane dokumenty i chcesz chronić przed atakami, takimi jak odmowa usługi lub ujawnienie danych, rozwiązanie XmlLite może być dobrym rozwiązaniem.
XmlLite nie jest zintegrowany z Language-Integrated Query (LINQ). Nie daje to ulepszeń produktywności programistów, które są siłą motywającą LINQ.