MSXML 6.0 vs. System.Xml: Schema handling differences

One of the goals we had for MSXML6 and system.xml in .NET 2.0 was to bring down the number of differences in schema processing between the two engines.  I think we did a pretty good job here, but there are still a few differences left.  The table below lists all known differences.  If you find something that is not listed, please let me know.

 

In some cases both engines are compliant with the spec but have different behavior (when the spec is not specific).  In others, one engine is compliant (denoted by a "*" in the table below) while the other one isn't.  It is our goal to eliminate all the differences.  However, some of them are corner case scenarios and we might decide not to invest time and resources in fixing them.  If you really want to see a particular scenario fixed, let me know.

 

Feature MSXML 6 system.xml
Using XML attributes without explicit schema declaration not supported supported
element of type xs:ID supported* not supported
Conflicting values of facets minInclusive, maxInclusive in base and derived types not allowed* allowed
maxOccurs=0 with no minOccurs error* no error
Multiple redefines of the same schema document error warning (only first redefine is processed)
parsing of targetNamespace attribute as anyURI supported* not supported
Regex support for Unicode Character blocks Unicode 3.1 Unicode 4.0.1
Regex patterns involving combinating a negative group with another using '|' not supported supported*
XSD Errata for Regex E2-52 not supported supported*
Regex character class subtraction not supported supported*
Matching newlines/linebreaks from a xsd:pattern facet not supported supported*
minOccurs/maxOccurs value limits upto 2^32 CLR decimal
limit of totalDigits facet values upto 2^32 CLR decimal
datatypes used to store length, minLength, maxLength facet values upto 2^32 CLR decimal
a prohibited attribute in a complex type no error, attribute stripped* warning, attribute stripped*
unreferenced groups in the schema always compiled compiled on reference
default element values availability not supported supported*
expose post schema validation infoset not supported supported*
ENTITY in DTD resolvable by attribute/elements of type xs:ENTITY DOM=Yes, SAX=no Yes
adding a default qualified attribute to an element in a document that has attribute's namespace as default DOM: apply qualified default attribute with namespace value as the prefix. SAX=does not generate prefix for default qualified attributes error
identity constraints (key/unique) evaluation for skip/lax blocks node is null not able to find node
element with mixed content, and a fixed schema value, containing child elements instance accepted instance not accepted*
whitespace facet on anySimpleType preserve* collapsed
XSD Errata on xs:base64Binary parsing supported* not supported
xs:dateTime: number of year digits supported 10 4
xs:dateTIme: number of fraction digits supported in seconds 9 7
xs:dateTime: Range of hours in time zone "-14:00 to +14:00" * 99:00 to -99:00
xs:dateTime: negative years supported* not supported
"z" (as opposed to "Z") in xs:dateTime to represent UTC time not allowed* allowed
xs:time: range of hour value 00:00:00 to 24:00:00* 00:00:00 to 23:59:59
xs:gMonth: XSD Errata revised the lexical representation of gMonth only --MM is allowed* both --MM and --MM-- are allowed
maximum digits allowed for the xs:decimal data type 128 29
xs:duration: duration with second part specified, but has no digits error no error, infer a 0 for the second part