To check validity you pass the document through a validating parser which should report any errors it finds. For example,
% java dom.DOMCount -v validhotcop.xml [Error] validhotcop.xml:13:9: The content of element type "SONG" must match "(TI TLE,COMPOSER+,PRODUCER*,PUBLISHER*,LENGTH?,YEAR?)". validhotcop.xml: 550 ms (10 elems, 0 attrs, 28 spaces, 98 chars)
A valid document:
% java dom.DOMCount -v validhotcop.xml validhotcop.xml: 291 ms (10 elems, 0 attrs, 28 spaces, 98 chars)