Comparing the Java and C++ Implementations
As noted when discussing the Java implementation, Xerces returned Text Node children of the Row Element preceding each ColumnXX Element.
Aside from the differences in error handling, we quickly see a few other differences due to the basic differences between the languages. One that stands out is how pointers are handled. In C++ pointers are explicitly declared as such and are manipulated and referenced differently than the variables and objects they point to. In Java nearly everything except a simple variable is a pointer, but the pointers are implicit. A case of this difference in the two implementations is that in C++ with MSXML we declare a pointer to a DOM object, but in Java we just declare the DOM object. We also have the expected differences in basic library functions like I/O. Most of the other differences are due to the COM baggage that MSXML carries.
One striking thing about the two implementations is how similar they are when dealing with things that the DOM Recommendation specifies and how different they are in areas where it is silent. This is a very graphic demonstration of the power of standard APIs such as DOM and SAX.