To zní zajímavě, ale pokud vím, Saxon neumí přímo zapisovat do MySQL. Byla tam sice potřebná nějaká logika, ale s tou si XSLT snadno poradilo. Poradí si Saxon třeba i s apostrofy v datech? V injektovaném PHP jsem na to použil prepared statements.
Saxon je jen XSLT 3.0 procesor s nějakými rozšířeními. Placená verze má rozšíření SQL, ale já jsem takové věci řešil tak, že jsem pomocí XSLT vygeneroval SQL skript. Kdyb potřeboval přímo při práci s XML spouštět SQL příkazy, spíš bych to napsal v Groovy nebo Javě. Pokud bych to řešil v XSLT, apostrofy v datech bych asi vyřešil funkcí
replace.
Do Saxonu se dají psát i vlastní funkce a rozšíření, ale už to není tak jednoduché, takže pro jednorázovou věc se to nevyplatí.
Ale ono to hodně závisí na konkrétní situaci. Někdy jsem to XML třeba potřeboval nejdřív prozkoumat, takže jsem psal různé XPath výrazy, abych zjistil, co je tam vlastně za data. A pak už jsem měl sadu XPath výrazů, které stačilo jen trochu obalit do XSLT a bylo hotovo. Jindy k tomu zase potřebuju dodělat stažení souboru odnkěud z HTTP, rozzipování, nějaké zpracování textů uvnitř elementů. A to XML je jen posloupnost záznamů, vpodstatě XSV převedené do XML – tak to radši zpracuju v Javě nebo Groovy, protože pracuju vždy jen s jedním záznamem, takže bych nevyužil sílu XSLT, a dokážu tak zpracovat potenciálně nekonečný XML.