Version 23 (modified by fbatard, 5 years ago)

--

Second Week for unicorn project : Formatting the tasklist

Possible changes to make to the tasklist.xml in order to enhance the flexibility with conditionnal checking.
We need to be able to have simple algorithms to define priorities in the tasklist.
These nodes will be placed into the task node for each task
Here are our first ideas about the new nodes to add.
The observer parts will remain unchanged for now except for the priority attribute.
We can delete the priority attribute in handle mimetype

A routine node to define the sequence to execute for this task :

  • Conditions are called using XPATH and refers to condition section
  • exec will execute the observer specified. As we call it with XPATH we can define a observation or a task -> inclusion of tasks -> recursivity
<routine>
   <if test="/conds/cond[@id=1]">
      <exec>/tasklist/observer/whatever</exec>
      <exec>/tasklist/observer/whatever2</exec>
      <else>
          <exec>/tasklist/task/whatever3</exec>
      </else>
    </if>
</routine>



A cond will be placed here to be used in if command. It returns a boolean :

  • id to help calling the condition
  • result to know if we want it to pass or to fail
  • the list of doctypes that we want in it
  • the list of mediatypes we're looking for
<conds>
   <cond id="1" result="passed">
      <doctypes>
           <doctype>whatever4.0</doctype>
           <doctype>and_so_on1.0Strict</doctype>
      <doctypes/>
      <mediatypes>
           <mediatype>svg</mediatype>
           <mediatype>html</mediatype>
      </mediatypes>
    </cond>
</conds>



An outputseq will be placed to know the order of the output result display sequence :

  • id to give the order
  • and the name of the observation to display

This is to improve in order to check that it's well formed. For instance we shouldn't ask to display an observer that haven't been called due to conditional checking.

<outputseq>
     <tasksort id="1">Observation_Name</tasksort>
     <tasksort id="2">Observation_Name2</tasksort>
</outputseq>

To deal with the observer that will check the mediatypes and doctypes

We thought we could deal with it as it was already done using a new attribute for a task

<task ref="conformance" ui="none"/>

Second idea

We could re use the current priority properties. Let me explain:
We 'll consider the if condition as a high priority and what's in the condition , lower priority.
We can then build a whole map of different priorities and execute it as it's done currently.
Of course we 'll need to extend that idea to take into account the mediatypes and so on.

As we discussed it appears that this solution won't be possible. We can't keep the independance of the task and the mutiple 'if' insert .

Jonathan created a logo in his free time , check the attached files ;)

Attachments