{"id":22357,"date":"2014-03-07T16:00:48","date_gmt":"2014-03-07T14:00:48","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=22357"},"modified":"2014-03-07T12:40:12","modified_gmt":"2014-03-07T10:40:12","slug":"xml-to-avro-conversion","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html","title":{"rendered":"XML to Avro Conversion"},"content":{"rendered":"<p>We all know what XML is right? \u00a0Just in case not, no problem here is what it is all about.<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n<pre class=\" brush:xml\">&lt;root&gt;\r\n&lt;node&gt;5&lt;\/node&gt;\r\n&lt;\/root&gt;<\/pre>\n<p>Now, what the computer really needs is the number five and some context around it. In XML you (human and computer) can see how it represents context to five. Now lets say instead you have a business XML document like <a href=\"http:\/\/www.fpml.org\/\" target=\"_blank\">FPML<\/a><\/p>\n<pre class=\" brush:xml\">&lt;FpML xmlns=\"http:\/\/www.fpml.org\/2007\/FpML-4-4\" xmlns:fpml=\"http:\/\/www.fpml.org\/2007\/FpML-4-4\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" version=\"4-4\" xsi:schemaLocation=\"http:\/\/www.fpml.org\/2007\/FpML-4-4 ..\/fpml-main-4-4.xsd http:\/\/www.w3.org\/2000\/09\/xmldsig# ..\/xmldsig-core-schema.xsd\" xsi:type=\"RequestTradeConfirmation\"&gt;\r\n&lt;!--  start of distinct  --&gt;\r\n&lt;strike&gt;\r\n&lt;strikePrice&gt;32.00&lt;\/strikePrice&gt;\r\n&lt;\/strike&gt;\r\n&lt;numberOfOptions&gt;150000&lt;\/numberOfOptions&gt;\r\n&lt;optionEntitlement&gt;1.00&lt;\/optionEntitlement&gt;\r\n&lt;equityPremium&gt;\r\n&lt;payerPartyReference href=\"party2\"\/&gt;\r\n&lt;receiverPartyReference href=\"party1\"\/&gt;\r\n&lt;paymentAmount&gt;\r\n&lt;currency&gt;EUR&lt;\/currency&gt;\r\n&lt;amount&gt;405000&lt;\/amount&gt;\r\n&lt;\/paymentAmount&gt;\r\n&lt;paymentDate&gt;\r\n&lt;unadjustedDate&gt;2001-07-17Z&lt;\/unadjustedDate&gt;\r\n&lt;dateAdjustments&gt;\r\n&lt;businessDayConvention&gt;NONE&lt;\/businessDayConvention&gt;\r\n&lt;\/dateAdjustments&gt;\r\n&lt;\/paymentDate&gt;\r\n&lt;pricePerOption&gt;\r\n&lt;currency&gt;EUR&lt;\/currency&gt;\r\n&lt;amount&gt;2.70&lt;\/amount&gt;\r\n&lt;\/pricePerOption&gt;\r\n&lt;\/equityPremium&gt;\r\n&lt;\/equityOption&gt;\r\n&lt;calculationAgent&gt;\r\n&lt;calculationAgentPartyReference href=\"party1\"\/&gt;\r\n&lt;\/calculationAgent&gt;\r\n&lt;documentation&gt;\r\n&lt;masterAgreement&gt;\r\n&lt;masterAgreementType&gt;ISDA2002&lt;\/masterAgreementType&gt;\r\n&lt;\/masterAgreement&gt;\r\n&lt;contractualDefinitions&gt;ISDA2002Equity&lt;\/contractualDefinitions&gt;\r\n&lt;!--\r\n populate credit support document with correct value \r\n--&gt;\r\n&lt;creditSupportDocument&gt;TODO&lt;\/creditSupportDocument&gt;\r\n&lt;\/documentation&gt;\r\n&lt;governingLaw&gt;GBEN&lt;\/governingLaw&gt;\r\n&lt;\/trade&gt;\r\n&lt;party id=\"party1\"&gt;\r\n&lt;partyId&gt;Party A&lt;\/partyId&gt;\r\n&lt;\/party&gt;\r\n&lt;party id=\"party2\"&gt;\r\n&lt;partyId&gt;Party B&lt;\/partyId&gt;\r\n&lt;\/party&gt;\r\n&lt;\/FpML&gt;<\/pre>\n<p>That is a lot of extra unnecessary data points. Now lets look at this using <a href=\"http:\/\/avro.apache.org\/\" target=\"_blank\">Apache Avro<\/a>.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>With Avro, the context and the values are separated. This means the schema\/structure of what the information is does not get stored or streamed over and over and over and over (and over) again.<\/p>\n<p>The Avro schema is hashed. So the data structure only holds the value and the computer understands the fingerprint (the hash) of the schema and can retrieve the schema using the fingerprint.<\/p>\n<pre class=\" brush:bash\">0x d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592<\/pre>\n<p>This type of implementation is pretty typical in the data space.<\/p>\n<p>When you do this you can reduce your data between 20%-80%. When I tell folks this they immediately ask, \u201cwhy such a large gap of unknowns\u201d. The answer is because not every XML is created the same. But that is the problem because you are duplicating the information the computer needs to understand the data. XML is nice for humans to read, sure \u2026 but that is not optimized for the computer.<\/p>\n<p>Here is a converter we are working on <a href=\"https:\/\/github.com\/stealthly\/xml-avro\" target=\"_blank\">https:\/\/github.com\/stealthly\/xml-avro<\/a> to help get folks off of XML and onto lower cost, open source systems. This allows you to keep parts of your systems (specifically the domain business code) using the XML and not having to be changed (risk mitigation) but store and stream the data with less overhead (optimize budget).<br \/>\n&nbsp;<\/p>\n<div style=\"border: 1px solid #D8D8D8; background: #FAFAFA; width: 100%; padding-left: 5px;\"><b><i>Reference: <\/i><\/b><a href=\"http:\/\/allthingshadoop.com\/2014\/02\/26\/xml-to-avro-conversion\/\">XML to Avro Conversion<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/jcg\">JCG partner<\/a> Joe Stein at the <a href=\"http:\/\/allthingshadoop.com\/\">All Things Hadoop<\/a> blog.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>We all know what XML is right? \u00a0Just in case not, no problem here is what it is all about. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;root&gt; &lt;node&gt;5&lt;\/node&gt; &lt;\/root&gt; Now, what the computer really needs is the number five and some context around it. In XML you (human and computer) can see &hellip;<\/p>\n","protected":false},"author":455,"featured_media":112,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[931,107],"class_list":["post-22357","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-apache-avro","tag-xml"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>XML to Avro Conversion<\/title>\n<meta name=\"description\" content=\"We all know what XML is right? \u00a0Just in case not, no problem here is what it is all about. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"XML to Avro Conversion\" \/>\n<meta property=\"og:description\" content=\"We all know what XML is right? \u00a0Just in case not, no problem here is what it is all about. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:author\" content=\"http:\/\/facebook.com\/joestein\" \/>\n<meta property=\"article:published_time\" content=\"2014-03-07T14:00:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joe Stein\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/allthingshadoop\/\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joe Stein\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html\"},\"author\":{\"name\":\"Joe Stein\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/b1f5a6be8bcfcea3f085aff252d6d406\"},\"headline\":\"XML to Avro Conversion\",\"datePublished\":\"2014-03-07T14:00:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html\"},\"wordCount\":321,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"keywords\":[\"Apache Avro\",\"XML\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html\",\"name\":\"XML to Avro Conversion\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"datePublished\":\"2014-03-07T14:00:48+00:00\",\"description\":\"We all know what XML is right? \u00a0Just in case not, no problem here is what it is all about. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"java-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/03\\\/xml-to-avro-conversion.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"XML to Avro Conversion\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/b1f5a6be8bcfcea3f085aff252d6d406\",\"name\":\"Joe Stein\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0d95bf7b08a1f2e3e104ecbdb9b19ad0daf788a27944ebcf5ee70e258a69ce0d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0d95bf7b08a1f2e3e104ecbdb9b19ad0daf788a27944ebcf5ee70e258a69ce0d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0d95bf7b08a1f2e3e104ecbdb9b19ad0daf788a27944ebcf5ee70e258a69ce0d?s=96&d=mm&r=g\",\"caption\":\"Joe Stein\"},\"sameAs\":[\"http:\\\/\\\/allthingshadoop.com\\\/\",\"http:\\\/\\\/facebook.com\\\/joestein\",\"http:\\\/\\\/www.linkedin.com\\\/in\\\/charmalloc\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/allthingshadoop\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/joe-stein\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"XML to Avro Conversion","description":"We all know what XML is right? \u00a0Just in case not, no problem here is what it is all about. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;","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:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html","og_locale":"en_US","og_type":"article","og_title":"XML to Avro Conversion","og_description":"We all know what XML is right? \u00a0Just in case not, no problem here is what it is all about. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;","og_url":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_author":"http:\/\/facebook.com\/joestein","article_published_time":"2014-03-07T14:00:48+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","type":"image\/jpeg"}],"author":"Joe Stein","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/allthingshadoop\/","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Joe Stein","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html"},"author":{"name":"Joe Stein","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/b1f5a6be8bcfcea3f085aff252d6d406"},"headline":"XML to Avro Conversion","datePublished":"2014-03-07T14:00:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html"},"wordCount":321,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","keywords":["Apache Avro","XML"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html","url":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html","name":"XML to Avro Conversion","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","datePublished":"2014-03-07T14:00:48+00:00","description":"We all know what XML is right? \u00a0Just in case not, no problem here is what it is all about. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","width":150,"height":150,"caption":"java-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2014\/03\/xml-to-avro-conversion.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"XML to Avro Conversion"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/b1f5a6be8bcfcea3f085aff252d6d406","name":"Joe Stein","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0d95bf7b08a1f2e3e104ecbdb9b19ad0daf788a27944ebcf5ee70e258a69ce0d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0d95bf7b08a1f2e3e104ecbdb9b19ad0daf788a27944ebcf5ee70e258a69ce0d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0d95bf7b08a1f2e3e104ecbdb9b19ad0daf788a27944ebcf5ee70e258a69ce0d?s=96&d=mm&r=g","caption":"Joe Stein"},"sameAs":["http:\/\/allthingshadoop.com\/","http:\/\/facebook.com\/joestein","http:\/\/www.linkedin.com\/in\/charmalloc","https:\/\/x.com\/https:\/\/twitter.com\/allthingshadoop\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/joe-stein"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/22357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/455"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=22357"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/22357\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=22357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=22357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=22357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}