0 Replies Latest reply: Dec 3, 2011 2:44 AM by tien86 RSS

    [XQuery] How to transform from JSON Message to XML Message with XQuery

    tien86
      Hi guys,

      I'm in a job of converting a restful webservice to soap. Tool for convertation uses XQuery.

      Now i need to convert a message like thi link http://jsontoxml.utilities-online.info
      JSON
      {
      "anagrafica": {
      "testata": {
      "nomemercato": {
      "-id": "007",
      "#text": "Mercato di test"
      },
      "data": "Giovedi 18 dicembre 2003 16.05.29"
      },
      "record": [
      {
      "codice_cliente": "5",
      "rag_soc": "Miami American Cafe",
      "codice_fiscale": "IT07654930130",
      "indirizzo": {
      "-tipo": "casa",
      "#text": "Viale Carlo Espinasse 5, Como"
      },
      "num_prodotti": "13"
      },
      {
      "codice_cliente": "302",
      "rag_soc": "Filiberto Gilardi",
      "codice_fiscale": "IT87654770157",
      "indirizzo": {
      "-tipo": "ufficio",
      "#text": "Via Biancospini 20, Messina"
      },
      "num_prodotti": "8"
      },
      {
      "codice_cliente": "1302",
      "rag_soc": "Eidon",
      "codice_fiscale": "IT887511231",
      "indirizzo": {
      "-tipo": "ufficio",
      "#text": "Via Bassini 17/2, Milano"
      },
      "num_prodotti": "18"
      },
      {
      "codice_cliente": "202",
      "rag_soc": "SkillNet",
      "codice_fiscale": "IT887642131",
      "indirizzo": {
      "-tipo": "ufficio",
      "#text": "Via Chiasserini 11A, Milano"
      },
      "num_prodotti": "24"
      },
      {
      "codice_cliente": "12",
      "rag_soc": "Eidon",
      "codice_fiscale": "IT04835710965",
      "indirizzo": {
      "-tipo": "casa",
      "#text": "Via Cignoli 17/2, Roma"
      },
      "num_prodotti": "1112"
      },
      {
      "codice_cliente": "5",
      "rag_soc": "Miami American Cafe",
      "codice_fiscale": "IT07654930130",
      "indirizzo": {
      "-tipo": "casa",
      "#text": "Viale Carlo Espinasse 5, Como"
      },
      "num_prodotti": "13"
      },
      {
      "codice_cliente": "302",
      "rag_soc": "Filiberto Gilardi",
      "codice_fiscale": "IT87654770157",
      "indirizzo": {
      "-tipo": "ufficio",
      "#text": "Via Biancospini 20, Messina"
      },
      "num_prodotti": "8"
      },
      {
      "codice_cliente": "1302",
      "rag_soc": "Eidon",
      "codice_fiscale": "IT887511231",
      "indirizzo": {
      "-tipo": "ufficio",
      "#text": "Via Bassini 17/2, Milano"
      },
      "num_prodotti": "18"
      },
      {
      "codice_cliente": "202",
      "rag_soc": "SkillNet",
      "codice_fiscale": "IT887642131",
      "indirizzo": {
      "-tipo": "ufficio",
      "#text": "Via Chiasserini 11A, Milano"
      },
      "num_prodotti": "24"
      },
      {
      "codice_cliente": "202",
      "rag_soc": "SkillNet",
      "codice_fiscale": "IT887642131",
      "indirizzo": {
      "-tipo": "ufficio",
      "#text": "Via Chiasserini 11A, Milano"
      },
      "num_prodotti": "24"
      },
      {
      "codice_cliente": "12",
      "rag_soc": "Eidon",
      "codice_fiscale": "IT04835710965",
      "indirizzo": {
      "-tipo": "casa",
      "#text": "Via Cignoli 17/2, Roma"
      },
      "num_prodotti": "1112"
      }
      ]
      }
      }


      XML
      <?xml version="1.0" encoding="UTF-8"?>
      <!--Anagrafica del clienti del mercato-->
      <anagrafica>
           <testata>
                <nomemercato id="007">Mercato di test</nomemercato>
                <data>Giovedi 18 dicembre 2003 16.05.29</data>
           </testata>
           <record>
                <codice_cliente>5</codice_cliente>
                <rag_soc>Miami American Cafe</rag_soc>
                <codice_fiscale>IT07654930130</codice_fiscale>
                <indirizzo tipo="casa">Viale Carlo Espinasse 5, Como</indirizzo>
                <num_prodotti>13</num_prodotti>
           </record>
           <record>
                <codice_cliente>302</codice_cliente>
                <rag_soc>Filiberto Gilardi</rag_soc>
                <codice_fiscale>IT87654770157</codice_fiscale>
                <indirizzo tipo="ufficio">Via Biancospini 20, Messina</indirizzo>
                <num_prodotti>8</num_prodotti>
           </record>
           <record>
                <codice_cliente>1302</codice_cliente>
                <rag_soc>Eidon</rag_soc>
                <codice_fiscale>IT887511231</codice_fiscale>
                <indirizzo tipo="ufficio">Via Bassini 17/2, Milano</indirizzo>
                <num_prodotti>18</num_prodotti>
           </record>
           <record>
                <codice_cliente>202</codice_cliente>
                <rag_soc>SkillNet</rag_soc>
                <codice_fiscale>IT887642131</codice_fiscale>
                <indirizzo tipo="ufficio">Via Chiasserini 11A, Milano</indirizzo>
                <num_prodotti>24</num_prodotti>
           </record>
           <record>
                <codice_cliente>12</codice_cliente>
                <rag_soc>Eidon</rag_soc>
                <codice_fiscale>IT04835710965</codice_fiscale>
                <indirizzo tipo="casa">Via Cignoli 17/2, Roma</indirizzo>
                <num_prodotti>1112</num_prodotti>
           </record>
           <record>
                <codice_cliente>5</codice_cliente>
                <rag_soc>Miami American Cafe</rag_soc>
                <codice_fiscale>IT07654930130</codice_fiscale>
                <indirizzo tipo="casa">Viale Carlo Espinasse 5, Como</indirizzo>
                <num_prodotti>13</num_prodotti>
           </record>
           <record>
                <codice_cliente>302</codice_cliente>
                <rag_soc>Filiberto Gilardi</rag_soc>
                <codice_fiscale>IT87654770157</codice_fiscale>
                <indirizzo tipo="ufficio">Via Biancospini 20, Messina</indirizzo>
                <num_prodotti>8</num_prodotti>
           </record>
           <record>
                <codice_cliente>1302</codice_cliente>
                <rag_soc>Eidon</rag_soc>
                <codice_fiscale>IT887511231</codice_fiscale>
                <indirizzo tipo="ufficio">Via Bassini 17/2, Milano</indirizzo>
                <num_prodotti>18</num_prodotti>
           </record>
           <record>
                <codice_cliente>202</codice_cliente>
                <rag_soc>SkillNet</rag_soc>
                <codice_fiscale>IT887642131</codice_fiscale>
                <indirizzo tipo="ufficio">Via Chiasserini 11A, Milano</indirizzo>
                <num_prodotti>24</num_prodotti>
           </record>
           <record>
                <codice_cliente>202</codice_cliente>
                <rag_soc>SkillNet</rag_soc>
                <codice_fiscale>IT887642131</codice_fiscale>
                <indirizzo tipo="ufficio">Via Chiasserini 11A, Milano</indirizzo>
                <num_prodotti>24</num_prodotti>
           </record>
           <record>
                <codice_cliente>12</codice_cliente>
                <rag_soc>Eidon</rag_soc>
                <codice_fiscale>IT04835710965</codice_fiscale>
                <indirizzo tipo="casa">Via Cignoli 17/2, Roma</indirizzo>
                <num_prodotti>1112</num_prodotti>
      </record>
      </anagrafica>



      I guest this a general case so there must be an example for this somewhere on the internet but i haven't found it yet. So i put on forum and hope someone already knows this.

      Thank for u help.

      Regards,
      Tien86.

      Edited by: tien86 on 01:00 02-12-2011

      Edited by: tien86 on 00:43 03-12-2011