Funkcionális és eljárási programozás (LINQ–XML)

Az XML-alkalmazásoknak különböző típusai vannak:

  • Egyes alkalmazások forrás XML-dokumentumokat használnak, és olyan új XML-dokumentumokat hoznak létre, amelyek más formátumúak, mint a forrásdokumentumok.
  • Egyes alkalmazások forrás XML-dokumentumokat használnak, és az eredménydokumentumokat teljesen más formában állítják elő, például HTML- vagy CSV-szövegfájlokat.
  • Egyes alkalmazások forrás XML-dokumentumokat használnak, és rekordokat szúrnak be egy adatbázisba.
  • Egyes alkalmazások más forrásból, például adatbázisból vesznek adatokat, és XML-dokumentumokat hoznak létre belőle.

Ezek nem az XML-alkalmazások összes típusa, de ezek az XML-programozók által implementálandó funkciók reprezentatív készletei.

Az ilyen típusú alkalmazások esetében a fejlesztők két ellentétes megközelítést alkalmazhatnak:

  • Funkcionális építés deklaratív megközelítéssel.
  • Memóriabeli XML-fa módosítása eljárási kóddal.

A LINQ–XML mindkét módszert támogatja.

A funkcionális megközelítés használatakor olyan átalakításokat írhat, amelyek a forrásdokumentumokat használják, és teljesen új eredménydokumentumokat hoznak létre a kívánt alakzattal.

Az XML-fa módosításakor olyan kódot kell írnia, amely bejárja és végigjárja a memóriában lévő XML-fa csomópontjait, szükség szerint beszúrja, törli és módosítja a csomópontokat.

A LINQ-t bármelyik megközelítéssel XML-hez használhatja. Ugyanazokat az osztályokat és bizonyos esetekben ugyanazokat a metódusokat használja. A két megközelítés struktúrája és céljai azonban eltérőek. Különböző helyzetekben például az egyik vagy a másik megközelítés gyakran jobb teljesítményt nyújt, és több vagy kevesebb memóriát használ. Emellett az egyik vagy a másik megközelítés könnyebben írható és kezelhetőbb kódokat eredményez.

A két megközelítés kontrasztjának megtekintéséhez lásd a memóriában lévő XML-fa módosítását és a funkcionális szerkezetet.

A funkcionális átalakítások írásáról szóló oktatóanyagért lásd : Bevezetés a tiszta funkcionális átalakítások használatába.