[ 
https://issues.apache.org/jira/browse/NIFI-4185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16394487#comment-16394487
 ] 

Johannes Peter edited comment on NIFI-4185 at 3/11/18 12:34 PM:
----------------------------------------------------------------

[~alopresto]:
  Started implementing an XML Record Reader. Shall I create a separate ticket 
for this?

Similar to the JSON readers, the XML reader will expect either a single record 
(e. g. <root><field1>content<field1/><field2> ... <root/>) or an array of 
records (e. g. <root><record><field1>content<field1/><field2> ... 
<record/><record> ... <root/>)

The reader will be aligned with common transformators. "Normal" fields (e. g. 
String, Integer) can be described by simple key-value pairs:

XML definition
 <root>
   <record>
     <field1>content<field1/>
     <field2>123<field2/>
   <record/>
 <root/>

Schema definition

{   "name": "testschema",

  "namespace": "nifi",

  "type": "record",   "fields": [

     \{ "name": "field1", "type": "string" },

     \{ "name": "field2", "type": "int" }

   ]
 }

Parsing of attributes or nested fields require the definition of nested records 
and a field name for the content (optional, a prefix for attributes can be 
defined):
 Property: CONTENT_FIELD=content_field
 Property: ATTRIBUTE_PREFIX=attr.

XML definition
 <root>
  <record>
    <field1 attribute="attr123">some text<field1/>
    <field2 attribute="attr123">
      <nested1>some nested text</nested1>
      <nested2>some other nested text</nested2>
    <field2/>
  <record/>
 <root/>

Schema definition
 { 
  "name": "testschema",
  "namespace": "nifi",
  "type": "record",
  "fields": [
    {
      "name": "field1", 
      "type": {
         "name": "NestedRecord",
         "type": "record",
         "fields" : [

            \{"name": "attr.attribute", "type": "string"},

            \{"name": "content_field", "type": "string"}

         ]
      }
  },
  {
    "name": "field2", 
    "type": {
      "name": "NestedRecord",
      "type": "record",
      "fields" : [

           \{"name": "attr.attribute", "type": "string"},

           \{"name": "nested1", "type": "string"},

           \{"name": "nested2", "type": "string"}

        ]
      }
   }
  ]
 }

What do you say?


was (Author: jope):
[~alopresto]:
  Started implementing an XML Record Reader. Shall I create a separate ticket 
for this?

Similar to the JSON readers, the XML reader will expect either a single record 
(e. g. <root><field1>content<field1/><field2> ... <root/>) or an array of 
records (e. g. <root><record><field1>content<field1/><field2> ... 
<record/><record> ... <root/>)

The reader will be aligned with common transformators. "Normal" fields (e. g. 
String, Integer) can be described by simple key-value pairs:

XML definition
 <root>
  <record>
    <field1>content<field1/>
    <field2>123<field2/>
  <record/>
 <root/>

Schema definition
 {
 "name": "testschema",
 "namespace": "nifi",
 "type": "record",
 "fields": [

{ "name": "field1", "type": "string" }

,

{ "name": "field2", "type": "int" }

]
 }

Parsing of attributes or nested fields require the definition of nested records 
and a field name for the content (optional, a prefix for attributes can be 
defined):
 Property: CONTENT_FIELD=content_field
 Property: ATTRIBUTE_PREFIX=attr.

XML definition
 <root>
 <record>
 <field1 attribute="attr123">some text<field1/>
 <field2 attribute="attr123">
 <nested1>some nested text</nested1>
 <nested2>some other nested text</nested2>
 <field2/>
 <record/>
 <root/>

Schema definition
 { 
 "name": "testschema",
 "namespace": "nifi",
 "type": "record",
 "fields": [
 {
 "name": "field1", 
 "type": {
 "name": "NestedRecord",
 "type": "record",
 "fields" : [

{"name": "attr.attribute", "type": "string"}

,

{"name": "content_field", "type": "string"}

]
 }
 },
 {
 "name": "field2", 
 "type": {
 "name": "NestedRecord",
 "type": "record",
 "fields" : [

{"name": "attr.attribute", "type": "string"}

,

{"name": "nested1", "type": "string"}

,

{"name": "nested2", "type": "string"}

]
 }
 }
 ]
 }

What do you say?

> Add XML record reader & writer services
> ---------------------------------------
>
>                 Key: NIFI-4185
>                 URL: https://issues.apache.org/jira/browse/NIFI-4185
>             Project: Apache NiFi
>          Issue Type: New Feature
>          Components: Extensions
>    Affects Versions: 1.3.0
>            Reporter: Andy LoPresto
>            Priority: Major
>              Labels: json, records, xml
>
> With the addition of the {{RecordReader}} and {{RecordSetWriter}} paradigm, 
> XML conversion has not yet been targeted. This will replace the previous 
> ticket for XML to JSON conversion. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to