from_xml does indeed call 'from_xml_parser', but I didn't want to change the call signature on "from_xml" to return multiple objects (e.g.:

video, definition_xml = super(VideoDescriptor, cls).from_xml(xml_data, system, org, course)

which seemed risky