Optaplanner:如何更改mederostering演示中的示例XML?

问题描述 投票:0回答:2

我很喜欢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?

optaplanner
2个回答
1
投票

我能想到的最好的方法是编写一个小的java应用程序,您可以在其中加载原始数据集,然后添加您想要的任意数量的员工(当然使用Java代码)。至少这是我在需要更大的数据集时或者在玩模型数据时所做的事情(因为数据集也需要更新)。

哦,我差点忘了,有时我用xml查看器来帮我做一些手动复制和粘贴工作(这对我来说很有帮助,因为行是千行)。


1
投票

你查看了错误的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中轻松编辑和导入此文件。

© www.soinside.com 2019 - 2024. All rights reserved.