There is nothing prohibited about xmltypes, eg
SQL> CREATE OR REPLACE FUNCTION MY_FUNC (rc sys_refcursor) RETURN MY_TAB PIPELINED IS
2 x xmltype;
3 BEGIN
4 fetch rc into x;
5 PIPE ROW (MY_OBJECT(1,x.getstringval(),'blah'));
6 RETURN;
7 END;
8 /
Function created.
Obviously if the date you want is inside the xml, you'd need to parse it out via whatever means you are comfortable with, but there is no inherent restriction on xmltypes