Fix: Validation of XML by Using an XDR That Has an Element with More Than 16 Attributes May Cause Access Violation
When an element has more than 16 attributes, internal objects that keep track of the attributes may run out of bounds while storing the attributes. The problem may not occur immediately.
Fix: GetValue() and GetQName() in SAXXMLReader May Cause Memory Leak
This problem typically occurs when you use a contentHandler that pulls information from the ISAXAttributes
interfaces. The interfaces leak BSTRs that are not cleaned up correctly.
Fix: Calling SelectSingleNode Method from COM+ May Cause Access Violation Under Stress
An Access violation may occur under stress when you call the selectSingleNode
method from a COM+ component. This problem has not been seen in other methods.
Fix: "MyNamespace:string Is Undefined" Error Message Occurs When You Include an XSD
When you have a schema that redefines the default namespace with the XSD namespace, and include that schema in another schema that has a targetNamespace, you may receive the following error message when compiling the parent schema:
myNamespace:string is undefined
This error occurs because the default namespace in the included schema is replaced by the targetNamespace in the including schema. The following two schemas illustrate this problem:FirstSchema.xsd
<?xml version="1.0" ?><schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="myNamespace" xmlns:ns="myNamespace" elementFormDefault="qualified"> <include schemaLocation="includedSchema.xsd" /> <element name="root" type="ns:MainType" /> <complexType name="MainType"> <sequence> <element name="myElement" type="ns:globalTypeMyType" /> </sequence> </complexType></schema>
<?xml version="1.0" ?><schema xmlns="http://www.w3.org/2001/XMLSchema" version="1.0" elementFormDefault="qualified" xml:lang="EN"> <simpleType name="globalTypeMyType"> <restriction base="string"> <enumeration value="Type1" /> <enumeration value="Type2" /> </restriction> </simpleType></schema>
Fix: SAXXMLReader.parse Method Does Not Release IStream Pointer When Returned
When you call the parse
method on the SAXXMLReader, and pass it a variant that contains an IUnknown pointer to a stream object, the SAX parser does not release the pointer when the method has completed. To release the pointer, destroy the reader or make a subsequent call to the parse method by using a NULL variant as the parameter.
Fix: Redirect to a Relative URL Does Not Work When You Use ServerXMLHTTP
When you retrieve a page that redirects you to a relative URL, you may receive the following error message:
This only occurs when you use a ServerXMLHTTP
Fix: Single-Line XML Input in a SAXXMLReader May Cause Slow Performance
When you call the parse
method on the SAXXMLReader, and you load large XML documents that do not have any line-breaks, you may see slow performance. Also, memory usage may increase dramatically. This does not occur when you use MSXML 3.0. This behavior occurs because the MSXML 4.0 SAX parser buffers the whole document in memory before it parses the document. The MSXML 4.0 SAX parser uses line-break checks to stop buffering and to process what it had before getting the next chunk of XML. When there are no line breaks in an XML document or stream, all data is buffered. This can use a lot of memory, and performance can drop when you work with large volumes of data.
Design Change: The Pre-compiled (Original) Schema Is Loaded in the Schema Object Model
The Schema Object Model (SOM) is an implementation where you can walk the loaded schema. In MSXML 4.0 SP1, when you retrieve the schema, you receive the post-compiled schema. In MSXML 4.0 SP2, you receive the original or pre-compiled schema. This changes the way you walk the schema. However, it does not change the validation aspect of the schema. The schema continues to validate the XML correctly.