Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Maximize ROI with Qlik Professional Services – Expert Guidance, Faster Results: Explore Qlik Services
cancel
Showing results for 
Search instead for 
Did you mean: 
Anders_Eriksson
Partner - Specialist
Partner - Specialist

Valid XML no longer supported by Qlik!

For an XML document to be valid it needs a Document Type Declaration (DTD).
In it's simplest form this looks like;

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE root>

<root>

     something here

</root>

QlikView 11 and 11.2 was fine reading such an XML document.
As of QlikView 12 and also in Qlik Sense this generates an error on the second row (the DTD)!

Reply from R&D through support is that it is working as expected!?!
Their solution is to remove the DTD before reading the file in QlikView.

<?xml version="1.0" encoding="UTF-8"?>

<root>

     something here

</root>

But then it is no longer a valid XML document!

According to W3C an XML document must have a Document Type Declaration to be valid.

Without the DTD it might be well formed (readable with matching tags) but can never be valid.

Many XML-documents in circulation are missing the DTD and thus are well formed but not valid.

Conclusion, Qlik no longer supports valid XML!
R&D claims it to be for security reasons.
Has to be when using external DTD-file reference

but then it could read the XML document  and ignore the DTD.

Claiming XML support but refusing to read any valid XML document is a contradiction.

Labels (3)
10 Replies
rbecher
MVP
MVP

I do agree but I think the creator of the XML file is responsible for a validation. To be sure an XML document is valid you could do a check with an external program before loading it into Qlik.

Astrato.io Head of R&D
rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP

I can understand the concern with an external DTD, especially since a DTD can add data.  But I would vote for ignoring the DTD with a warning for compatibility sake.

-Rob

Anders_Eriksson
Partner - Specialist
Partner - Specialist
Author

Yes, but that's not the point.

Qlik refuses to read the document instead throws an error.
Since the file is a valid XML document Qlik should read the file.

Anders_Eriksson
Partner - Specialist
Partner - Specialist
Author

Yes and that is the standpoint I tried to communicate to R&D.
Not sure though that my contact in support understood that.

He tried to throw the W3C standard in my face but that one backfired.

Last thing I heard they would make a fix in client but not in server!
I argued that it needs to be solved in server also for scheduled loads on server.

rbecher
MVP
MVP

I agree. Any idea for a workaround yet?

How about load the file as ASCII row-wise, filter the DOCTYPE line / tag and the load it again from resident or field?

Astrato.io Head of R&D
Anders_Eriksson
Partner - Specialist
Partner - Specialist
Author

Sorry, should have mentioned.

A workaround exists by using Microsoft XML parser.

The format spec should then read;

(xmlSax, pattern [/root])

For this to work you need MSXML 3.0 or later installed.

konrad_mattheis
Partner - Creator III
Partner - Creator III

Hi Anders,

I think on one side you should escalate this as much as possible on the qlik side.

On the other side we use the approach that Ralf described.

Load the file as txt file into qlik column. Fix the issue with a string operation.

Use Load from_field with the same old XML syntax.

We use that also to fix corrupt external XML Files.

bye Konrad

Anders_Eriksson
Partner - Specialist
Partner - Specialist
Author

Got a call from support.
R&D has agreed it is a bug and they will fix it in a future release.
It will be fixed by adding a setting in the ini-file.
Will have to enable this setting but then both server and desktop will accept xml-documents with a DTD.
Naturally no release date communicated but hopefully in the next release.

rfredman
Partner - Contributor II
Partner - Contributor II

Hi,

Has this been solved yet?