.NET Framework에서는 문서 기반으로 XML을 처리할 수 있는 DOM 모델을 제공하고 있습니다. DOM 모델은 XML 데이터를 프로그램 상의 메모리에 문서 형태로 표현한 것입니다. XmlReader 개체로 XML 데이터를 읽을 때는 메모리에 캐시하지 않고 정방향으로만 이동하면서 읽습니다. 하지만 DOM 모델에서는 메모리에 데이터를 캐시하기 때문에 효과적으로 읽고 조작하고 수정할 수 있습니다.
DOM모델에서는 XML 문서를 노드 트리 형태로 메모리에 캐시합니다. 이를 위해 다양한 노드 형식을 제공하고 있는데 이들의 형식은 W3C 표준에 맞게 제공하고 있습니다.
다음은 DOM 모델로 XML 문서를 메모리에 캐시할 때 사용하는 대표적인 노드 형식들입니다.
XML 문서를 트리 형태로 메모리에 캐시하는 프로그램 메모리 상의 XML 문서를 위해 XmlDocuemnt 클래스를 제공하고 있습니다.
XML 요소를 표현하기 위해 XmlElement 클래스와 특성을 표현하기 위해 XmlAttribute 클래스를 제공합니다.
요소나 특성에 속한 텍스트를 표현할 때는 XmlText 클래스를 사용하고 주석을 표현할 때는 XmlComment 클래스를 사용합니다.
CDATA를 나타낼 때 XmlCDataSection 클래스, DTD 하위 집합 또는 외부 DTD 및 매개 변수 엔터티를 표현할 때 XmlEntity 클래스를 사용합니다. 그리고DTD의 노테이션을 나타낼 때 XmlNotation을 제공하며 문서 형식을 나타낼 때 XmlDocumentType 클래스를 사용합니다.
그리고 트리 구조없이 하나 이상의 노드를 포함하는 임시 노드를 표현하기 위해 XmlDocuemntFragment 클래스를 제공합니다.
이 외에도 W3C에는 정의되어 있지 않지만 .NET Framework 에서는 추가적으로 노드 선언할 때 사용할 수 있는 XmlDeclaration, 혼합 내용에 들어가는 유효 공백을 나타내는 XmlSignificantWhitespace 및 요소 내용의 공백을 나타내는 XmlWhitespace 클래스 등을 제공하고 있습니다.