Reworked _addData() method to correct a couple problems and simplify:

When data consists of nested, associative arrays, the keys that were outputted into XML were incorrect. When a top level element contained an array containing string elements, _addData() failed because it was expected the values of the array to be arrays themselves.