summaryrefslogtreecommitdiffstats
path: root/kplato/kplato.dtd
blob: ef3de41be40f06ad3d8816d7a69e24626a3c22bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<!--	This is the Document Type Definition for The KDE Planning Tool.
	Version 0.epsilon. 20020401 (no, no joke).
	Written by Bo Thorsen <bo@sonofthor.dk>
-->

<!--	A KPlato document consists of a projects, relations and
	resources. TODO: It should probably also remember settings
	for stuff like printing etc.

	A node in a project can be a project, task, milestone or terminalnode.
	Each node is given a unique identifier.
	A relation is a time restraint on the correlation between two
	nodes. These are identified by their identifier.
	A resource is one of the resources available and needed for the
	project. These could be persons, hardware, money etc.
-->

<!ELEMENT kplato (project)>
<!ATTLIST kplato	author CDATA #IMPLIED
			email  CDATA #IMPLIED
			editor CDATA #IMPLIED
			mime   CDATA "application/x-vnd.kde.kplato">

<!--	The project description. This has the following fields:

	name		Name of the project
	leader		Person or group in charge of the project
	description	Text describing the project briefly
-->
<!ELEMENT project (project|task|endnode|startnode|relation|resource-group|appointment)*>
<!ATTLIST project	id CDATA #REQUIRED
			name CDATA #IMPLIED
			leader CDATA #IMPLIED
			description CDATA #IMPLIED
            project-start CDATA #IMPLIED
            project-end CDATA #IMPLIED>

<!--	Terminalnodes
-->
<!ELEMENT startnode EMPTY>
<!ATTLIST startnode
            earlieststart CDATA #IMPLIED
            latestfinish CDATA #IMPLIED>

<!ELEMENT endnode EMPTY>
<!ATTLIST endnode
            earlieststart CDATA #IMPLIED
            latestfinish CDATA #IMPLIED>

<!-- Resource group
-->
<!ELEMENT resource-group (resource)*>
<!ATTLIST resource-group id CDATA #REQUIRED
            type (work|material)
			name CDATA #IMPLIED>

<!-- Resource
-->
<!ELEMENT resource EMPTY
<!ATTLIST resource id CDATA #REQUIRED
			name CDATA #IMPLIED>

<!--	Tasks can also be milestones (zero duration) or summary tasks (have children)
-->
<!ELEMENT task (project|task|terminalnode|resource-request)*>
<!ATTLIST task		id CDATA #REQUIRED
			name CDATA #IMPLIED
			leader CDATA #IMPLIED
			description CDATA #IMPLIED
            earlieststart CDATA #IMPLIED
            latestfinish CDATA #IMPLIED
            scheduling="0"
            start CDATA #IMPLIED
            end CDATA #IMPLIED
            duration CDATA #IMPLIED>

<!--	Resource requests are made by tasks and referes to
        the number of resources needed from a resource group
-->
<!ELEMENT resource-request EMPTY>
<!ATTLIST resource-request	group-id CDATA #REQUIRED
			limit CDATA #IMPLIED>


<!--	Relations are described by the two IDs and the type of constraint
        The ids are references to tasks, so all tasks must have been loaded
-->
<!ELEMENT relation EMPTY>
<!ATTLIST relation	parent-id CDATA #REQUIRED
			child-id CDATA #REQUIRED
			type ("Finish-Start" | "Finish-Finish" | "Start-Start")
				"Start-Start">

<!--	Appointments between resources and tasks
-->
<!ELEMENT appointment EMPTY>
<!ATTLIST appointment	resource-id CDATA #REQUIRED
			task-id CDATA #REQUIRED
            start CDATA #IMPLIED
            duration CDATA #IMPLIED>