В файлах данных optaplanner для примера составления списков медсестер я вижу файлы данных xml в двух папках «import» и «unsolved», которые имеют схожие имена, за исключением того, что в папке «unsolved» есть ссылочные теги для многих из xmlтеги.Например, вот как выглядит long01.xml внутри папки «import»:
<ShiftTypes>
<Shift ID="E">
<StartTime>06:30:00</StartTime>
<EndTime>14:30:00</EndTime>
<Description>Early shift type</Description>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Shift>
<Shift ID="L">
<StartTime>14:30:00</StartTime>
<EndTime>22:30:00</EndTime>
<Description>Late shift type</Description>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Shift>
<Shift ID="D">
<StartTime>08:30:00</StartTime>
<EndTime>16:30:00</EndTime>
<Description>Day shift type</Description>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Shift>
<Shift ID="N">
<StartTime>22:30:00</StartTime>
<EndTime>06:30:00</EndTime>
<Description>Night shift</Description>
<Skills>
<Skill>Nurse</Skill>
</Skills>
</Shift>
<Shift ID="DH">
<StartTime>08:30:00</StartTime>
<EndTime>16:30:00</EndTime>
<Description>Head nurse day shift type</Description>
<Skills>
<Skill>HeadNurse</Skill>
</Skills>
</Shift>
</ShiftTypes>
Но вот как выглядит xml-файл с таким же именем в папке «unsolved»:
<firstShiftDate id="3">
<id>0</id>
<dayIndex>0</dayIndex>
<date>2010-01-01</date>
<shiftList id="4">
<Shift id="5">
<id>0</id>
<shiftDate reference="3"/>
<shiftType id="6">
<id>0</id>
<code>E</code>
<index>0</index>
<startTimeString>06:30:00</startTimeString>
<endTimeString>14:30:00</endTimeString>
<night>false</night>
<description>Early shift type</description>
<shiftLength>2</shiftLength>
</shiftType>
<index>0</index>
<requiredEmployeeSize>8</requiredEmployeeSize>
</Shift>
<Shift id="7">
<id>1</id>
<shiftDate reference="3"/>
<shiftType id="8">
<id>1</id>
<code>L</code>
<index>1</index>
<startTimeString>14:30:00</startTimeString>
<endTimeString>22:30:00</endTimeString>
<night>false</night>
<description>Late shift type</description>
<shiftLength>2</shiftLength>
</shiftType>
<index>1</index>
<requiredEmployeeSize>8</requiredEmployeeSize>
</Shift>
<Shift id="9">
<id>2</id>
<shiftDate reference="3"/>
<shiftType id="10">
<id>2</id>
<code>D</code>
<index>2</index>
<startTimeString>08:30:00</startTimeString>
<endTimeString>16:30:00</endTimeString>
<night>false</night>
<description>Day shift type</description>
<shiftLength>2</shiftLength>
</shiftType>
<index>2</index>
<requiredEmployeeSize>5</requiredEmployeeSize>
</Shift>
<Shift id="11">
<id>3</id>
<shiftDate reference="3"/>
<shiftType id="12">
<id>3</id>
<code>N</code>
<index>3</index>
<startTimeString>22:30:00</startTimeString>
<endTimeString>06:30:00</endTimeString>
<night>true</night>
<description>Night shift</description>
<shiftLength>2</shiftLength>
</shiftType>
<index>3</index>
<requiredEmployeeSize>6</requiredEmployeeSize>
</Shift>
<Shift id="13">
<id>4</id>
<shiftDate reference="3"/>
<shiftType id="14">
<id>4</id>
<code>DH</code>
<index>4</index>
<startTimeString>08:30:00</startTimeString>
<endTimeString>16:30:00</endTimeString>
<night>false</night>
<description>Head nurse day shift type</description>
<shiftLength>2</shiftLength>
</shiftType>
<index>4</index>
<requiredEmployeeSize>2</requiredEmployeeSize>
</Shift>
</shiftList>
</firstShiftDate>
<lastShiftDate id="15">
<id>27</id>
<dayIndex>27</dayIndex>
<date>2010-01-28</date>
<shiftList id="16">
<Shift id="17">
<id>135</id>
<shiftDate reference="15"/>
<shiftType reference="6"/>
<index>135</index>
<requiredEmployeeSize>8</requiredEmployeeSize>
</Shift>
<Shift id="18">
<id>136</id>
<shiftDate reference="15"/>
<shiftType reference="8"/>
<index>136</index>
<requiredEmployeeSize>8</requiredEmployeeSize>
</Shift>
<Shift id="19">
<id>137</id>
<shiftDate reference="15"/>
<shiftType reference="10"/>
<index>137</index>
<requiredEmployeeSize>5</requiredEmployeeSize>
</Shift>
<Shift id="20">
<id>138</id>
<shiftDate reference="15"/>
<shiftType reference="12"/>
<index>138</index>
<requiredEmployeeSize>6</requiredEmployeeSize>
</Shift>
<Shift id="21">
<id>139</id>
<shiftDate reference="15"/>
<shiftType reference="14"/>
<index>139</index>
<requiredEmployeeSize>2</requiredEmployeeSize>
</Shift>
</shiftList>
</lastShiftDate>
<planningWindowStart reference="3"/>
Когда вы запускаете пример optaplanner, он, кажется, позволяет вам выбирать из списка файлов, которые находятся в папке «unsolved».Являются ли файлы XML-данных из папки «import» «необработанными» XML-файлами?
Если я нажимаю кнопку «Импорт» и выбираю XML-файл, то я предполагаю, что он открывает файл и создает «нерешенная "версия этого?Это происходит в NurseRosterExporter.java?Если это так, зачем нам это делать и где находится точный код, который добавляет «ссылочные» теги и создает все новые ссылочные теги?
Почему существует два шага для создания XML-файла - у вас есть необработанный XML-файл, затем вам нужно его импортировать, сохранить, затем загрузить в пример - есть ли более эффективныйспособ сделать это?