GNOME Bugzilla – Bug 170489
Ignored attribute declaration in DTD
Last modified: 2009-08-15 18:40:50 UTC
xmllint --valid --noout objednavka.xml gives objednavka.xml:24: element Po─Źet: validity error : No declaration for attribute jednotka of element Po─Źet <Po─Źet jednotka="ks">1</Po─Źet> ^ objednavka.xml:31: element Po─Źet: validity error : No declaration for attribute jednotka of element Po─Źet <Po─Źet jednotka="kg">2.5</Po─Źet> But it should pass without errors because attribute "jednotka" is declared in DTD. Other parsers (I tried Xerces-J, MSXML3) validate this document without problems. It seems that Bugzilla doesn't allow to attach test files. So I'm placing them here inlime: objednavka.dtd: <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT objednavka (AdDoručeni, AdÚčtovací, ZpůsobDopravy, ZpůsobPlatby, DatumPřijetí, DatumDoručení, ObsahObjednávky, Komentář?)> <!ELEMENT AdDoručeni (Jméno, Ulice, Město, PSČ)> <!ELEMENT AdÚčtovací (Jméno, Ulice, Město, PSČ)> <!ELEMENT Jméno (#PCDATA)> <!ELEMENT Ulice (#PCDATA)> <!ELEMENT Město (#PCDATA)> <!ELEMENT PSČ (#PCDATA)> <!ELEMENT ZpůsobDopravy (#PCDATA) > <!ELEMENT ZpůsobPlatby (#PCDATA) > <!ELEMENT DatumPřijetí (#PCDATA)> <!ELEMENT DatumDoručení (#PCDATA)> <!ELEMENT ObsahObjednávky (Zboží+) > <!ELEMENT Zboží (Kód, Název, Počet, Cena, Popis?) > <!ELEMENT Kód (#PCDATA)> <!ELEMENT Název (#PCDATA) > <!ELEMENT Počet (#PCDATA)> <!ELEMENT Cena (#PCDATA) > <!ELEMENT Popis (#PCDATA) > <!ELEMENT Komentář (Řádka*) > <!ELEMENT Řádka (#PCDATA)> <!ATTLIST Počet jednotka (ks | kg | m2 | m) #IMPLIED> objednavka.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE objednavka SYSTEM "objednavka.dtd"> <objednavka> <AdDoručeni> <Jméno>Jan Novák</Jméno> <Ulice>Bělehradská 147</Ulice> <Město>Praha 2</Město> <PSČ>12000</PSČ> </AdDoručeni> <AdÚčtovací> <Jméno>Petra Nováková</Jméno> <Ulice>Anglická 15</Ulice> <Město>Praha 2</Město> <PSČ>12000</PSČ> </AdÚčtovací> <ZpůsobDopravy>DPD</ZpůsobDopravy> <ZpůsobPlatby>dobírka</ZpůsobPlatby> <DatumPřijetí>2004-11-14</DatumPřijetí> <DatumDoručení>2004-11-19</DatumDoručení> <ObsahObjednávky> <Zboží> <Kód>2N7-516</Kód> <Název>Sekačka na trávu</Název> <Počet jednotka="ks">1</Počet> <Cena>2999</Cena> <Popis>http://example.org/sekacka.html</Popis> </Zboží> <Zboží> <Kód>Q3Y-116</Kód> <Název>Travní semeno</Název> <Počet jednotka="kg">2.5</Počet> <Cena>127.50</Cena> </Zboží> </ObsahObjednávky> <Komentář> <Řádka>O dodávku mám zájem pouze v případě, že se jedná o trávu v odrůdě konopí.</Řádka> <Řádka>Dále jsem se chtěl zeptat, zda je doprava zdarma.</Řádka> </Komentář> </objednavka>
This problem doesn't seem to occur on the latest (2.6.18) release. Could you update your libxml2 and see if that fixes it for you? Bill
I'm on the Windows and the latest version available here is 20617CVS2313. I get the same error message with it.
Severity back to normal by lack of information. Jirka, bugzilla *do* allow to attach files and we *need* a pristine file for any debug. Daniel
Created attachment 51203 [details] File that demonstrates problem File that demonstrates problem
Created attachment 51204 [details] DTD where some attribute declarations are ignored by xmllint
OK, files are attached. I didn't spot link for attaching files previously. Sorry for that.
Dohh, a real parser bug, congratulation ! Bad combination of characters, CR/LF line ending in a DTD :-\ paphio:~/XML -> xmllint --noout --valid test/valid/objednavka.xml paphio:~/XML -> This is fixed in CVS, I added your example to the test suite too, thanks a lot, sorry for the delay but that bug had no chance to be caught with a cut and paste from a web page :-) Daniel
This should be closed by release of libxml2-2.6.21, thanks, Daniel