BeanIo/xsd不抛出异常与空白文件/没有记录存在



我要豆子。当记录不存在于文件(空白文件)时,Io映射到through异常。但这并没有发生。虽然它有验证发生="0+"就位。minOccurs=1 maxOccurs=unbounded

我的映射文件

<?xml version="1.0" encoding="UTF-8"?>
<beanio xmlns="http://www.beanio.org/2012/03">
<stream name="Records" format="fixedlength"  strict="true">
<record name="SampleRecord" class="com.test.SampleRecord" **occurs="0+"**>
<field name="mobileNumber" type="string" position="0" length="10" regex="[0-9]*" required="true"/>
<field name="alternateMobileNumber" type="string" position="10" length="20" regex="[0-9]*" required="false"/>
</record>
</stream>
</beanio>

你可以试试这个mapping.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beanio xmlns="http://www.beanio.org/2012/03" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.beanio.org/2012/03 http://www.beanio.org/2012/03/mapping.xsd">
<stream name="Records" format="fixedlength"  strict="true" minOccurs="1">
<record name="SampleRecord" class="com.test.SampleRecord" occurs="0+">
<field name="mobileNumber" type="string" position="0" length="10" regex="[0-9]*" required="true"/>
<field name="alternateMobileNumber" type="string" position="10" length="20" regex="[0-9]*" required="false"/>
</record>
</stream>
</beanio>

注意stream元素上的minOccurs="1"属性。文档是这样说的:

minOccurs -必须读取记录布局的最小次数从输入流。默认为0。

因此,将minOccurs更改为1会导致BeanIO抛出一个异常,并将空字符串作为输入。

相关内容

  • 没有找到相关文章

最新更新