我被Optaplanner中的Nurserostering示例所困扰。我想改变输入的XML来玩(例如将护士的数量从30增加到100),我发现手动编辑它非常复杂,所以我认为必须有某种'生成器',或者也许我应该制作自己的'XML生成器'。
例如,我看到示例中的每个节点都有一个唯一的id,所以如果我想增加护士的数量,那就不像复制最后一个Employee节点并将其粘贴70次那样简单;我应该检查内部的每个id并相应地增加它。
<Employee id="358">
<id>6</id>
<code>6</code>
<name>6</name>
<contract reference="36"/>
<dayOffRequestMap id="359">
<entry>
<ShiftDate reference="183"/>
<DayOffRequest id="360">
<id>18</id>
<employee reference="358"/>
<shiftDate reference="183"/>
<weight>1</weight>
</DayOffRequest>
...
因此,我想问,是否有任何方法可以生成这个(或其他)XML?
答案 0 :(得分:1)
我能想到的最好的方法是编写一个小的java应用程序,您可以在其中加载原始数据集,然后添加您想要的任意数量的员工(当然使用Java代码)。至少这是我在需要更大的数据集时或在玩模型数据时所做的事情(因为数据集也需要更新)。
哦,我差点忘了,有时候我会用xml viewer帮我做一些手工复制和粘贴工作(因为行数千行所以对它有很大帮助。)
答案 1 :(得分:1)
您查看了错误的XML文件!而不是例如 data / nurserostering / unsolved / medium01.xml ,带 data / nurserostering / import / medium01.xml 。
<Employees>
<Employee ID="0">
<ContractID>0</ContractID>
<Name>0</Name>
<Skills>
<Skill>Nurse</Skill>
</Skills><
</Employee>
[...]
<DayOffRequests>
<DayOff weight="1">
<EmployeeID>0</EmployeeID>
<Date>2010-01-21</Date>
</DayOff>
[...]
然后可以在OptaPlanner中轻松编辑和导入此文件。