我很喜欢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?
我能想到的最好的方法是编写一个小的java应用程序,您可以在其中加载原始数据集,然后添加您想要的任意数量的员工(当然使用Java代码)。至少这是我在需要更大的数据集时或者在玩模型数据时所做的事情(因为数据集也需要更新)。
哦,我差点忘了,有时我用xml查看器来帮我做一些手动复制和粘贴工作(这对我来说很有帮助,因为行是千行)。
你查看了错误的XML文件!而不是采取例如data / nurserostering / unsolved / medium01.xml,取数据/ 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中轻松编辑和导入此文件。