Here's an example using the emp table of the scott schema. This should give you some pointers.
1 select xmlelement("EMPREC",xmlforest(empno,ename,job))
2* from scott.emp
SQL> /
XMLELEMENT("EMPREC",XMLFOREST(EMPNO,ENAME,JOB))
--------------------------------------------------------------------------------
<EMPREC>
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
<JOB>CLERK</JOB>
</EMPRE
<EMPREC>
<EMPNO>7499</EMPNO>
<ENAME>ALLEN</ENAME>
<JOB>SALESMAN</JOB>
</EM
XMLELEMENT("EMPREC",XMLFOREST(EMPNO,ENAME,JOB))
--------------------------------------------------------------------------------
<EMPREC>
<EMPNO>7521</EMPNO>
<ENAME>WARD</ENAME>
<JOB>SALESMAN</JOB>
</EMP
<EMPREC>
<EMPNO>7566</EMPNO>
<ENAME>JONES</ENAME>
<JOB>MANAGER</JOB>
XMLELEMENT("EMPREC",XMLFOREST(EMPNO,ENAME,JOB))
--------------------------------------------------------------------------------
</EMP
<EMPREC>
<EMPNO>7654</EMPNO>
<ENAME>MARTIN</ENAME>
<JOB>SALESMAN</JOB>
</E
<EMPREC>
<EMPNO>7698</EMPNO>
<ENAME>BLAKE</ENAME>
XMLELEMENT("EMPREC",XMLFOREST(EMPNO,ENAME,JOB))
--------------------------------------------------------------------------------
<JOB>MANAGER</JOB>
</EMP
<EMPREC>
<EMPNO>7782</EMPNO>
<ENAME>CLARK</ENAME>
<JOB>MANAGER</JOB>
</EMP
<EMPREC>
<EMPNO>7788</EMPNO>
XMLELEMENT("EMPREC",XMLFOREST(EMPNO,ENAME,JOB))
--------------------------------------------------------------------------------
<ENAME>SCOTT</ENAME>
<JOB>ANALYST</JOB>
</EMP
<EMPREC>
<EMPNO>7839</EMPNO>
<ENAME>KING</ENAME>
<JOB>PRESIDENT</JOB>
</EM
<EMPREC>
XMLELEMENT("EMPREC",XMLFOREST(EMPNO,ENAME,JOB))
--------------------------------------------------------------------------------
<EMPNO>7844</EMPNO>
<ENAME>TURNER</ENAME>
<JOB>SALESMAN</JOB>
</E
<EMPREC>
<EMPNO>7876</EMPNO>
<ENAME>ADAMS</ENAME>
<JOB>CLERK</JOB>
</EMPRE
XMLELEMENT("EMPREC",XMLFOREST(EMPNO,ENAME,JOB))
--------------------------------------------------------------------------------
<EMPREC>
<EMPNO>7900</EMPNO>
<ENAME>JAMES</ENAME>
<JOB>CLERK</JOB>
</EMPRE
<EMPREC>
<EMPNO>7902</EMPNO>
<ENAME>FORD</ENAME>
<JOB>ANALYST</JOB>
</EMPR
XMLELEMENT("EMPREC",XMLFOREST(EMPNO,ENAME,JOB))
--------------------------------------------------------------------------------
<EMPREC>
<EMPNO>7934</EMPNO>
<ENAME>MILLER</ENAME>
<JOB>CLERK</JOB>
</EMPR
In order to understand recursion, you must first understand recursion.