Hi all,
just to let you know, I found at least two causes for triggering this fake
DTD validation problem, and I've found a solution for both:
1. If your path contains backslashes, it won't work; this can be mitigated
with replacing backslashes with forward slashes prior to writing the path.
2. If you path contains spaces, it won't work; this can be mitigated with
replacing each space with a %20. There a a lot of spaces on the Windows
platform, starting with the project dir, for example: <username>\My
Documents\Visual Studio 2012\Projects\<ProjectName>\Debug\mydtd.dtd. How
many spaces did you count?

Using both of these workarounds made my programs validate XML documents
normally, without any hickups.

I'd expect that:
 - in the future, libxml will spit out a more sensible error message than
"Validation failed: no DTD found" for such errors - after all, it was the
file that was not found.
 - issue #1 is technically a bug in libxml, however it's platform-specific
and the workaround in pretty easy, do I am guessing that it will be most
likely left alone - unless of course libxml author(s) want to claim that
it's standards compliant (so the platform-specific stuff will have to be
added).
 - issue #2 should be fixed as it is, in fact a real bug in libxml,
regardless the platform of choice.

All you need to do is check the external entities in the XML standard:
http://www.w3.org/TR/REC-xml/#sec-external-ent
and follow it all the way to the format of *SystemLiteral*:
http://www.w3.org/TR/REC-xml/#NT-SystemLiteral
You'll find that space is in fact, a valid character - and so is backslash:
SystemLiteral   ::=   ('"' [^"]* '"') | ("'" [^']* "'") Only single and
double quote characters are forbidden; both backslash and spaces (plus a
bunch of others that I guess won't work like 0x0A, 0x0D) are permitted in
*SystemLiteral*.

If you keep reading further, you'll notice that the tightly restricted
*PubidLiteral* also allows for spaces specifically (but not backslashes):

PubidLiteral   ::=   '"' PubidChar<http://www.w3.org/TR/REC-xml/#NT-PubidChar>*
'"' | "'" (PubidChar <http://www.w3.org/TR/REC-xml/#NT-PubidChar> - "'")*
"'"
PubidChar   ::=   #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]

I am hope you'll have time to fix it eventually; thank you in advance.
Happy New Year to you all!



Best regards: Zoltán Ördögh


On Sun, Apr 28, 2013 at 2:36 PM, Zoltán Ördögh (GMail) <csi...@gmail.com>wrote:

> Hi,
> not a lot of help I know, but this is all I have to offer right noww.
>
> I think, Ubuntu does upgrades pretty well. I have upgraded from 9.x to
> 12.x each release (have not tried 13.x yet) and I had only one minor
> problem (with grub), so I'd like to think you can rule out the upgrade
> issue. But, yes, do give it a try if you have the time - you never know.
>
> It's the ghost in the machine :-)
>
>
> Best regards: Zoltán Ördögh
>
>
> On Sun, Apr 28, 2013 at 1:32 PM, brezhoneg1 <brezhon...@yahoo.fr> wrote:
>
>>  Hi
>>
>>    thanks a lot for your response
>>
>>    So far, it occurs on a Ubuntu13.04 32-bits (an upgrade from
>> Ubuntu12.10 which already was an upgrade from Ubuntu12.04). These two
>> upgrades went without problems, but maybe a clean installation from
>> scratch  would
>>  be better to avoid risks of silent misfunctioning due to a bad cleanup
>> of a previous version. For 64 bits, I don't know yet (not tested), but I
>> guess this bug is likely to be on all platforms, since you've got it on
>> Windows too.
>>
>>   Anyway, the programs run very well, except they emit hundreds of
>> irrelevant error messages that will surely scare end users for nothing !
>>
>> Best Regards
>> E. Lintari
>>
>> Le 28/04/2013 17:08, Zoltán Ördögh (GMail) a écrit :
>>
>> Hi,
>> thanks for checking in.
>>
>> As far as I know, there is no solution for this problem yet.
>> Daniel recommended to debug into xmllib to find out what the problem
>> might be - I simply don't have the bandwidth to do that.
>> So, I opted for avoiding the problem as a whole by downgrading to 2.8.0.
>>
>> I guess this makes the fix more urgent - it's a bit harded to downgrade
>> Ubuntu deployments.
>> Is this happening on a 32bit distribution, 64bit or both?
>>
>> Best regards: Zoltán Ördögh
>>
>>
>> On Sun, Apr 28, 2013 at 6:29 AM, brezhoneg1 <brezhon...@yahoo.fr> wrote:
>>
>>> Hi,
>>>
>>>    I just upgraded to Ubuntu13.04 that comes with libxml2.9.0, and I
>>> experience these exact same errors.
>>>    C++ programs that used to work very fine with previous versions now
>>> show all these errors when compiled on this
>>>    new Linux version. When using xmllint, everything's ok though. These
>>> programs load a DTD from a local file in the form of
>>> /home/user/prg/application.dtd then read XML files that use this DTD.
>>>
>>>    Was the problem eventually fixed for your case ? If so, what was the
>>> underlying issue, since it is most likely the same one ?
>>>
>>> Regards
>>> E. Lintari
>>>
>>>
>>
>>
>
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to