Hi clanmills
When XMP parser parses the given rdf, it ignores the empty elements. Thus the internal representation of this RDF generated by XMP SDK has no empty element. Not only in case of array element, even if you will give an empty array as input, the same phenomenon will happen.
Now when XMP will serialize it back to RDF as output, it is pretty clear that empty elements will not be there as they were already lost while parsing.
Empty elements are of no significance and do not contain any information. There is no point in storing them and then processing them back to give as output. Hence XMP goes by above mentioned approach