The TaskJuggler 2.0 XML DTD
TaskJuggler can read and write projects in XML format. The following DTD describes the XML files used by TaskJuggler version 1.9.2 and later. The XML files are meant for communication with other programs that use TaskJuggler as a back-end processor.
Note: This DTD is incompatible with previos XML versions and will most likely be extended over time.
<!-- DTD for TaskJuggler 2.0 XML Files -->
<!-- (c) 2003 Chris Schlaeger <cs@suse.de> -->
<!-- This file is licensed under the GNU GPL Version 2.0 -->
<!-- $Id: show_dtd.php 86 2005-05-22 23:18:11Z cs $ -->
<!-- This is still a draft version, published as a request for
comments -->
<!ELEMENT taskjuggler (project, vacationList?, shiftList?,
resourceList?, taskList, bookingList?)>
<!ELEMENT project (start, end, extend*, now?, currencyFormat,
workingHours, scenario?)>
<!ATTLIST project
id CDATA #REQUIRED
name CDATA #REQUIRED
version CDATA #REQUIRED
timezone CDATA #REQUIRED
timingResolution CDATA "3600"
dailyWorkingHours CDATA "8"
yearlyWorkingDays CDATA "260.714"
weekStartMonday (0|1) "1"
timeFormat CDATA "%Y-%m-%d %H:%M"
shortTimeFormat CDATA "%H:%M"
>
<!ELEMENT start (#PCDATA)>
<!ATTLIST start
humanReadable CDATA #IMPLIED>
<!ELEMENT end (#PCDATA)>
<!ATTLIST end
humanReadable CDATA #IMPLIED>
<!ELEMENT now (#PCDATA)>
<!ATTLIST now
humanReadable CDATA #IMPLIED>
<!ELEMENT extend (extendAttributeDefinition*)>
<!ATTLIST extend
property CDATA #REQUIRED>
<!ELEMENT extendAttributeDefinition EMPTY>
<!ATTLIST extendAttributeDefinition
id CDATA #REQUIRED
name CDATA #REQUIRED
type (text|reference) #REQUIRED
inherit (0|1) "0"
>
<!ELEMENT currencyFormat EMPTY>
<!ATTLIST currencyFormat
signPrefix CDATA #REQUIRED
signSuffix CDATA #REQUIRED
thousandSep CDATA #REQUIRED
fractionSep CDATA #REQUIRED
fracDigits CDATA #REQUIRED
>
<!ELEMENT workingHours (weekdayWorkingHours*)>
<!-- 0 means Sunday, 1 Monday, ... -->
<!ELEMENT weekdayWorkingHours (timeInterval+)>
<!ATTLIST weekdayWorkingHours
weekday (0|1|2|3|4|5|6) #REQUIRED
>
<!ELEMENT timeInterval (start, end)>
<!ELEMENT scenario (scenario*)>
<!ATTLIST scenario
id CDATA #REQUIRED
name CDATA #REQUIRED
disabled (0|1) "0"
projectionMode (0|1) "0"
>
<!ELEMENT flag (#PCDATA)>
<!ELEMENT vacationList (vacation+)>
<!ELEMENT vacation (start, end)>
<!ATTLIST vacation
name CDATA #IMPLIED
>
<!ELEMENT shiftList (shift*)>
<!ELEMENT shift (workingHours, shift*)>
<!ATTLIST shift
id CDATA #REQUIRED
name CDATA #REQUIRED
>
<!ELEMENT shiftSelection (start, end)>
<!ATTLIST shiftSelection
shiftId CDATA #REQUIRED
>
<!ELEMENT resourceList (resource*)>
<!ELEMENT resource (flag*, vacationList?, workingHours, shiftSelection*,
resource*)>
<!ATTLIST resource
id CDATA #REQUIRED
name CDATA #REQUIRED
>
<!ELEMENT accountList (account*)>
<!ELEMENT account (account*)>
<!ATTLIST account
id CDATA #REQUIRED
name CDATA #REQUIRED
type (cost|revenue) #IMPLIED
>
<!ELEMENT taskList (task+)>
<!ELEMENT task (depends*, precedes*, customAttribute*, flag*, task*,
taskScenario*, note?, statusNote?,reference?,
shiftSelection*, allocate*)>
<!ATTLIST task
id CDATA #REQUIRED
name CDATA #REQUIRED
projectId CDATA #REQUIRED
milestone (0|1) #REQUIRED
asapScheduling (0|1) #REQUIRED
priority CDATA #REQUIRED
responsible CDATA #IMPLIED
account CDATA #IMPLIED
>
<!ELEMENT depends (#PCDATA)>
<!ELEMENT precedes (#PCDATA)>
<!ELEMENT note (#PCDATA)>
<!ELEMENT statusNote (#PCDATA)>
<!ELEMENT reference (#PCDATA)>
<!ATTLIST reference
url CDATA #REQUIRED
>
<!ELEMENT allocate (candidate+)>
<!ELEMENT candidate EMPTY>
<!ATTLIST candidate
resourceId CDATA #REQUIRED
>
<!ELEMENT taskScenario (start?, end?, maxEnd?, maxStart?, minEnd?,
minStart?, startCredit*, endCredit*)>
<!ATTLIST taskScenario
scenarioId CDATA #REQUIRED
effort CDATA #IMPLIED
duration CDATA #IMPLIED
length CDATA #IMPLIED
scheduled (0|1) "0"
complete CDATA #IMPLIED
>
<!ELEMENT minStart (#PCDATA)>
<!ATTLIST minStart
humanReadable CDATA #IMPLIED
>
<!ELEMENT maxStart (#PCDATA)>
<!ATTLIST maxStart
humanReadable CDATA #IMPLIED
>
<!ELEMENT minEnd (#PCDATA)>
<!ATTLIST minEnd
humanReadable CDATA #IMPLIED
>
<!ELEMENT maxEnd (#PCDATA)>
<!ATTLIST maxEnd
humanReadable CDATA #IMPLIED
>
<!ELEMENT startCredit (#PCDATA)>
<!ELEMENT endCredit (#PCDATA)>
<!ELEMENT customAttribute (textAttribute|referenceAttribute)>
<!ATTLIST customAttribute
id CDATA #REQUIRED
>
<!ELEMENT textAttribute EMPTY>
<!ATTLIST textAttribute
text CDATA #REQUIRED
>
<!ELEMENT referenceAttribute EMPTY>
<!ATTLIST referenceAttribute
url CDATA #REQUIRED
label CDATA #REQUIRED
>
<!ELEMENT bookingList (resourceBooking*)>
<!ELEMENT resourceBooking (booking*)>
<!ATTLIST resourceBooking
resourceId CDATA #REQUIRED
scenarioId CDATA #REQUIRED
>
<!ELEMENT booking (start, end)>
<!ATTLIST booking
taskId CDATA #REQUIRED
>
Comments are very welcome, feel free to contact us.