Friday, March 9, 2012

How to set ProhibitDtd in SSIS?

Hi,

I'm having a problem using XML-files as source for dataflow-task.

On the source-editor for XML i chose the XML-file and the XSD-file. After clicking OK SSIS throws an error, saying I need to set ProhibitDtd in XmlReaderSettings to false, otherwise I'm not able to work with this file.

Unfortunatley I dont know were I can set this option.

Regards,

Jan Wagner

It sounds like your source XML file contains embedded DTD. If this is true, try to remove the DTD first.

Regards,
Yitzhak

|||

I'm having the same problem using XML-files as source for dataflow-task.

My XML has an external DTD so removing it from the source is not an option.

So the question is "How can I set the ProhibitDTD in the XMLReaderSettings to false for SSIS processing?"..

|||

Thanks for your answer Yitzhak.

It just seems I mistook DTD with XSD...

Regards,

Jan

|||

Unfortunately, SSIS doesn't expose all existing XML settings.

I don't know if it is possible for you to do.
Try to change the input XML document as a URI string (http://...) instead of the IXPathNavigable (drive:\...)
My guess is when you do that the following is what's happening inside:

XslCompiledTransform creates an XmlReader to read the XML document from this URI using default XmlReaderSettings, but allowing Document Type Definition (DTD):

XmlReaderSettings rs = new XmlReaderSettings();

rs.ProhibitDtd = false;

XmlReader.Create(inputUri, rs);

Regards,
Yitzhak

No comments:

Post a Comment