BeanIO设置映射文件XML

时间:2013-10-01 18:19:18

标签: xml mapping bean-io

我正在尝试为BeanIO写入设置我的mapping.xml文件,而且我遇到了一些问题。

我想让输出看起来如下:

<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>

但我正在运行一些问题。我为“BulkEmail”,“Search”,“Header”和“Sequence”创建了一个bean,但每当我尝试运行我的写操作时,我都会收到以下错误:

线程“main”org.beanio.BeanIOConfigurationException中的异常:无效的记录'Header',在流'EmailRequest'中:无效的bean类'com.xmlheader.Header'

这件事很容易解决吗?或者我的映射错了?或者,如果您有一个更简单的方法来做到这一点,将不胜感激!映射可以在下面找到,谢谢你的帮助!

<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>  

1 个答案:

答案 0 :(得分:0)

<record name="requestHeader" class="com.xmlheader.Header"> 应该如下  <record name="Header" class="com.xmlheader.Header"> 因为在你的样本xml中它是'Header'