.NET implements only Levels 1 and 2 of the Core module of DOM. As such, the core DOM functionality is provided: standard node types and the object tree view of a document. .NET also provides some features specified in other modules that are not yet part of an official DOM level (such as loading and saving of a document, and document traversal via XPath). If these modules become official W3C Recommendations, it is expected that future .NET implementations will support them.
Example 5-1 lists a program you can run to demonstrate which features the .NET Framework’s DOM implementation supports.
using System; using System.Xml; class DomFeatureChecker { private static readonly string [ ] versions = new string [ ] { "1.0", "2.0" }; private static readonly string [ ] features = new string [ ] { "Core", "XML", "HTML", "Views", "Stylesheets", "CSS", "CSS2", "Events", "UIEvents", "MouseEvents", "MutationEvents", "HTMLEvents", "Range", "Traversal" }; public static void Main(string[ ] args) { XmlImplementation impl = new XmlImplementation( ); foreach (string version in versions) { foreach (string feature in features) { Console.WriteLine("{0} {1}={2}", feature, version, impl.HasFeature(feature, version)); } } } }
The HasFeature( )
method of the XmlImplementation
class returns true
if the given feature is implemented. If you run this program with the
.NET Framework version 1.0 or 1.1, you’ll see the
following output:
Core 1.0=False XML 1.0=True HTML 1.0=False Views 1.0=False Stylesheets 1.0=False CSS 1.0=False CSS2 1.0=False Events 1.0=False UIEvents 1.0=False MouseEvents 1.0=False MutationEvents 1.0=False HTMLEvents 1.0=False Range 1.0=False Traversal 1.0=False Core 2.0=False XML 2.0=True HTML 2.0=False Views 2.0=False Stylesheets 2.0=False CSS 2.0=False CSS2 2.0=False Events 2.0=False UIEvents 2.0=False MouseEvents 2.0=False MutationEvents 2.0=False HTMLEvents 2.0=False Range 2.0=False Traversal 2.0=False
Although a particular DOM module may not be supported by the .NET Framework, that should not indicate that the functionality provided by that module is not available. All it actually means is that the standard way of providing the functionality is not implemented. In fact, in many cases, the standard is not defined yet, so it’s not possible for any DOM implementation to support all of the modules!
The best place to start exploring the .NET DOM implementation is with
the XmlImplementation
type.
3.145.202.27