{"id":10630,"date":"2016-11-18T13:01:48","date_gmt":"2016-11-18T18:01:48","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=10630"},"modified":"2017-11-03T14:35:24","modified_gmt":"2017-11-03T18:35:24","slug":"using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity","status":"publish","type":"post","link":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/","title":{"rendered":"Using Sonra Flexter to Process Complex XML Files in IRI Voracity"},"content":{"rendered":"<p><a href=\"http:\/\/sonra.io\"><span style=\"font-weight: 400;\">Sonra <\/span><\/a><span style=\"font-weight: 400;\">recently demonstrated the processing of complex XML data in the <\/span><a href=\"http:\/\/www.iri.com\/products\/voracity\"><span style=\"font-weight: 400;\">IRI Voracity<\/span><\/a><span style=\"font-weight: 400;\"> data management platform with the help of Sonra\u2019s <\/span><a href=\"https:\/\/flexter.sonra.io\/\"><span style=\"font-weight: 400;\">Flexter Data Liberator<\/span><\/a><span style=\"font-weight: 400;\"> software. Flexter and Voracity are a match made in heaven. Flexter is great at converting complex files like XML into structured formats. IRI Voracity, through CoSort or Hadoop engines, excels at data transformations &#8212; as well as data masking &#8212; on large, structured datasets.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this blog post, I will show you how my POC combined these technologies to break complex XML data into constituent CSV files, and then masked personally identifiable information (PII) in them, such as email addresses. \u00a0<\/span><\/p>\n<h3><b>Create Target Schema and CSVs from XML<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">As a first step, \u00a0we use Flexter to transform the XML data into CSV files. Flexter can work with arbitrarily complex XML schemas. For this example, I selected a particularly complex XML schema, the <\/span><a href=\"http:\/\/www.iata.org\/whatwedo\/airline-distribution\/ndc\/Pages\/default.aspx\"><span style=\"font-weight: 400;\">NDC standard<\/span><\/a><span style=\"font-weight: 400;\"> from <\/span><a href=\"http:\/\/www.iata.org\"><span style=\"font-weight: 400;\">IATA <\/span><\/a><span style=\"font-weight: 400;\">. NDC stands for New Distribution Capability, and is a widely used industry standard in the aviation industry. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The schema contains hundreds of elements and is made up of X interconnected and embedded XSD files. It covers most business processes (Shopping, Order Management, Airline Profiles, etc.) in the aviation industry for the purpose of data exchange. You can download the NDC schema from the <\/span><a href=\"http:\/\/www.iata.org\/whatwedo\/airline-distribution\/ndc\/Pages\/schema-description.aspx\"><span style=\"font-weight: 400;\">NDC schema page<\/span><span style=\"font-weight: 400;\">.<\/span><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Below are some of the XSD files that are part of the NDC standard:<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/1-XSD-files.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10631\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/1-XSD-files.png\" alt=\"XSD files\" width=\"600\" height=\"522\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/1-XSD-files.png 745w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/1-XSD-files-300x261.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Each of the above XSD files references the core schema <\/span><i><span style=\"font-weight: 400;\">edist_commontype.xsd<\/span><\/i><span style=\"font-weight: 400;\">, which contains the bulk of the schema. One of the elements in this schema is email contact. This is the file we will protect using some of the <\/span><a href=\"http:\/\/www.iri.com\/solutions\/data-masking\"><span style=\"font-weight: 400;\">data masking<\/span><\/a><span style=\"font-weight: 400;\"> functions available to <\/span><a href=\"http:\/\/www.iri.com\/products\/fieldshield\"><span style=\"font-weight: 400;\">IRI FieldShield<\/span><\/a><span style=\"font-weight: 400;\"> product, or IRI Voracity platform, users.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">&lt;xsd:element name=\"EmailContact\" type=\"EmailType\"&gt;<\/span>\r\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;xsd:annotation&gt;<\/span>\r\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;xsd:documentation source=\"description\" xml:lang=\"en\"&gt;Email address details, including application (I.e. home, business, etc.).&lt;\/xsd:documentation&gt;<\/span>\r\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/xsd:annotation&gt;<\/span>\r\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0&lt;\/xsd:element&gt;<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">We convert this schema and our XML files with Flexter by running the <\/span><i><span style=\"font-weight: 400;\">flexter_in_out.sh<\/span><\/i><span style=\"font-weight: 400;\"> script. We pass in the name of the XSD and the folder where we have stored our XML files. This creates a relational target schema and the corresponding CSV files for each table.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">.\/flexter_in_out.sh in\/xml\/ in\/OrderCreateRQ.xsd<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">The output is the target schema:<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/2-Target-Schema.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10632\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/2-Target-Schema.png\" alt=\"Target Schema\" width=\"600\" height=\"292\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/2-Target-Schema.png 655w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/2-Target-Schema-300x146.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u2026 and the CSV files:<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/3-CSV-files.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10633\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/3-CSV-files.png\" alt=\"CSV files\" width=\"583\" height=\"385\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/3-CSV-files.png 583w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/3-CSV-files-300x198.png 300w\" sizes=\"(max-width: 583px) 100vw, 583px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">An extract from OrderCreateRQ.csv:<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/4-Extract-from-OrderCreateRQ.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10634\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/4-Extract-from-OrderCreateRQ.png\" alt=\"Extract from ordercreaterq.png\" width=\"600\" height=\"26\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/4-Extract-from-OrderCreateRQ.png 1497w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/4-Extract-from-OrderCreateRQ-300x13.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/4-Extract-from-OrderCreateRQ-768x34.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/4-Extract-from-OrderCreateRQ-1024x45.png 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/span><\/p>\n<h3><b>Masking and Encrypting the Email Addresses<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">We have seen Flexter in action. So far, so good. Let\u2019s hand the results over to Voracity. We feed the CSV output from Flexter into IRI\u2019s <\/span><b>csv2ddf<\/b><span style=\"font-weight: 400;\"> utility, which runs in the IRI Workbench <\/span><a href=\"http:\/\/www.iri.com\/products\/workbench\/voracity-gui\"><span style=\"font-weight: 400;\">GUI for Voracity<\/span><\/a><span style=\"font-weight: 400;\"> (built on Eclipse\u2122) or on the command line. Either way, it parses the <\/span><a href=\"http:\/\/www.iri.com\/solutions\/data-and-database-migration\/file-conversion\/csv\"><span style=\"font-weight: 400;\">CSV files<\/span><\/a><span style=\"font-weight: 400;\"> and creates a data definition file (<\/span><a href=\"http:\/\/www.iri.com\/products\/cosort\/sortcl-metadata\/details\"><span style=\"font-weight: 400;\">DDF<\/span><\/a><span style=\"font-weight: 400;\">) for each of our CSV files.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/5-DDF.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10635\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/5-DDF.png\" alt=\"DDF\" width=\"342\" height=\"367\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/5-DDF.png 342w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/5-DDF-280x300.png 280w\" sizes=\"(max-width: 342px) 100vw, 342px\" \/><\/a><span style=\"font-weight: 400;\"><br \/>\nBelow is a screenshot of the generated DDF files:<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/6-DDF-generated.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10636\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/6-DDF-generated.png\" alt=\"DDF generated\" width=\"588\" height=\"367\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/6-DDF-generated.png 588w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/6-DDF-generated-300x187.png 300w\" sizes=\"(max-width: 588px) 100vw, 588px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Each DDF file contains a description of the fields for each input file. The DDF for <\/span><i><span style=\"font-weight: 400;\">OriginDestination1.csv<\/span><\/i><span style=\"font-weight: 400;\">, for example, is shown here:<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/7-OriginDestination1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10637\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/7-OriginDestination1.png\" alt=\"OriginDestination1\" width=\"541\" height=\"370\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/7-OriginDestination1.png 541w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/7-OriginDestination1-300x205.png 300w\" sizes=\"(max-width: 541px) 100vw, 541px\" \/><\/a><\/span><span style=\"font-weight: 400;\">An IRI job script &#8212; in the language called <\/span><a href=\"http:\/\/www.iri.com\/products\/cosort\/sortcl\"><span style=\"font-weight: 400;\">SortCL<\/span><\/a><span style=\"font-weight: 400;\"> &#8212; references that .DDF as it specifies the sort of one field in the input file, and the masking of four of them on output:<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/8-IRI-job-script.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10638\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/8-IRI-job-script.png\" alt=\"IRI job script\" width=\"600\" height=\"256\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/8-IRI-job-script.png 1020w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/8-IRI-job-script-300x128.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/8-IRI-job-script-768x328.png 768w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/span><span style=\"font-weight: 400;\"><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/9-Output-File-Results.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10639\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/9-Output-File-Results.png\" alt=\"Output File Results\" width=\"600\" height=\"232\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/9-Output-File-Results.png 1130w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/9-Output-File-Results-300x116.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/9-Output-File-Results-768x297.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/9-Output-File-Results-1024x396.png 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Shown above are the output file results of the sorting and data masking job.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In addition to sorting and redaction, and a host of other <\/span><a href=\"http:\/\/www.iri.com\/solutions\/data-transformation\"><span style=\"font-weight: 400;\">data transformations<\/span><\/a><span style=\"font-weight: 400;\">, you can also use CoSort\u2019s SortCL or FieldShield executables to <\/span><a href=\"http:\/\/www.iri.com\/solutions\/data-masking\/encryption\"><span style=\"font-weight: 400;\">encrypt<\/span><\/a><span style=\"font-weight: 400;\"> and decrypt data in CSV files and other <\/span><a href=\"http:\/\/www.iri.com\/products\/workbench\/data-sources\"><span style=\"font-weight: 400;\">sources<\/span><\/a><span style=\"font-weight: 400;\">. Encryption is particularly useful for obfuscating data that needs to be restored at some later point.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/10-specpassenger.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10640\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/10-specpassenger.png\" alt=\"specpassenger\" width=\"570\" height=\"188\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/10-specpassenger.png 570w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/10-specpassenger-300x99.png 300w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/a><\/p>\n<h3><b>Integration with the IRI Workbench GUI<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Of course, we can also import our Flexter-generated CSV files into <\/span><a href=\"http:\/\/www.iri.com\/products\/workbench\"><span style=\"font-weight: 400;\">IRI Workbench<\/span><\/a><span style=\"font-weight: 400;\">, the graphical IDE for all IRI software, built on Eclipse. To do that, we select <\/span><i><span style=\"font-weight: 400;\">File &gt; Import<\/span><\/i><span style=\"font-weight: 400;\"> in the IRI Workbench menu. In the Import window, we select <\/span><i><span style=\"font-weight: 400;\">File System <\/span><\/i><span style=\"font-weight: 400;\">and select the folder with the data we generated in the original steps.<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/11-Import-Select.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10641\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/11-Import-Select.png\" alt=\"Import select\" width=\"600\" height=\"595\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/11-Import-Select.png 618w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/11-Import-Select-150x150.png 150w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/11-Import-Select-300x298.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Select script, output, and metadata folders, and also select the folder that contains your project.<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10642\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png\" alt=\"Import file system\" width=\"600\" height=\"598\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png 617w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System-150x150.png 150w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System-300x300.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Now that we have the files in the Workbench, we can apply additional transformations to the data using the comfort of a free and familiar, graphical user interface (e.g., additional protection rules). See <\/span><a href=\"http:\/\/www.iri.com\/products\/workbench\/voracity-gui\/design\"><span style=\"font-weight: 400;\">this page<\/span><\/a><span style=\"font-weight: 400;\"> for more information on the job design options available to Workbench users.<br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/13-New-Field-Rule-Wizard.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10643\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/11\/13-New-Field-Rule-Wizard.png\" alt=\"New field rule wizard\" width=\"510\" height=\"503\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/13-New-Field-Rule-Wizard.png 510w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/13-New-Field-Rule-Wizard-300x296.png 300w\" sizes=\"(max-width: 510px) 100vw, 510px\" \/><\/a><\/span><\/p>\n<h3><b>What\u2019s next?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The above tutorial shows how a powerful data management platform such as IRI Voracity can work well in tandem with <\/span><a href=\"http:\/\/sonra.io\/flexter-for-xml\/\"><span style=\"font-weight: 400;\">Flexter Data Liberator<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Obviously, we could make the whole process more seamless by directly integrating Flexter into the IRI Workbench <\/span><a href=\"http:\/\/www.iri.com\/products\/workbench\/voracity-gui\"><span style=\"font-weight: 400;\">GUI for Voracity<\/span><\/a><span style=\"font-weight: 400;\">; e.g., via an Eclipse plugin. Both IRI Voracity and Flexter also have advanced REST APIs to integrate the two tools even further. The above post should have given you an overview on what is possible at this juncture.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sonra recently demonstrated the processing of complex XML data in the IRI Voracity data management platform with the help of Sonra\u2019s Flexter Data Liberator software. Flexter and Voracity are a match made in heaven. Flexter is great at converting complex files like XML into structured formats. IRI Voracity, through CoSort or Hadoop engines, excels at<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/\" title=\"Using Sonra Flexter to Process Complex XML Files in IRI Voracity\">Read More<\/a><\/div>\n","protected":false},"author":104,"featured_media":10642,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[8,1,91],"tags":[1192,1191,100,1190,789,550],"class_list":["post-10630","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","category-data-transformation2","category-iri-workbench","tag-data-encryption-xml","tag-data-masking-xml","tag-etl","tag-flexter","tag-iri-voracity","tag-xml"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Using Sonra Flexter to Process Complex XML Files in IRI Voracity - IRI<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Sonra Flexter to Process Complex XML Files in IRI Voracity - IRI\" \/>\n<meta property=\"og:description\" content=\"Sonra recently demonstrated the processing of complex XML data in the IRI Voracity data management platform with the help of Sonra\u2019s Flexter Data Liberator software. Flexter and Voracity are a match made in heaven. Flexter is great at converting complex files like XML into structured formats. IRI Voracity, through CoSort or Hadoop engines, excels atRead More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-18T18:01:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-03T18:35:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png\" \/>\n\t<meta property=\"og:image:width\" content=\"617\" \/>\n\t<meta property=\"og:image:height\" content=\"615\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Uli Bethke\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Uli Bethke\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/\"},\"author\":{\"name\":\"Uli Bethke\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/acc581bfef8e29ae36a70cafd77121a7\"},\"headline\":\"Using Sonra Flexter to Process Complex XML Files in IRI Voracity\",\"datePublished\":\"2016-11-18T18:01:48+00:00\",\"dateModified\":\"2017-11-03T18:35:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/\"},\"wordCount\":776,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png\",\"keywords\":[\"Data Encryption XML\",\"Data Masking XML\",\"ETL\",\"Flexter\",\"IRI Voracity\",\"xml\"],\"articleSection\":[\"Data Masking\/Protection\",\"Data Transformation\",\"IRI Workbench\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/\",\"url\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/\",\"name\":\"Using Sonra Flexter to Process Complex XML Files in IRI Voracity - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png\",\"datePublished\":\"2016-11-18T18:01:48+00:00\",\"dateModified\":\"2017-11-03T18:35:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#primaryimage\",\"url\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png\",\"contentUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png\",\"width\":617,\"height\":615,\"caption\":\"Import file system\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/beta.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Sonra Flexter to Process Complex XML Files in IRI Voracity\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#website\",\"url\":\"https:\/\/beta.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/beta.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/beta.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"width\":750,\"height\":206,\"caption\":\"IRI\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/acc581bfef8e29ae36a70cafd77121a7\",\"name\":\"Uli Bethke\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0ecf5eeb999d448380e478be54356df2?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0ecf5eeb999d448380e478be54356df2?s=96&d=blank&r=g\",\"caption\":\"Uli Bethke\"},\"url\":\"https:\/\/beta.iri.com\/blog\/author\/ulibethke\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using Sonra Flexter to Process Complex XML Files in IRI Voracity - IRI","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/","og_locale":"en_US","og_type":"article","og_title":"Using Sonra Flexter to Process Complex XML Files in IRI Voracity - IRI","og_description":"Sonra recently demonstrated the processing of complex XML data in the IRI Voracity data management platform with the help of Sonra\u2019s Flexter Data Liberator software. Flexter and Voracity are a match made in heaven. Flexter is great at converting complex files like XML into structured formats. IRI Voracity, through CoSort or Hadoop engines, excels atRead More","og_url":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/","og_site_name":"IRI","article_published_time":"2016-11-18T18:01:48+00:00","article_modified_time":"2017-11-03T18:35:24+00:00","og_image":[{"width":617,"height":615,"url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png","type":"image\/png"}],"author":"Uli Bethke","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Uli Bethke","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#article","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/"},"author":{"name":"Uli Bethke","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/acc581bfef8e29ae36a70cafd77121a7"},"headline":"Using Sonra Flexter to Process Complex XML Files in IRI Voracity","datePublished":"2016-11-18T18:01:48+00:00","dateModified":"2017-11-03T18:35:24+00:00","mainEntityOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/"},"wordCount":776,"commentCount":0,"publisher":{"@id":"https:\/\/beta.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png","keywords":["Data Encryption XML","Data Masking XML","ETL","Flexter","IRI Voracity","xml"],"articleSection":["Data Masking\/Protection","Data Transformation","IRI Workbench"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/","url":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/","name":"Using Sonra Flexter to Process Complex XML Files in IRI Voracity - IRI","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#primaryimage"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png","datePublished":"2016-11-18T18:01:48+00:00","dateModified":"2017-11-03T18:35:24+00:00","breadcrumb":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#primaryimage","url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png","contentUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png","width":617,"height":615,"caption":"Import file system"},{"@type":"BreadcrumbList","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/using-sonra-flexter-to-process-complex-xml-files-in-iri-voracity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beta.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Sonra Flexter to Process Complex XML Files in IRI Voracity"}]},{"@type":"WebSite","@id":"https:\/\/beta.iri.com\/blog\/#website","url":"https:\/\/beta.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/beta.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/beta.iri.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/beta.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/beta.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","width":750,"height":206,"caption":"IRI"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/acc581bfef8e29ae36a70cafd77121a7","name":"Uli Bethke","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0ecf5eeb999d448380e478be54356df2?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0ecf5eeb999d448380e478be54356df2?s=96&d=blank&r=g","caption":"Uli Bethke"},"url":"https:\/\/beta.iri.com\/blog\/author\/ulibethke\/"}]}},"jetpack_featured_media_url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/11\/12-Import-File-System.png","_links":{"self":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10630"}],"collection":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/users\/104"}],"replies":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=10630"}],"version-history":[{"count":8,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10630\/revisions"}],"predecessor-version":[{"id":11039,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10630\/revisions\/11039"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media\/10642"}],"wp:attachment":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=10630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=10630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=10630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}