Narazil jsem teď na takový zvláštní projekt a nedá mi to tady nenapsat. Jedna firma, která intenzivně pracuje s XML soubory, si udělala vlastní ala-xsd formát, který ji umožňuje volat validační metody v Javě v průběhu validace XML souboru. Tzn. můžou validovat věci i jako je PSČ, oproti databázi. Use case je asi ten, že prostě mají xml s daty, k němu si napíšou to alá-xsd a dají oba sobory jako input do utilitky, která jim to ovaliduje. Příjde mi to nicméně takové podivné:
1. K čemu je samotná validace xml bez následného načtení xml např kvůli vložení do db? V tom připadě, standardní způsob je si prostě udělat modelové třídy xml souboru, obohatit to třeba o Hibernate Validator (přes anotace vč. custom validací). Tzn. tady v tomto use case já můžu jednoznačně validovat až na straně javy a nepotřebuju takový zbytečný alá-xsd formát, protože stejně potřebuju mít modelové třídy.
2. Řekněme, že z nějakého úchylného důvodu ja budu chtít XML opravdu jen validovat a dál s jeho obsahem nijak nepracovat. V tom případě opět nechápu, proč se trápit s takovýmto alá-xsd frameworkem - vždyť místo alá-xsd si k tomu xmlku napíšu obyčejné POJO třídy, opět si tam dám standardní Hibernate Validator anotace, a jako input do té utilitky si dám prostě to xmlko a to POJO. Bude to 100x lepší, než se štvát s nějakým takovým zbytečným frameworkem, protože budu mít statickou typovou kontrolu a podle mě to bude v Javě i pěknější.
Co mi příjde zvláštní, ta firma to má očividně jako svůj produkt a asi se to snaží prodávat. Musím říct že teď, po tom, co jsem viděl, se mi k nim moc nechce. Navíc to, co oni vytvořili, přesně umí Saxon Processor, který je placený, pomocí XSD 1.1 assertion dokáže zavolat javovskou metodu z classpath.
Podle mě by se teda takovéto věci neměly dít, přecejen člověk by se měl nejprve trochu zamyslet, než něco začne takového vyrábět :/