VTD-XML: The Future of XML Processing

SourceForge.net Logo

Sourceforge Home

Mailing Lists





1.Goals and Features

(Separate code-only VTD-XML tutorials are available in C,Java and C#)

Design Goal

VTD-XML is designed for the following purposes:

  • To prove that non-extractive XML processing works for the intended classes of XML

  • To demonstrate the benefits of VTD (performance, memory, persistence, incremental update, etc.)

  • For many applications, we feel it can be immediately useful.

Features of Current Implementation

  • DTD support: DTD is processed and parsed. The content of DTD is returned as a VTD token. VTD-XML doesn't attempt to resolve entity reference declared in DTD.

  • Character Encoding: Current implementation supports ASCII, UTF-8, ISO-8859-1, UTF-16BE and UTF-16LE, ISO--8859-{2~10}, Windows {1250~1258}

  • White spaces handling: All insignificant white spaces are ignored.

  • Persistence support: This feature is available since version 2.0.

  • Programming Language support: VTD-XML is available in C, C# and Java.

  • Namespace: The current implementation supports namespace similar to DOM level-2. However, in this version, we don't really check the correctness of the namespace usage.

  • Well-formedness and validity: Support everything except External references defined in DTD. Support for schema validation will be added in the future.

  • XML Version: The current implementation supports XML version 1.0.

  • Performance and Memory Usage: The processing Performance is typically 1.5x~2x of SAX with NULL content handler; Memory usage: 1.3x~1.6x typical cases (benchmark available vtd-xml.sf.net/benchmark.html)

  • Parser Pooling: Our observation is that the parser instantiation is quite light-weight, meaning that in many cases one doesn't have to pre-instantiate parser instances.

  • Read/Write: We categorize our XML API to be read and "special" write (by using XMLModifier) because of its incremental update capability. Remember: XML document is not taken apart.

VTD in 30 seconds

VTD+XML Format

User's Guide

  0. Introduction

  1. Goals and Features   

  2. How to Process XML

  3. Navigate VTD

  4. Classes/Interfaces and Methods

  5. Comparison with DOM, SAX, and Pull

  6. Table for Token Types

  7. The C version VTD-XML

Developer's Guide

VTD: A Technical Perspective

Code Samples


Getting Involved

Articles and Presentations