ProhibitDTD Property
Specifies whether to prohibit (true
) or allow (false
) the inclusion of a DTD in the XML DOM document.
This property is supported in MSXML 3.0 and 6.0. The default value is false
for 3.0. The default value is true
for 6.0.
This property has security implications. For more information, see MSXML Security Overview and DOM Security.
Script Syntax
domObj.setProperty(strProp, vBool);
vBool = domObj.getProperty(strProp);
Visual Basic Syntax
domObj.setProperty
(strProp, vBool)
vBool = domObj.getProperty
(strProp)
C\C++ Syntax
HRESULT setProperty(BSTR strProp, VARIANT vBool);
HRESULT getProperty(BSTR strProp, VARIANT* vBool);
Parameters
strProp
A BSTR string whose value is "ProhibitDTD".
vBool
A VARIANT_BOOL value of true
or false
.
Remarks
This property allows you to prohibit DTD use and can help prevent a denial of service attack in some situations. For example, an application might become unresponsive if a large number of entity references are included with the DTD and require resolution when the document XML is parsed and loaded.
Setting this property to true will prohibit DTDs and result in one of the following parser errors whenever a DTD is included:
"Invalid at the top level of the document" (XML_E_INVALIDATROOTLEVEL, 0xC00CE556), when using MSXML 3.0 (property "NewParser" = true/false).
"DTD is prohibited" (XML_E_DTD_PROHIBITED, 0xC00CE584), when using MSXML 6.0 (property "NewParser" = false).
"DTD is prohibited" (WC_E_DTD_PROHIBITED, 0xC00CEE4E) when using MSXML 6.0 (property "NewParser" = true)
When the DOM object is cloned, the value of this property is not propagated to the cloned object. You need to reset this property on the clone, if desired.
The following shows how this property is set in JScript:
dom.setProperty("ProhibitDTD", true); //for JScript
For Visual Basic or VBScript, the following is the correct syntax:
dom.setProperty "ProhibitDTD", True 'for VB/VBScript
Versioning
This property is supported in MSXML 3.0 and 6.0. The default value is false
for 3.0. The default value is true
for 6.0.
Applies to
Interface: IXMLDOMDocument2
Methods: setProperty | getProperty