summaryrefslogtreecommitdiffstats
path: root/kpresenter/dtd/kpresenter.dtd
blob: c5403c3fe317be5f7e43407a97fda57562f3e53d (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
<!--	$Id: kpresenter.dtd 470799 2005-10-15 09:45:09Z mlaurent $

		This is an XML document type definition (DTD) for the
		KPresenter document format.
		Written by Kalle Dalheimer <[email protected]> with (obviously) input from
		KPresenter's author Reginald Stadlbauer <[email protected]>.
-->

<!-- Entity for <KEY>, <BACKPIXKEY>, <BACKCLIPKEY> and <BACKPICTUREKEY> -->
<!ENTITY % key "day NMTOKEN #REQUIRED
              filename CDATA #REQUIRED
              hour NMTOKEN #REQUIRED
              minute NMTOKEN #REQUIRED
              month NMTOKEN #REQUIRED
              msec NMTOKEN #REQUIRED
              second NMTOKEN #REQUIRED
              year NMTOKEN #REQUIRED" >



<!--	A KPresenter document consists of a paper description, a
		background description, a number of objects and information
		about the screen presentation.

		Attributes:

		author:		The document's author
		email:		The document's author's email address
		editor:		The program this file was written with
                syntaxVersion:  Integer version of the syntax. Currently 2.
		mime:		The MIME type (must always have the value application/x-kpresenter)
-->
<!ELEMENT DOC (PAPER | BACKGROUND | VARIABLESETTINGS | HEADER | FOOTER | PAGETITLES | PAGENOTES | OBJECTS | INFINITLOOP | MANUALSWITCH | PRESSPEED | PIXMAPS | SELSLIDES | STYLES | PICTURES | PIXMAPS | CLIPARTS | SHOWPRESENTATIONDURATION | HELPLINES | SPELLCHECKIGNORELIST | HEADERFOOTERBYPAGE)* >
<!ATTLIST DOC   author CDATA #IMPLIED
                email CDATA #IMPLIED
                editor CDATA #IMPLIED
                syntaxVersion NMTOKEN #IMPLIED
                mime CDATA "application/x-kpresenter">

<!--	Describes the page format. Can have no or one PAPERBORDERS child that 
		describes the margins.

		Attributes:

		format:			integer value for the page format
		width:			width in millimeters
		height:			height in millimeters
		orientation:	0 for landscape, 1 for portrait
-->
<!ELEMENT PAPER (PAPERBORDERS?)>
<!ATTLIST PAPER	format NMTOKEN #REQUIRED
                ptWidth NMTOKEN #REQUIRED
                ptHeight NMTOKEN #REQUIRED
                unit NMTOKEN #REQUIRED
                orientation NMTOKEN #REQUIRED
                tabStopValue NMTOKEN #REQUIRED>

<!--	Describes the margins of the page.

		Attributes:

		left:			left margin in pixels
		right:			right margin in pixels
		top:			top margin in pixels
		bottom:			bottom margin in pixels
-->
<!ELEMENT PAPERBORDERS EMPTY>
<!ATTLIST PAPERBORDERS	ptLeft NMTOKEN #REQUIRED
			ptRight NMTOKEN #REQUIRED
			ptTop NMTOKEN #REQUIRED
			ptBottom NMTOKEN #REQUIRED>


<!--    Contains general attributes variables. Has no children.

        Attributes:
            startingPageNumber:     to the starting page number.
-->
<!ELEMENT VARIABLESETTINGS
    EMPTY>
<!ATTLIST VARIABLESETTINGS
    startingPageNumber CDATA #REQUIRED>


<!--    Contains general attributes. Has no children.

        Attributes:
            activePage:     select active page.
            gridx:          distance between two points in grid (X value )
            gridy:          distance between two points in grid (Y value )
            snaptogrid:     0 don't snap to grid 1 snap to grid

-->
<!ELEMENT ATTRIBUTES
    EMPTY>
<!ATTLIST ATTRIBUTES
    activePage CDATA #REQUIRED
    gridx CDATA #REQUIRED 
    gridy CDATA #REQUIRED
    snaptogrid CDATA #REQUIRED>

<!--	Contains all the objects on the pages.
-->
<!ELEMENT OBJECTS (OBJECT)*>


<!--	Describes one object on the page.

		Attributes:

		type	0... picture
                        1... line
                        2... rect
                        3... ellipse
                        4... text
                        5... autoform
                        6... clipart
                        7... undefined (never happens in a file)
                        8... pie
                        9... part
                        10.. group
                        11.. freehand
                        12.. polyline
                        13.. quadric bezier curve
                        14.. cubic bezier curve
                        15.. polygon
                        16.. closed line

		sticky	0... not sticky (default)
                        1... sticky object

-->
<!ELEMENT OBJECT (ORIG|SIZE|SHADOW|EFFECTS|ANGLE|TEXTOBJ|PEN|BRUSH|RNDS|PRESNUM|FILLTYPE|GRADIENT|KEY|LINETYPE|LINEEND|LINEBEGIN|PRESNUM|FILENAME|DISAPPEAR|TIMER|APPEARSOUNDEFFECT|DISAPPEARSOUNDEFFECT|OBJECTNAME|POINTS|SETTINGS|PICTURESETTINGS|PROTECT|RATIO|OBJECTSNAME)*>
<!ATTLIST OBJECT
          type	NMTOKEN #REQUIRED
          sticky NMTOKEN #IMPLIED>

<!--	The position of an object in the document.
        Note that this is an absolute position, from the topleft corner
        of the first page. The page on which the object is can be determined by
        the formula: y / paper.height (in pt)

		Attributes:

		x		the x position
		y		the y position
-->
<!ELEMENT ORIG EMPTY>
<!ATTLIST ORIG
		x		NMTOKEN #REQUIRED
                y		NMTOKEN #REQUIRED>


<!--	The object's size.

		Attributes:

		width	the object's width
		height	the object's height
-->
<!ELEMENT SIZE EMPTY>
<!ATTLIST SIZE
		width	NMTOKEN #REQUIRED
		height	NMTOKEN #REQUIRED>

<!--	The effects for moving from page to page.

		Attributes:

		effect:			first effect
		effect2:		second effect
-->
<!ELEMENT EFFECTS EMPTY>
<!ATTLIST EFFECTS
		effect	NMTOKEN #REQUIRED
		effect2 NMTOKEN #REQUIRED>

<!--    The timer of effect object
                Attributes:
                appearTimer              appear effect object's timer
                disappearTimer           disappear effect object's timer
-->

<!ELEMENT TIMER EMPTY>
<!ATTLIST TIMER
                appearTimer     NMTOKEN #REQUIRED
                disappearTimer  NMTOKEN #REQUIRED>

<!--    The effect to play sound
                Attributes:
                appearSoundFileName      sound name (URL)
                appearSoundEffect        use or don't use sound with appear object
-->


<!ELEMENT APPEARSOUNDEFFECT EMPTY>
<!ATTLIST APPEARSOUNDEFFECT
                appearSoundFileName  CDATA     #REQUIRED
                appearSoundEffect    ( 0 | 1 )  #REQUIRED>

<!--    The effect to play sound
                Attributes:
                disappearSoundFileName      sound name (URL)
                disappearSoundEffect        use or don't use sound with disappear object
-->


<!ELEMENT DISAPPEARSOUNDEFFECT EMPTY>
<!ATTLIST DISAPPEARSOUNDEFFECT
                disappearSoundFileName  CDATA      #REQUIRED
                disappearSoundEffect    ( 0 | 1 )  #REQUIRED>

<!--    The name of a object
                Attributes:
                objectName      name of the object
-->


<!ELEMENT OBJECTNAME EMPTY>
<!ATTLIST OBJECTNAME
                objectName  CDATA      #REQUIRED>

<!--	The "step" number in which the object appears, while showing the presentation.
        This is relative to the current page.

		Attributes:

		value	the "step" number in the presentation.
-->
<!ELEMENT PRESNUM EMPTY>
<!ATTLIST PRESNUM value NMTOKEN #REQUIRED>


<!--	The angle of the page

		Attributes:

		value	the angle of the page
-->
<!ELEMENT ANGLE EMPTY>
<!ATTLIST ANGLE value CDATA #REQUIRED>

<!ELEMENT PROTECT EMPTY>
<!ATTLIST PROTECT state CDATA      #REQUIRED>

<!ELEMENT RATIO EMPTY>
<!ATTLIST RATIO ratio CDATA      #REQUIRED>


<!--	Describes a text object on the page.

		Attributes:

		lineSpacing	space between line, in pt
		paragSpacing	space between parags, in pt
		etc.
                bleft, bright, btop, bbottom marge in pt
                verticalAlign type of vertical alignment : center, top, bottom
                verticalValue value of alignment (to add to top margins )

-->
<!ELEMENT TEXTOBJ (ENUMLISTTYPE|UNSORTEDLISTTYPE|P)*>
<!ATTLIST TEXTOBJ
                  lineSpacing NMTOKEN #REQUIRED
                  bulletColor1 CDATA #REQUIRED
                  bulletColor2 CDATA #REQUIRED 
                  bulletColor3 CDATA #REQUIRED 
                  bulletColor4 CDATA #REQUIRED
                  bulletType1 NMTOKEN #REQUIRED 
                  bulletType2 NMTOKEN #REQUIRED
                  bulletType3 NMTOKEN #REQUIRED
                  bulletType4 NMTOKEN #REQUIRED
                  margin NMTOKEN #REQUIRED
                  paragSpacing NMTOKEN #REQUIRED
                  protectcontent NMTOKEN #REQUIRED
                  bleft NMTOKEN #REQUIRED
                  bright NMTOKEN #REQUIRED                  
                  btop NMTOKEN #REQUIRED
                  bbottom NMTOKEN #REQUIRED
                  verticalAlign NMTOKEN #REQUIRED
                  verticalValue NMTOKEN #REQUIRED>

<!ELEMENT ENUMLISTTYPE EMPTY>
<!ATTLIST ENUMLISTTYPE
			type       CDATA #REQUIRED
			before     CDATA #IMPLIED
			after      CDATA #IMPLIED
			start      CDATA #REQUIRED
			family     CDATA #REQUIRED
			pointSize  CDATA #REQUIRED
			bold       CDATA #IMPLIED
			italic     CDATA #IMPLIED
			underline CDATA #IMPLIED
			red        CDATA #IMPLIED
			green      CDATA #IMPLIED
			blue       CDATA #IMPLIED>

<!ELEMENT UNSORTEDLISTTYPE EMPTY>
<!ATTLIST UNSORTEDLISTTYPE
			family	CDATA #REQUIRED
			pointSize		CDATA #REQUIRED
			bold	CDATA #IMPLIED
			italic	CDATA #IMPLIED
			underline		CDATA #IMPLIED
			red		CDATA #IMPLIED
			green	CDATA #IMPLIED
			blue	CDATA #IMPLIED
			chr		CDATA #REQUIRED>

<!ENTITY % layout "TEXT|COUNTER|INDENTS|OFFSETS|LINESPACING|LEFTBORDER|RIGHTBORDER|TOPBORDER|BOTTOMBORDER|TABULATOR*|SHADOW|NAME">

<!--	Describes a paragraph in a text object

		Attributes:

		align	1=left, 2=right, 4=center 8=justify
		type	0=normal, 1=bullet-list, 2=enum-list
		depth	list depth
-->
<!ELEMENT P (%layout;)*>
<!ATTLIST P
		align	NMTOKEN #REQUIRED
		type	NMTOKEN #REQUIRED
		depth	NMTOKEN #REQUIRED>

<!--	Describes a text of a text object

     family: font family name
     pointSize: font size in pt
     [...]
     strikeoutstyleline: solid, dash, dot, dashdot, dashdotdot
     underlinestyleline: solid, dash, dot, dashdot, dashdotdot
     [...]
     VERTALIGN: Super/sub script.
             0 = Normal
             1 = Subscript
             2 = Superscript
     relativetextsize
             0.75 means 3/4 of the normal font size.
     [...]
      wordbyword: 0 or 1. If 1, spaces are not striked out. Opposite of fo:score-spaces.

      text-shadow:
        The value is the CSS specification for text-shadow (also used by XSL-FO).
        http://www.w3.org/TR/REC-CSS2/text.html#text-shadow-props
        KPresenter only supports a single shadow, and no blur radius, so it amounts to
        either "none" or "color length length".
TODO: finish documentation

-->
<!ELEMENT TEXT (#PCDATA)>
<!ATTLIST TEXT
		family	CDATA	#REQUIRED
		pointSize NMTOKEN #REQUIRED
		underline ( 0 | 1 | single | double|single-bold|wave ) #REQUIRED
                underlinestyleline CDATA #REQUIRED
                underlinecolor CDATA #REQUIRED
                bold ( 0 | 1 ) #REQUIRED
                italic ( 0 | 1 ) #REQUIRED
                strikeOut (0 | 1| single | double|single-bold) #REQUIRED
                strikeoutstyleline CDATA #REQUIRED
                whitespace NMTOKEN #IMPLIED
		color	CDATA	#REQUIRED
                textbackcolor CDATA #REQUIRED
                VERTALIGN CDATA #REQUIRED
                relativetextsize CDATA #IMPLIED
                offsetfrombaseline CDATA #IMPLIED
                wordbyword CDATA #IMPLIED
                fontattribute (none | upper | lower)#REQUIRED
                language CDATA #IMPLIED
                text-shadow CDATA #IMPLIED>

<!-- 
        A paragraph and a style can have counter data.
        The document will do the counting of the paragraphs that use this.

        type:   0 = None
                1 = Numeral
                2 = Alphabetical
                3 = Alphabetical uppercase
                4 = Roman numbering
                5 = Roman numbering uppercase
                6 = Custom bullet (one char, set by the 'bullet' attribute)
                7 = Custom (complex string, see kword's dialog)
                8 = Circle bullet (empty circle)
                9 = Square bullet (full square)
                10 = Disc bullet (full circle)
                11 = Box bullet (empty square)

        depth   The level of the numbering. 
                Depth of 0 means the major numbering. (1, 2, 3...)
                Depth of 1 is 1.1, 1.2, 1.3 etc.

        start   The first used number in the numbering (usually 1).
        numberingtype
                0 = list numbering, 1 = chapter numbering.
                List numbering starts at <start> everytime another list is used (everytime a 
                non numbering paragraph has been used)
                Chapter numbering is used throughout the whole document (in future throughout books)
        lefttext
                The text that is printed left of the first numeral
        righttext
                The text that is printed right of the last numeral
                A usual value for this one is "." (dot).

        bullet  The unicode character code that is the custom bullet (for type=6)
        bulletfont
                The font to use for the custom bullet can be found in (use "symbol" if in doubt)
        customdef
                Definition of a custom counter - not supported yet
        restart
                If "true" or "1", this paragraph is numbered as specified by start.
                Otherwise (default) it will extend the current list (with equal type and depth).

        text    The text shown by the counter in the document when it was saved.
                This is redundant information, unused by KPresenter upon loading, but useful
                for export filters.

        align   Counter alignment. Possible values include:
	            int(Qt::AlignAuto), //left for LTR text and right for RTL text
		    int(Qt::AlignLeft),
		    int(Qt::AlignRight).
-->
<!ELEMENT COUNTER
    EMPTY>
<!ATTLIST COUNTER
    type CDATA #REQUIRED
    depth CDATA #REQUIRED
    bullet CDATA #IMPLIED
    start CDATA #IMPLIED
    numberingtype CDATA #REQUIRED
    lefttext CDATA #IMPLIED
    righttext CDATA #IMPLIED
    bulletfont CDATA #IMPLIED
    customdef CDATA #IMPLIED
    restart CDATA #IMPLIED
    text CDATA #IMPLIED
    align CDATA #IMPLIED>

<!-- INDENTS
        first: indent (pt) from the left border (of the frame) of the first line of a paragraph
        left: indent (pt) that is used for the other lines in a paragraph.
        right: indent (pt) on the right of all lines in the paragraph
-->
<!ELEMENT INDENTS
    EMPTY>
<!ATTLIST INDENTS
    first CDATA #REQUIRED
    left CDATA #REQUIRED
    right CDATA #REQUIRED>


<!-- 
        Linespacing defines the height of a line in a paragraph.
        By default the line height is the height of the biggest character in the line.

        The "type" can be "oneandhalf" for 1.5 * line_height and "double" for 2 * line_height.
        More generally it can also be "multiple", where spacingvalue=3 means 3 * line_height.
        Other values for the type are
        "custom": spacingvalue is the distance between the lines in pt (added to the line height)
        "atleast": the total line height is at least spacingvalue (in pt)
        "fixed": spacingvalue is equal to the total line height (in pt).

        See koffice/lib/kotext/koparaglayout.h for more details.

        spacingvalue isn't used if type is "oneandhalf" or "double".
-->
<!ELEMENT LINESPACING
    EMPTY>
<!ATTLIST LINESPACING
    type (oneandhalf|double|custom|atleast|multiple|fixed) #IMPLIED
    spacingvalue CDATA #IMPLIED>

<!--
        The borders can be used on a frame and on a paragraph.
        the border has a color, displayed in the RGB value.
        The width is in points.
        Style   0 = solid
                1 = dashes
                2 = dots
                3 = dash - dot patterns
                4 = dash dot dot patterns
-->
<!ELEMENT LEFTBORDER
    EMPTY>
<!ATTLIST LEFTBORDER
    red CDATA #REQUIRED
    green CDATA #REQUIRED
    blue CDATA #REQUIRED
    style CDATA #REQUIRED
    width CDATA #REQUIRED>
<!ELEMENT RIGHTBORDER
    EMPTY>
<!ATTLIST RIGHTBORDER
    red CDATA #REQUIRED
    green CDATA #REQUIRED
    blue CDATA #REQUIRED
    style CDATA #REQUIRED
    width CDATA #REQUIRED>
<!ELEMENT TOPBORDER
    EMPTY>
<!ATTLIST TOPBORDER
    red CDATA #REQUIRED
    green CDATA #REQUIRED
    blue CDATA #REQUIRED
    style CDATA #REQUIRED
    width CDATA #REQUIRED>
<!ELEMENT BOTTOMBORDER
    EMPTY>
<!ATTLIST BOTTOMBORDER
    red CDATA #REQUIRED
    green CDATA #REQUIRED
    blue CDATA #REQUIRED
    style CDATA #REQUIRED
    width CDATA #REQUIRED>

<!-- OFFSETS
        before: space before the paragraph, or "head offset" (KWord-0.8), aka "top margin" (KWord-1.0) (pt)
        after: space after the paragraph, or "foot offset" (KWord-0.8), aka "bottom margin" (KWord-1.0) (pt)
-->
<!ELEMENT OFFSETS
    EMPTY>
<!ATTLIST OFFSETS
    before CDATA #IMPLIED
    after CDATA #IMPLIED>


<!--    Defines the position of a tabulation
        Attributes:

            type:               0 .. left
                                1 .. center
                                2 .. right
                                3 .. alignment of decimal point

            ptpos:              Position of the tabulation, in pt

            filling:            0 .. blank
                                1 .. dots
                                2 .. line
                                3 .. dash
                                4 .. dash-dot
                                5 .. dash-dot-dot

            width:              Width of the filling, in pt
-->
<!ELEMENT TABULATOR
    EMPTY>
<!ATTLIST TABULATOR
    type CDATA #REQUIRED
    ptpos CDATA #REQUIRED
    filling CDATA #IMPLIED
    width CDATA #IMPLIED>

<!ELEMENT PEN EMPTY>
<!ATTLIST PEN	color   CDATA	#REQUIRED
		width	NMTOKEN	#REQUIRED
		style	NMTOKEN	#REQUIRED>

<!ELEMENT BRUSH EMPTY>
<!ATTLIST BRUSH	color   CDATA	#REQUIRED
		style	NMTOKEN	#REQUIRED>

<!ELEMENT RNDS EMPTY>
<!ATTLIST RNDS	x		CDATA	#REQUIRED
		y		CDATA	#REQUIRED>

<!ELEMENT FILLTYPE EMPTY>
<!ATTLIST FILLTYPE value CDATA #REQUIRED>

<!ELEMENT GRADIENT EMPTY>
<!ATTLIST GRADIENT	color1	CDATA	#REQUIRED
			color2	CDATA	#REQUIRED
                        unbalanced NMTOKEN #REQUIRED
                        xfactor NMTOKEN #REQUIRED
                        yfactor NMTOKEN #REQUIRED
		        type	NMTOKEN	#REQUIRED>

<!ELEMENT SETTINGS EMPTY>
<!ATTLIST SETTINGS      checkConcavePolygon   ( 0 | 1 )  #REQUIRED
                        cornersValue          NMTOKEN    #REQUIRED
                        sharpnessValue        NMTOKEN    #REQUIRED>


<!ELEMENT INFINITLOOP EMPTY>
<!ATTLIST INFINITLOOP value NMTOKEN #REQUIRED>

<!ELEMENT MANUALSWITCH EMPTY>
<!ATTLIST MANUALSWITCH value NMTOKEN #REQUIRED>

<!ELEMENT PRESSPEED EMPTY>
<!ATTLIST PRESSPEED value NMTOKEN #REQUIRED>

<!ELEMENT SHOWPRESENTATIONDURATION EMPTY>
<!ATTLIST SHOWPRESENTATIONDURATION value NMTOKEN #REQUIRED>

<!ELEMENT BACKGROUND (PAGE*) >
<!ATTLIST BACKGROUND	rastX	NMTOKEN	#REQUIRED
			rastY	NMTOKEN	#REQUIRED
			color	CDATA	#REQUIRED>

<!ELEMENT PAGE (BACKTYPE|BACKMASTER|BACKVIEW|BACKCOLOR1|BACKCOLOR2|BCTYPE|PGEFFECT|PGTIMER|PGSOUNDEFFECT|
    BACKPIXKEY|BACKCLIPKEY|BACKPICTUREKEY|HEADERFOOTER)*>

<!ELEMENT BACKTYPE EMPTY>
<!ATTLIST BACKTYPE value CDATA #REQUIRED>

<!ELEMENT BACKMASTER EMPTY>
<!ATTLIST BACKMASTER useMasterBackground CDATA	#REQUIRED
                     displayMasterPageObject CDATA	#REQUIRED
		     displayBackground CDATA	#REQUIRED>

<!ELEMENT BACKVIEW EMPTY>
<!ATTLIST BACKVIEW value NMTOKEN #REQUIRED>

<!-- Only for KPresenter 1.1 compactibility, otherwise use BACKPICTUREKEY -->
<!ELEMENT BACKPIXKEY EMPTY>
<!ATTLIST BACKPIXKEY %key; >

<!-- Only for KPresenter 1.1 compactibility, otherwise use BACKPICTUREKEY -->
<!ELEMENT BACKCLIPARTKEY EMPTY>
<!ATTLIST BACKCLIPARTKEY %key; >

<!ELEMENT BACKPICTUREKEY EMPTY>
<!ATTLIST BACKPICTUREKEY %key; >

<!ELEMENT BCTYPE EMPTY>
<!ATTLIST BCTYPE value CDATA #REQUIRED>

<!ELEMENT PGEFFECT EMPTY>
<!ATTLIST PGEFFECT value NMTOKEN #REQUIRED>

<!ELEMENT BACKCOLOR1 EMPTY>
<!ATTLIST BACKCOLOR1	color		CDATA	#REQUIRED>

<!ELEMENT BACKCOLOR2 EMPTY>
<!ATTLIST BACKCOLOR2	red		CDATA	#REQUIRED
			green		CDATA	#REQUIRED
			blue		CDATA	#REQUIRED>

<!ELEMENT PGTIMER EMPTY>
<!ATTLIST PGTIMER timer NMTOKEN #REQUIRED>

<!ELEMENT PGSOUNDEFFECT EMPTY>
<!ATTLIST PGSOUNDEFFECT soundEffect    ( 0 | 1 )  #REQUIRED
                        soundFileNmae  CDATA      #REQUIRED>

<!ELEMENT HEADERFOOTER EMPTY>
<!ATTLIST HEADERFOOTER header ( 0 | 1 )  #REQUIRED
                       footer ( 0 | 1 )  #REQUIRED>

<!ELEMENT DISAPPEAR EMPTY >
<!ATTLIST DISAPPEAR doit NMTOKEN #REQUIRED
                    effect NMTOKEN #REQUIRED
                    num NMTOKEN #REQUIRED>


<!ELEMENT FILENAME EMPTY >
<!ATTLIST FILENAME value CDATA #REQUIRED >

<!ELEMENT FOOTER ( ORIG, SIZE, PEN, TEXTOBJ ) >
<!ATTLIST FOOTER show NMTOKEN #REQUIRED >

<!ELEMENT HEADER ( ORIG, SIZE, PEN, TEXTOBJ ) >
<!ATTLIST HEADER show NMTOKEN #REQUIRED >

<!ELEMENT HEADERFOOTERBYPAGE EMPTY >
<!ATTLIST HEADERFOOTERBYPAGE value CDATA #REQUIRED >

<!ELEMENT KEY EMPTY >
<!ATTLIST KEY %key;
              name CDATA #IMPLIED >

<!ELEMENT LINEBEGIN EMPTY >
<!ATTLIST LINEBEGIN value NMTOKEN #REQUIRED >

<!ELEMENT LINEEND EMPTY >
<!ATTLIST LINEEND value NMTOKEN #REQUIRED >

<!ELEMENT LINETYPE EMPTY >
<!ATTLIST LINETYPE value NMTOKEN #REQUIRED >

<!--
        A style is a global setting that is used for all paragraphs which use that
        style. As the markup is stored in one place (the style) changing the markup
        throughout the document is simply a task of changing one or two styles.
        Highly recommended for structured documents.

        A style element contains the same child elements as the P tag
        (all the paragraph properties), as well as a text format in the FORMAT tag.
        It also contains the name of the following style, i.e. the one used when
        the user presses Enter in a paragraph using this style.

        Attributes:
          outline   if "true", this style is part of the Table Of Contents.
                    (by default it is not).
-->
<!ELEMENT STYLES
    (STYLE*)>
<!ELEMENT STYLE
    (%layout;|FORMAT|FOLLOWING)*>
<!ATTLIST STYLE
    outline CDATA #IMPLIED>

<!-- Description of text format inside a style -->
<!ELEMENT FORMAT EMPTY>
<!ATTLIST FORMAT
    <!-- The exact same attributes as TEXT can have.
         Is it possible to define an entity for a list of attributes? -->
>

<!ELEMENT PICTURES ( KEY* ) >

<!-- Only for KPresenter 1.1 compactibility -->
<!ELEMENT CLIPARTS ( KEY* ) >

<!-- Only for KPresenter 1.1 compactibility -->
<!ELEMENT PIXMAPS ( KEY* ) >

<!ELEMENT PICTURESETTINGS EMPTY>
<!ATTLIST PICTURESETTINGS   mirrorType    NMTOKEN    #REQUIRED
                            depth         NMTOKEN    #REQUIRED
                            swapRGB       ( 0 | 1 )  #REQUIRED
                            grayscal      ( 0 | 1 )  #REQUIRED
                            bright        NMTOKEN    #REQUIRED>

<!ELEMENT SELSLIDES ( SLIDE+ ) >
<!ELEMENT SLIDE EMPTY>
<!ATTLIST SLIDE nr NMTOKEN #REQUIRED
                show NMTOKEN #REQUIRED>

<!ELEMENT CUSTOMSLIDESHOWCONFIG ( SLIDE+ ) >
<!ELEMENT CUSTOMSLIDESHOW EMPTY>
<!ATTLIST CUSTOMSLIDESHOW name NMTOKEN #REQUIRED
                pages NMTOKEN #REQUIRED>

<!ELEMENT DEFAULTCUSTOMSLIDESHOWNAME ANY>
<!ATTLIST DEFAULTCUSTOMSLIDESHOWNAME name CDATA #REQUIRED>


<!ELEMENT PAGETITLES ( Title+ ) >
<!ELEMENT Title EMPTY>
<!ATTLIST Title title CDATA #REQUIRED>

<!ELEMENT PAGENOTES ( Note+ ) >
<!ELEMENT Note EMPTY>
<!ATTLIST Note note CDATA #REQUIRED>

<!ELEMENT POINTS ( Point+ ) >
<!ELEMENT Point EMPTY>
<!ATTLIST Point point_x NMTOKEN #REQUIRED
                point_y NMTOKEN #REQUIRED>

<!ELEMENT HELPLINES (Vertical | Horizontal | HelpPoint)* >
<!ATTLIST HELPLINES show NMTOKEN #REQUIRED >
<!ELEMENT Vertical EMPTY>
<!ATTLIST Vertical value NMTOKEN #REQUIRED >
<!ELEMENT Horizontal EMPTY>
<!ATTLIST Horizontal value NMTOKEN #REQUIRED >
<!ELEMENT HelpPoint EMPTY>
<!ATTLIST HelpPoint posX NMTOKEN #REQUIRED
                    posY NMTOKEN #REQUIRED>

<!ELEMENT SPELLCHECKIGNORELIST ( SPELLCHECKIGNOREWORD+ )>
<!ATTLIST SPELLCHECKIGNORELIST >
<!ELEMENT SPELLCHECKIGNOREWORD EMPTY>
<!ATTLIST SPELLCHECKIGNOREWORD word NMTOKEN #REQUIRED >

<!-- ### TODO: please verify! -->
<!ELEMENT OBJECTSNAME ANY>
<!ATTLIST OBJECTSNAME NAME CDATA #REQUIRED>

<!--
   Name of the style used by this paragraph
-->
<!ELEMENT NAME EMPTY>
<!ATTLIST NAME value CDATA #REQUIRED>