azure synapse copy -: xml Copying from on-premises to azure data lake having null values for CDATA element

Hi ,

We have differnt kpi data in form of xml. During copying these xml to azure data lake , these xml converted into json. Json files are very much perfect except issue ” Null value for CDATA element”

As below sample , DN value present as CDATA element in xml but become NULL in correspsing json.

Can you please suggest some solution for this.

Note-: From Data lake , these json data would be processed by spark job and insert data in azure sql pool.

XML-:

<?xml version="1.0"?>
<OMeS>
  <PMSetup  startTime="2023-06-15T16:00:00.000+05:30:00" interval="15">
    <PMMOResult>
      <MO>
        <DN><![CDATA[PLMN-PLMN/MRBTS-1224]]></DN>
      </MO>
      <PMTarget  measurementType="SBTS_Energy_Consumption">
        <M40002C1>0</M40002C1>
        <M40002C2>5622</M40002C2>
        <M40002C0>5622</M40002C0>
      </PMTarget>
    </PMMOResult>
    <PMMOResult>
      <MO>
        <DN><![CDATA[PLMN-PLMN/MRBTS-1224/LNBTS-1224]]></DN>
      </MO>
      <PMTarget  measurementType="LTE_S1AP">
        <M8000C6>0</M8000C6>
        <M8000C7>0</M8000C7>
        <M8000C8>0</M8000C8>
        <M8000C9>0</M8000C9>
        <M8000C11>0</M8000C11>
        <M8000C13>0</M8000C13>
        <M8000C14>0</M8000C14>
        <M8000C15>0</M8000C15>
        <M8000C16>0</M8000C16>
        <M8000C26>0</M8000C26>
        <M8000C27>0</M8000C27>
        <M8000C37>0</M8000C37>
        <M8000C38>0</M8000C38>
        <M8000C39>0</M8000C39>
        <M8000C40>0</M8000C40>
        <M8000C41>0</M8000C41>
        <M8000C42>0</M8000C42>
      </PMTarget>
    </PMMOResult>
	 </PMSetup>
</OMeS>


JSON -:

{
	"OMeS": {
		"PMSetup": {
			"PMMOResult": [{
				"MO": {
					"DN": null
				},
				"PMTarget": {
					"M40002C1": 0,
					"M40002C2": 5622,
					"M40002C0": 5622,
					"@measurementType": "SBTS_Energy_Consumption"
				}
			}, {
				"MO": {
					"DN": null
				},
				"PMTarget": {
					"M8000C6": 0,
					"M8000C7": 0,
					"M8000C8": 0,
					"M8000C9": 0,
					"M8000C11": 0,
					"M8000C13": 0,
					"M8000C14": 0,
					"M8000C15": 0,
					"M8000C16": 0,
					"M8000C26": 0,
					"M8000C27": 0,
					"M8000C37": 0,
					"M8000C38": 0,
					"M8000C39": 0,
					"M8000C40": 0,
					"M8000C41": 0,
					"M8000C42": 0,
					"@measurementType": "LTE_S1AP"
				}
			}
"@startTime": "2023-06-15T16:00:00.000+05:30:00", 			"@interval": 15 		} 	}

Read more here: Source link