Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
XML
data.xmlanalysis
mappoint.webservice
msf
msxml-webrelease
netmyservices.sdk
passport.sdk
soap
soapsdk
uddi.general
uddi.programming
uddi.specification
xml
xmlsqlwebrelease
xsl
  
 
date: Sat, 12 Jul 2008 14:45:26 +0200,    group: microsoft.public.xml        back       


"DTD is prohibited" when trying to add XMLSchema.xsd (schema for schemas) to schema cache in MSXML6.   
Hi,

According to Microsoft 
(http://msdn.microsoft.com/en-us/library/ms764692(VS.85).aspx) it should be 
possible to add the schema for schemas to the schema cache. However, when i 
try to do this, i get an error "DTD is prohibited".

This is what i do (in Delphi):

var
  XMLDOMSchemaCache: IXMLDOMSchemaCollection2;
begin
  XMLDOMSchemaCache := CoXMLSchemaCache60.Create();
  XMLDOMSchemaCache.add('http://www.w3.org/2001/XMLSchema', 
'http://www.w3.org/2001/XMLSchema.xsd');

Calling add() raises an EOleException with error message "DTD is 
prohibited". But IXMLDOMSchemaCollection2 has no properties so i can allow 
DTDs. How can i solve this?

thank you,
- Gerben Abbink
date: Sat, 12 Jul 2008 14:45:26 +0200   author:   Gerben Abbink

Re: "DTD is prohibited" when trying to add XMLSchema.xsd (schema for schemas) to schema cache in MSXML6.   
Gerben Abbink wrote:
> Hi,
> 
> According to Microsoft 
> (http://msdn.microsoft.com/en-us/library/ms764692(VS.85).aspx) it should be 
> possible to add the schema for schemas to the schema cache. However, when i 
> try to do this, i get an error "DTD is prohibited".
> 
> This is what i do (in Delphi):
> 
> var
>   XMLDOMSchemaCache: IXMLDOMSchemaCollection2;
> begin
>   XMLDOMSchemaCache := CoXMLSchemaCache60.Create();
>   XMLDOMSchemaCache.add('http://www.w3.org/2001/XMLSchema', 
> 'http://www.w3.org/2001/XMLSchema.xsd');
> 
> Calling add() raises an EOleException with error message "DTD is 
> prohibited". But IXMLDOMSchemaCollection2 has no properties so i can allow 
> DTDs. How can i solve this?

It should be possible to add a DOM document with the schema, where you 
set the property ProhibitDTD
http://msdn.microsoft.com/en-us/library/ms762632(VS.85).aspx
first before you load the schema.
So pseudo code would be
   var schemaDoc = new ActiveXObject('Msxml2.DOMDocument.6.0');
   schemaDoc.async = false;
   schemaDoc.resolveExternals = true;
   schemaDoc.validateOnParse = false;
   schemaDoc.setProperty("ProhibitDTD", false);
   schemaDoc.load('http://www.w3.org/2001/XMLSchema.xsd');

   schemaCache.add('http://www.w3.org/2001/XMLSchema', schemaDoc);




-- 

	Martin Honnen --- MVP XML
	http://JavaScript.FAQTs.com/
date: Sat, 12 Jul 2008 14:55:42 +0200   author:   Martin Honnen

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us