Я использую BeanIO 1.2 в java, и вот мое сопоставление:
<stream name="RecordImport" format="delimited">
<record name="Record" minOccurs="1" maxOccurs="unbounded" class="com.myclasses.Record">
<field name="date" type="date" format="MM/dd/yyyy" trim="true"/>
<field name="user" type="string" trim="true"/>
<field name="storage" type="string" trim="true"/>
<field name="product" type="string" trim="true"/>
<field name="qty" type="bigdecimal" format="#,##0" trim="true"/>
<field name="altQty1" type="bigdecimal" format="#,##0" trim="true"/>
<field name="altQty2" type="bigdecimal" format="#,##0" trim="true"/>
<field name="altQty3" type="bigdecimal" format="#,##0" trim="true"/>
</record>
</stream>
и мой текстовый файл выглядит так:
3/11/2012 lpq 200011 RDD1006 8
3/11/2012 lpq 200011 RDD1006 8
3/11/2012 lpq 200011 RDD1006 8 1 2 3
3/11/2012 lpq 200011 RDD1006 8
В результате я получаю это сообщение:
"- Line 4: Too few fields, expected 8 minimum."
Теперь это странно, потому что у меня есть вкладки, указывающие на то, что в четвертой строке есть 8 полей. Кажется, это происходит из-за того, что последние поля дерева в 4-й строке равны нулю. Мне нужна возможность, чтобы они были нулевыми, но чтобы это сообщение не поднималось. Что еще странно, так это то, что это происходит только для 4-й строки, а не для 1-й или 2-й.
Любые идеи?
minOccurs="0"
к необязательным объявлениям<field>
? См. также: beanio.org/2.0/docs/reference/index.html #NullFields - person Tomasz Nurkiewicz   schedule 18.10.2012