Share via


prohibit-dtd Feature

 

This feature determines whether the SAX reader will prohibit (true) or allow (false) the use of DTDs.

This property has security implications. For more information, see MSXML Security Overview and SAX2 Security.

JScript Syntax

oSaxReader.putFeature(strFeature, vBool);  
vBool= oSaxReader.getFeature(strFeature);  

Visual Basic Syntax

oSaxReader.putFeature
(strFeature, vBool)  
vBool= oSaxReader.getFeature
(strFeature)  

C/C++ Syntax

HRESULT putFeature(BSTR strFeature, VARIANT vBool);  
HRESULT getFeature(BSTR strFeature, VARIANT* vBool);  

Value

strFeature
A BSTR string whose value is "prohibit-dtd ".

vBool
A VARIANT_BOOL value of true or false that indicates the value of the feature. If this feature is set to true, the SAX reader prohibits the inclusion of a DTD. If false, the SAX reader will allow a DTD to be included. For MSXML 3.0, 4.0, and 5.0, the default is false. For MSXML 6.0, the default is true.

Remarks

This feature allows you to prohibit DTD use in SAX parsing. Prohibiting DTDs can help prevent a denial of service attack in some situations. For example, if a DTD is permitted, an application might hang when attempting to resolve a large number of entity references included with the DTD. Setting this feature to true avoids this potential problem. If a DTD is included when prohibit-dtd is true, SAX will return a parser error of "Invalid at the top level of the document" (XML_E_INVALIDATROOTLEVEL, 0xE52D).

When the SAX reader is actively parsing, this feature is read-only. When the SAX reader is not actively parsing, full (read/write) access is permitted.

Applies to

Interface: ISAXXMLReader

Method: putFeature | getFeature

Versioning

Implemented in: MSXML 3.0 and later