I am not sure why this is wrong, or how to get around this? Can any SQL experts help?

update ehtemp.application_xml_q2007 a
set a.xml_name = b.xml_name from ehtemp.application_xml_info_add where a.form_id = b.form_id;

I get ORA-00933: SQL command not properly ended

When I do this:

update application_xml_q2007 a
set a.xml_name = (select b.xml_name from application_xml_info_add b where a.form_id b.form_id);
I get:
ORA-01427: single-row subquery returns more than one row

How can I fix my script to make update work?