środa, 9 grudnia 2009

xmllint z opcją dtdvalid

Xmllint ma użyteczną opcję, która pozwala sprawdzić poprawność pliku .xml względem zewnętrznego pliku DTD, tj. plik nie musi zawierać deklaracji DOCTYPE. Wygląda jednak, że implementacja tegoż zawiera poważne błędy. O tyle sprawa jest dziwna, że w google na ten temat nic nie ma a błąd jest tak oczywisty, że powinno być. Przykładowe DTD (A.dtd):


<!ELEMENT a (#PCDATA) >
<!ATTLIST a b CDATA "Wartosc domyslna" >
<!ENTITY e "Tresc encji" >

Przykładowy plik (A.xml):


<?xml version="1.0" encoding='ISO-8859-2'?>
<!-- <!DOCTYPE a SYSTEM "A.dtd"> -->
<a>Przykład encji: &e;</a>

teraz uruchomienie xmllint z opcją dtdvalid:


$ xmllint --dtdvalid A.dtd A.xml
A.xml:3: parser error : Entity 'e' not defined

kończy się błędem...

wtorek, 1 grudnia 2009

Boczniak ostrygowaty 2009

Przytargałem dziś 2,6 kg. A pięć razy tyle zostało na drzewie... Do tej pory rok grzybowo słabiutki ale przecież się jeszcze nie skończył...