<!--
pythonpoint.dtd
PythonPoint XML DTD, V0.1.0
Copyright 2000 Michael Wiedmann
$Id: pythonpoint.dtd,v 1.10 2000/11/12 17:00:50 mw Exp $
This is free software. You may distribute it under the terms of the
GNU General Public Licence, version 2 or at your option any later version.
See file COPYING for more information.
This is a draft version of a DTD for the PythonPoint library
(a library for creating presentation slides, for more information see
http://www.reportlab.com).
Common declaration:
<?xml version='1.0'?>
<!DOCTYPE presentation
PUBLIC "-//ReportLab//DTD PythonPoint XML V0.1.0//EN"
"pythonpoint.dtd">
Feel free to submit your suggestions, contributions, complaints, etc. to:
Michael Wiedmann <mw@miwie.in-berlin.de>
You will always find the actual version of this DTD at:
http://www.miwie.org/pythonpoint/pythonpoint.dtd
-->
<!-- TODO
o more testing
-->
<!-- Entities -->
<!ENTITY % bool "true|false" >
<!ENTITY % align.values "left|center|right" >
<!ENTITY % effectname.values
"Split|Blinds|Box|Wipe|Dissolve|Glitter">
<!ENTITY % effectdirection.values "0|90|180|270">
<!ENTITY % effectdimension.values "H|V" >
<!ENTITY % effectmotion.values "I|O" >
<!-- Top Level Element -->
<!ELEMENT presentation (subject?, title?, author?,
section?, stylesheet?, slide*)+>
<!ATTLIST presentation filename CDATA #REQUIRED >
<!-- First Level Elements -->
<!-- the following three elements go into the PDF document info -->
<!ELEMENT subject (#PCDATA) >
<!ELEMENT title (#PCDATA) >
<!ELEMENT author (#PCDATA) >
<!ELEMENT section (fixedimage*, rectangle*, roundrect*, ellipse*,
polygon*, line*, string*, infostring*,
customshape*, slide*)+ >
<!ATTLIST section name CDATA #REQUIRED >
<!ELEMENT stylesheet EMPTY >
<!ATTLIST stylesheet path CDATA #IMPLIED
module CDATA #REQUIRED
function CDATA #REQUIRED >
<!ELEMENT slide (fixedimage*, rectangle*, roundrect*, ellipse*,
polygon*, line*, string*, infostring*,
customshape*, frame*)+ >
<!ATTLIST slide id CDATA #REQUIRED
title CDATA #REQUIRED
outlinelevel NMTOKEN #IMPLIED
showIDName (%bool;) "true"
effectname (%effectname.values;) #IMPLIED
effectdirection (%effectdirection.values;) "0"
effectdimension (%effectdimension.values;) "H"
effectmotion (%effectmotion.values;) "I"
effectduration NMTOKEN "1" >
<!-- All other elements -->
<!ELEMENT para (#PCDATA|i|b|u|super|sub|font|greek)* >
<!ATTLIST para style CDATA "Normal"
bullettext CDATA #IMPLIED >
<!ELEMENT i (#PCDATA) >
<!ELEMENT b (#PCDATA) >
<!ELEMENT u (#PCDATA) >
<!ELEMENT super (#PCDATA) >
<!ELEMENT sub (#PCDATA) >
<!ELEMENT font (#PCDATA) >
<!ATTLIST font name CDATA #IMPLIED
color CDATA #IMPLIED
size NMTOKEN #IMPLIED >
<!-- FIXME: only letters valid? -->
<!ELEMENT greek (#PCDATA) >
<!ELEMENT spacer EMPTY >
<!ATTLIST spacer height NMTOKEN #REQUIRED >
<!ELEMENT prefmt (#PCDATA) >
<!ATTLIST prefmt style CDATA #IMPLIED >
<!ELEMENT image EMPTY >
<!ATTLIST image filename CDATA #REQUIRED
width NMTOKEN #IMPLIED
height NMTOKEN #IMPLIED >
<!ELEMENT table (#PCDATA) >
<!ATTLIST table widths CDATA #IMPLIED
heights CDATA #IMPLIED
style CDATA #IMPLIED
colDelim CDATA #IMPLIED
rowDelim CDATA #IMPLIED >
<!ELEMENT fixedimage EMPTY >
<!ATTLIST fixedimage filename CDATA #REQUIRED
x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
width NMTOKEN #IMPLIED
height NMTOKEN #IMPLIED >
<!ELEMENT rectangle EMPTY >
<!ATTLIST rectangle x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
width NMTOKEN #REQUIRED
height NMTOKEN #REQUIRED
fill CDATA #IMPLIED
stroke CDATA "(0,0,0)"
linewidth NMTOKEN "0" >
<!ELEMENT roundrect EMPTY >
<!ATTLIST roundrect x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
width NMTOKEN #REQUIRED
height NMTOKEN #REQUIRED
fill CDATA #IMPLIED
stroke CDATA "(0,0,0)"
linewidth NMTOKEN "0"
radius NMTOKEN "6" >
<!ELEMENT ellipse EMPTY >
<!ATTLIST ellipse x1 NMTOKEN #REQUIRED
y1 NMTOKEN #REQUIRED
x2 NMTOKEN #REQUIRED
y2 NMTOKEN #REQUIRED
fill CDATA #IMPLIED
stroke CDATA "(0,0,0)"
linewidth NMTOKEN "0" >
<!ELEMENT polygon EMPTY >
<!ATTLIST polygon points CDATA #REQUIRED
fill CDATA #REQUIRED
stroke CDATA "(0,0,0)"
linewidth NMTOKEN "0" >
<!ELEMENT line EMPTY >
<!ATTLIST line x1 NMTOKEN #REQUIRED
y1 NMTOKEN #REQUIRED
x2 NMTOKEN #REQUIRED
y2 NMTOKEN #REQUIRED
stroke CDATA "(0,0,0)"
width NMTOKEN "0" >
<!-- this element allows the user to put optionally an info string
somewhere on the slide (or on every slide if used inside
"section"). See the pythonpoint documentation for the exact
format of this string. -->
<!ELEMENT infostring (#PCDATA) >
<!ATTLIST infostring x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
color CDATA "(0,0,0)"
font CDATA "Times-Roman"
size NMTOKEN "12"
align (%align.values;) "left" >
<!ELEMENT string (#PCDATA) >
<!ATTLIST string x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
color CDATA "(0,0,0)"
font CDATA "Times-Roman"
size NMTOKEN "12"
align (%align.values;) "left" >
<!ELEMENT customshape EMPTY >
<!ATTLIST customshape path CDATA #IMPLIED
module CDATA #IMPLIED
class CDATA #IMPLIED
initargs CDATA #IMPLIED
align (%align.values;) #IMPLIED >
<!ELEMENT frame (para*, prefmt*, image*, table*,
fixedimage*, rectangle*, roundrect*, ellipse*,
polygon*, line*, string*, customshape*, spacer*)+ >
<!ATTLIST frame x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
width NMTOKEN #REQUIRED
height NMTOKEN #REQUIRED
leftmargin NMTOKEN "0"
rightmargin NMTOKEN "0"
topmargin NMTOKEN "0"
bottommargin NMTOKEN "0"
border (%bool;) "false" >