BeanIO - литраль появляется как дополнительная строка

Пожалуйста, помогите мне удалить ненужные лишние строки для части ниже.

Текущий вывод:

001  Name1Str1 CA   1234 
001  Name2Str2 IN   4321 
005  30Manager Technology
005  50Lead Technology

Код Java:

        ArrayList<Employees1> emps = new ArrayList<>();

        ArrayList<Employee1> empp1 = new ArrayList<>();
        ArrayList<Employee2> empp2 = new ArrayList<>();

        Employees1 employees = new Employees1();

        Employee1 emp1 = new Employee1();
        emp1.setSno("001");
        emp1.setName("Name1");
        emp1.setStreet("Str1");
        emp1.setCity("CA");         
        emp1.setZip("1234");
        empp1.add(emp1);

        Employee2 emp2 = new Employee2();
        emp2.setSno("005");
        emp2.setAge("30");          
        emp2.setPosition("Manager Technology");
        empp2.add(emp2);

        Employee1 emp12 = new Employee1();
        emp12.setSno("001");
        emp12.setName("Name2");
        emp12.setStreet("Str2");
        emp12.setCity("IN");            
        emp12.setZip("4321");
        empp1.add(emp12);

        Employee2 emp22 = new Employee2();
        emp22.setSno("005");
        emp22.setAge("50");         
        emp22.setPosition("Lead Technology");
        empp2.add(emp22);

        employees.setEmployee1(empp1);
        employees.setEmployee2(empp2);

        emps.add(employees);

mapping.xml

<stream name="employeeStream" format="fixedlength">
        <group name="employees" class="com.Employees1">
            <record name="employee1" class="com.Employee1" minOccurs="0"
                maxOccurs="unbounded" collection="list">
                <field name="sno" length="5" rid="true" literal="001" />
                <field name="name" length="5" />
                <field name="street" length="5" />
                <field name="city" length="5" />
                <field name="zip" length="5" />
            </record>
            <record name="employee2" class="com.Employee2" minOccurs="0"
                maxOccurs="unbounded" collection="list">
                <field name="sno" length="5" rid="true" literal="005" />
                <field name="age" length="2" />
                <field name="position" length="18" />
            </record>
        </group>
    </stream>

Код Java:

public class Employee1 {    
    private String sno;
    private String name;
    private String street;
    private String city;
    private String zip;
}

public class Employee2 {    
    private String sno;
    private String age;
    private String position;
}

public class Employees1 implements Serializable 
{
private List<Employee1> employee1 = null;
private List<Employee2> employee2 = null;
}

person sunleo    schedule 17.01.2018    source источник
comment
Кофе все еще не было, но minOccurs="0" возможно?   -  person Joop Eggen    schedule 17.01.2018
comment
Пожалуйста, покажите нам класс Employees1 и код, в котором вы записываете вывод? Какие объекты вы передаете методу BeanWriter.write()?   -  person nicoschl    schedule 17.01.2018
comment
Конфиг делает то, что вы просили. Вы попросили его дважды вывести один и тот же набор сотрудников. Один с sno 001 и полями name,street,city,zip и еще раз с sno 005 и только с полями age и position. Если вы не хотите дублировать выходные данные, у вас должно быть два списка — один с сотрудниками, которых вы хотите вывести в формате 001, и один список, который вы хотите вывести в формате 002. И они, вероятно, также должны иметь два разных класса Java, что смысл иметь один класс Employee1, если вы используете его для разных целей без перекрывающихся полей?   -  person Erwin Bolwidt    schedule 17.01.2018
comment
@ErwinBolwidt Сохранение двух списков работает, но порядок объектов не поддерживается. Есть ли способ также поддерживать порядок объектов? Спасибо за ваш ответ.   -  person sunleo    schedule 17.01.2018
comment
Я не очень хорошо знаком с этой структурой, я просто логически следую вашему XML. Но я не понимаю, как вы могли бы поддерживать его в порядке, поскольку у фреймворка нет возможности узнать, хотите ли вы выводить в формате 001 или 003. Записи имеют один и тот же класс Employee1, и нет ничего, что фреймворк мог бы использовать. определиться с выбором формата. Возможно, если бы у вас был формат поля и если бы фреймворк поддерживал условные операторы, вы могли бы заставить его работать таким образом.   -  person Erwin Bolwidt    schedule 17.01.2018