This discussion is archived
0 Replies Latest reply: Jul 24, 2013 11:28 AM by 981375 RSS

Generating Hierarchical XML Data from relational DB

981375 Newbie
Currently Being Moderated

Hello peeps,

 

I'm working with Oracle DB 11g and I'm new to generating XML data with it. I have a relational DB from which I want to generate a hierarchical XML that has 5 different levels. These are the first 20 records of a view from the relational model called function_code in the schema I'm working on:

 

 

function_codefunction_nameL1L2L3L4L5previous_level
1EVALUACION DEL POTENCIAL PETROLERO1
1.1PLANEACION Y PROGRAMACION DE EVALUACION DEL POTENCIAL111
1.1.1PLANEACION DE LOS PROYECTOS DE INVERSION DE EVALUACION DEL POTENCIAL1111.1
1.1.1.1DETERMINAR RIESGOS DE LOS PROYECTOS DE INVERSION DE EVALUACION DEL POTENCIAL11111.1.1
1.1.1.10PLANIFICAR OBRAS, SERVICIOS Y ADQUISICIONES DEL PROYECTO DE INVERSION111101.1.1
1.1.1.10.1ELABORAR PADRON Y EFECTUAR ANALISIS Y SELECCION DE CONTRATISTAS/ PROVEEDORES1111011.1.1.10
1.1.1.10.2PLANIFICAR OBRAS, BIENES Y SERVICIOS Y ADQUISICIONES DEL PROYECTO DE INVERSION1111021.1.1.10
1.1.1.11PLANIFICAR RECURSOS FINANCIEROS DE LOS PROYECTOS DE INVERSION DE EVALUACION DEL POTENCIAL111111.1.1
1.1.1.12PLANIFICAR RECURSOS FINANCIEROS DEL PROYECTO DE INVERSION111121.1.1
1.1.1.12.1ESTIMAR COSTOS DEL PROYECTO DE INVERSION DE EVALUACION DEL POTENCIAL1111211.1.1.12
1.1.1.12.2INTEGRACION PRESUPUESTAL REGIONAL DE LOS PROYECTOS DE EVALUACION DEL POTENCIAL1111221.1.1.12
1.1.1.12.3PLANIFICAR LA MINISTRACION DEL PRESUPUESTO DEL PROYECTO DE INVERSION DE EVALUACION DEL POTENCIAL1111231.1.1.12
1.1.1.13PLANIFICAR RECURSOS HUMANOS DEL PROYECTO DE INVERSION111131.1.1
1.1.1.13.1DETERMINAR RECURSOS HUMANOS PARA EL PROYECTO DE INVERSION1111311.1.1.13
1.1.1.13.2DISENAR LA ESTRUCTURA DE LA ORGANIZACION Y PUESTOS PARA DESARROLLAR EL PROYECTO1111321.1.1.13
1.1.1.13.3EFECTUAR LA SELECCION Y ASIGNACION DE PERSONAL DEL PROYECTO1111331.1.1.13
1.1.1.13.4IMPLEMENTAR ESTRATEGIAS DE CONTROL DEL RECURSO HUMANO1111341.1.1.13
1.1.1.13.5PLANEAR LA CAPACITACION Y DESARROLLO DEL PERSONAL TECNICO DEL PROYECTO1111351.1.1.13
1.1.1.14PROMOVER LA APLICACION Y TRANSFERENCIA DE TECNOLOGIAS EXPLORATORIAS PARA LOS PROYECTOS DE INVERSION DE EVALUACION DEL POTENCIAL111141.1.1
1.1.1.14.1COORDINAR LA IMPLANTACION DE TECNOLOGIAS PARA EVALUACION DEL POTENCIAL1111411.1.1.14
1.1.1.14.2DISEÑAR IMPLANTAR Y MANTENER EL SISTEMA DE COMUNICACION TECNOLOGICA EN EXPLORACION1111421.1.1.14

 

How would I go about generating XML data such as the following:

 

<element id="1">
     <element id="1.1">
          <element id="1.1.1"/>
          <element id="1.1.2"/>
          <element id="1.1.3"/>    
     </element>
     <element id="1.2">
          <element id="1.2.1"/>
          <element id="1.2.2"/>
          <element id="1.2.3"/>    
     </element>
     <element id="1.3">
          <element id="1.3.1"/>
          <element id="1.3.2"/>
          <element id="1.3.3"/>    
     </element>    
</element>
<element id="2">
     <element id="2.1">
          <element id="2.1.1"/>
          <element id="2.1.2"/>
          <element id="2.1.3"/>    
     </element>
     <element id="2.2">
          <element id="2.2.1"/>
          <element id="2.2.2"/>
          <element id="2.2.3"/>    
     </element>
     <element id="2.3">
          <element id="2.3.1"/>
          <element id="2.3.2"/>
          <element id="2.3.3"/>    
     </element>    
</element>

 

I need to be able to generate it as a nested tree structure, starting with the top level (1 to 5) going all the way down to level 5 Ex: 4.1.1.5.7 - I've been reading quite a bit and can't seem to connect the function_code to the previous_level so that the tree structured is generated. I would appreciate it if someone could guide me a bit on this matter, I truly don't know if I should go with SQL/XML, dbms_xmlgen or a different option. I tried both and could not manage to get the nested structure I'm looking for.

 

Thank you for taking the time to read (: