Gábor Gyimesi created NIFI-14780:
------------------------------------

             Summary: XMLReader writes null value if "Field Name for Content" 
is not set
                 Key: NIFI-14780
                 URL: https://issues.apache.org/jira/browse/NIFI-14780
             Project: Apache NiFi
          Issue Type: Bug
            Reporter: Gábor Gyimesi


In the XMLReader controller service if the 'Parse XML Attributes' is set to 
true then XML node attributes are written as record fields. In this case the 
content and the attributes are defined together as a record. In such a case, 
the name of the tag will be used as the name for the record and the value of 
this property will be used as the name for the field holding the original 
content. The 'Field Name for Content' property is used in this case to define 
the field name for the content in the record. For example if this attribute is 
set to 'tagValue' this will be the result using the XMLReader and the 
JsonRecordSetWriter:

Input:

<note>
<to alias="TK">Kyle</to>
<from>Stan</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Output:

[\{"to":{"alias":"TK","tagValue":"Kyle"},"from":"Stan","heading":"Reminder","body":"Don't
 forget me this weekend!"}] 

However when the 'Field Name for Content' is not set the content is meant to be 
ignored and not written, resulting in the following debug message:

"Found content for a field that was supposed to be named with the value of the 
"Field Name for Content" property but the property was not set. The content was 
not added to the record."

This seems to be inconsistent with the result seen in the flow file, because 
when the 'Field Name for Content' is empty a default "value" field is created 
without any value:

[\{"to":{"alias":"TK","value":null},"from":"Stan","heading":"Reminder","body":"Don't
 forget me this weekend!"}] 

I think this is inconsistent, we should either create a default "value" record 
field with the XML tag content if the "Field Name for Content" property is 
empty or we should not create any default "value" record fields at all.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to