Ah, sorry I misunderstood your question. 

The problem is textContent + TAG name is not always similar to the XML content. For example:

The text content of the following tag:
&lt; x a=1&gt; &lt;/x&gt;

is an empty string. But it's xml content stores the attribute value.

Or as another example, if someone writes his/her own schema extraction and adds complex elements as attributes, then storing only the text content won't work:

&lt; x&gt; 2 &lt;y&gt; 2 &lt;/y&gt; &lt;/x&gt;

So, I think it's better to keep the xml content, as well as the text value for now. The ideal solution would be storing attributes, children, and the text content all together. This ensures we don't miss any information which will be basically the same as the XML content.