11.7. Walidacja dokumentu XML

Podziękowania dla Mauro Cicio

Problem

Chcemy sprawdzić, czy dokument XML zgodny jest z pewnym schematem lub definicją DTD.

Rozwiązanie

Niestety, w chwili obecnej brak jest stabilnej biblioteki umożliwiającej walidację dokumentów XML, stworzonej w języku Ruby. Trzeba więc sięgnąć po którąś z bibliotek napisanych w języku C, najlepiej zestaw narzędziowy GNOME libxml2 (obecnie istnieją dwa bindowania dla tej biblioteki, należy wykorzystać to zawarte w gemie libxml-ruby).

Aby sprawdzić zgodność dokumentu XML z definicją DTD, należy utworzyć stosowny obiekt Dtd i przekazać go jako argument wywołania metody Document#validate. Analogicznie, chcąc sprawdzić zgodność dokumentu ze schematem, należy utworzyć w tym ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.