I am trying to set up my mapping.xml file for BeanIO writing and I am running into some issues.
I am trying to get my output to look like the following:
<EmailRequest>
<Header>
<Version>1.0.0</Version>
<ApplicationId>1234</ApplicationId>
<SessionKey>SESSION_KEY</SessionKey>
</Header>
<BulkEmail>
<TemplateName>TEMPLATE_NAME</TemplateName>
<Search>
<SearchOption>SOLE</SearchOption>
</Search>
<ColumnDelimiter>|</ColumnDelimiter>
<RowDelimiter>NEWLINE</RowDelimiter>
<Sequence>
<VariableName>REWARD_NUMBER</VariableName>
<VariableName>REWARD_NUMBER</VariableName>
</Sequence>
</BulkEmail>
</EmailRequest>
But I am running int some issues. I have created a bean for each of "BulkEmail", "Search", "Header", and "Sequence" but everytime I try to run my write I get the following error:
Exception in thread "main" org.beanio.BeanIOConfigurationException: Invalid record 'Header', in stream 'EmailRequest': Invalid bean class 'com.xmlheader.Header'
Is this something easily fixed? Or wrong with my mapping? Or if you have an easier way to do this that would be greatly appreciated! The mapping can be found below, thank you for your help!
<stream name="EmailRequest" format="xml">
<record name="requestHeader" class="com.xmlheader.Header">
<field name="Version" />
<field name="ApplicationId" />
<field name="SessionKey" />
</record>
<record name="BulkEmail" class="com.xmlheader.BulkEmail">
<field name="TemplateName" />
<bean name="search" class="com.xmlheader.Search" xmlType="element">
<field name="SearchOption" />
</bean>
<field name="ColumnDelimiter" />
<field name="RowDelimiter" />
<bean name="Sequence" class="com.xmlheader.Sequence" xmlType="element">
<field name="VariableName" />
</bean>
</record>
</stream>