<!--

	PadML, the Photo Album Description Markup Language,
	a formulation of Photo Albums metadata in XML.

	Copyright (c) David Martineau, padml(AT)davidmartineau.net.
	Under Attribution-NoDerivs Creative Commons license
	http://creativecommons.org/licenses/by-nd/2.0/
	
	Document type declaration, PadML 1.0.
	
	http://padml.davidmartineau.net/DTDs/PadML-1.0.dtd

-->


<!-- padml : root element of any PadML document -->

<!ELEMENT padml (album*|users|user)>
<!ATTLIST padml version CDATA #REQUIRED>
<!ATTLIST padml xmlns CDATA #IMPLIED>
<!ATTLIST padml xmlns:xml CDATA #IMPLIED>

<!-- album -->

<!ELEMENT album (title*,description*,author?,generator?,date?,category*,preview?,rating?,users?,(photos|videos|panoramas))>
<!ATTLIST album id ID #IMPLIED>

<!-- title -->

<!ELEMENT title (#PCDATA)>
<!ATTLIST title xml:lang CDATA #IMPLIED>

<!-- description -->

<!ELEMENT description (#PCDATA)>
<!ATTLIST description xml:lang CDATA #IMPLIED>

<!-- author -->

<!ELEMENT author (#PCDATA)>
<!ATTLIST author about CDATA #IMPLIED>
<!ATTLIST author uri CDATA #IMPLIED>
<!ATTLIST author name CDATA #IMPLIED>
<!ATTLIST author surname CDATA #IMPLIED>
<!ATTLIST author email CDATA #IMPLIED>
<!ATTLIST author web CDATA #IMPLIED>
<!ATTLIST author aim CDATA #IMPLIED>
<!ATTLIST author icq CDATA #IMPLIED>
<!ATTLIST author msn CDATA #IMPLIED>
<!ATTLIST author yahoo CDATA #IMPLIED>
<!ATTLIST author jabber CDATA #IMPLIED>
<!ATTLIST author gadu CDATA #IMPLIED>
<!ATTLIST author pgp CDATA #IMPLIED>
<!ATTLIST author address CDATA #IMPLIED>
<!ATTLIST author phone CDATA #IMPLIED>
<!ATTLIST author vcard CDATA #IMPLIED>

<!-- generator -->

<!ELEMENT generator (#PCDATA)>

<!-- date -->

<!ELEMENT date (#PCDATA)>
<!ATTLIST date stamp CDATA #IMPLIED>
<!ATTLIST date event (generated|modified|archived) #IMPLIED>

<!-- preview -->

<!ELEMENT preview EMPTY>
<!ATTLIST preview about IDREF #REQUIRED>

<!-- category -->

<!ELEMENT category (#PCDATA)>
<!ATTLIST category id ID #IMPLIED>
<!ATTLIST category xml:lang CDATA #IMPLIED>

<!-- rating -->

<!ELEMENT rating EMPTY>
<!ATTLIST rating score CDATA #REQUIRED>
<!ATTLIST rating scale CDATA #REQUIRED>

<!-- users -->

<!ELEMENT users (user+)>

<!-- user -->

<!ELEMENT user (settings*,bookmarks*)>
<!ATTLIST user id ID #IMPLIED>
<!ATTLIST user group CDATA #IMPLIED>
<!ATTLIST user pass CDATA #IMPLIED>
<!ATTLIST user uri CDATA #IMPLIED>
<!ATTLIST user name CDATA #IMPLIED>
<!ATTLIST user surname CDATA #IMPLIED>
<!ATTLIST user nickname CDATA #IMPLIED>
<!ATTLIST user email CDATA #IMPLIED>
<!ATTLIST user web CDATA #IMPLIED>
<!ATTLIST user aim CDATA #IMPLIED>
<!ATTLIST user icq CDATA #IMPLIED>
<!ATTLIST user msn CDATA #IMPLIED>
<!ATTLIST user yahoo CDATA #IMPLIED>
<!ATTLIST user jabber CDATA #IMPLIED>
<!ATTLIST user gadu CDATA #IMPLIED>
<!ATTLIST user pgp CDATA #IMPLIED>
<!ATTLIST user address CDATA #IMPLIED>
<!ATTLIST user phone CDATA #IMPLIED>
<!ATTLIST user vcard CDATA #IMPLIED>

<!-- settings -->

<!ELEMENT settings (setting+)>

<!-- setting -->

<!ELEMENT setting EMPTY>
<!ATTLIST setting domain CDATA #REQUIRED>
<!ATTLIST setting variable CDATA #REQUIRED>
<!ATTLIST setting value CDATA #REQUIRED>
<!ATTLIST setting mode CDATA #IMPLIED>

<!-- bookmarks -->

<!ELEMENT bookmarks (bookmark+)>

<!-- bookmark -->

<!ELEMENT bookmark EMPTY>
<!ATTLIST bookmark directory CDATA #IMPLIED>
<!ATTLIST bookmark package CDATA #IMPLIED>
<!ATTLIST bookmark album CDATA #REQUIRED>
<!ATTLIST bookmark photo CDATA #REQUIRED>

<!-- photos -->

<!ELEMENT photos (photo+)>

<!-- photo -->

<!ELEMENT photo (title*,description*,author?,rating?,rights?,date?,persons?,keywords?,comments?,place?,device?,exposure?,sound?,thumb?,image,original?,grayscale?,sepia?,negative?,wbmp?)>
<!ATTLIST photo id ID #REQUIRED>

<!-- rights -->

<!ELEMENT rights (#PCDATA)>

<!-- persons -->

<!ELEMENT persons (person+)>

<!-- person -->

<!ELEMENT person (#PCDATA)>

<!-- keywords -->

<!ELEMENT keywords (keyword+)>

<!-- keyword -->

<!ELEMENT keyword (#PCDATA)>
<!ATTLIST keyword xml:lang CDATA #IMPLIED>

<!-- comments -->

<!ELEMENT comments (comment+)>

<!-- comment -->

<!ELEMENT comment (author?,date?,title?,description?,rating?)>
<!ATTLIST comment uri CDATA #IMPLIED>
<!ATTLIST comment id ID #IMPLIED>

<!-- place -->

<!ELEMENT place (#PCDATA)>
<!ATTLIST place situation (indoor|outdoor|night|subwater|skyview|space) #IMPLIED>
<!ATTLIST place location CDATA #IMPLIED>
<!ATTLIST place code CDATA #IMPLIED>
<!ATTLIST place city CDATA #IMPLIED>
<!ATTLIST place state CDATA #IMPLIED>
<!ATTLIST place country CDATA #IMPLIED>
<!ATTLIST place latitute CDATA #IMPLIED>
<!ATTLIST place longitude CDATA #IMPLIED>
<!ATTLIST place altitude CDATA #IMPLIED>
<!ATTLIST place gmt CDATA #IMPLIED>

<!-- device -->

<!ELEMENT device EMPTY>
<!ATTLIST device make CDATA #IMPLIED>
<!ATTLIST device model CDATA #IMPLIED>

<!-- exposure -->

<!ELEMENT exposure EMPTY>
<!ATTLIST exposure orientation CDATA #IMPLIED>
<!ATTLIST exposure bias CDATA #IMPLIED>
<!ATTLIST exposure program CDATA #IMPLIED>
<!ATTLIST exposure time CDATA #IMPLIED>
<!ATTLIST exposure focallength CDATA #IMPLIED>
<!ATTLIST exposure fnumber CDATA #IMPLIED>
<!ATTLIST exposure flash CDATA #IMPLIED>
<!ATTLIST exposure focal CDATA #IMPLIED>
<!ATTLIST exposure iso CDATA #IMPLIED>
<!ATTLIST exposure lightsource CDATA #IMPLIED>
<!ATTLIST exposure maximumaperture CDATA #IMPLIED>
<!ATTLIST exposure meteringmode CDATA #IMPLIED>

<!-- sound -->

<!ELEMENT sound EMPTY>
<!ATTLIST sound uri CDATA #REQUIRED>
<!ATTLIST sound type CDATA #IMPLIED>
<!ATTLIST sound duration CDATA #IMPLIED>
<!ATTLIST sound channels (mono|stereo) #IMPLIED>
<!ATTLIST sound codec CDATA #IMPLIED>
<!ATTLIST sound size CDATA #IMPLIED>

<!-- thumb -->

<!ELEMENT thumb EMPTY>
<!ATTLIST thumb uri CDATA #REQUIRED>
<!ATTLIST thumb type CDATA #IMPLIED>
<!ATTLIST thumb height CDATA #IMPLIED>
<!ATTLIST thumb width CDATA #IMPLIED>
<!ATTLIST thumb size CDATA #IMPLIED>

<!-- image -->

<!ELEMENT image EMPTY>
<!ATTLIST image uri CDATA #REQUIRED>
<!ATTLIST image type CDATA #IMPLIED>
<!ATTLIST image height CDATA #IMPLIED>
<!ATTLIST image width CDATA #IMPLIED>
<!ATTLIST image size CDATA #IMPLIED>

<!-- original -->

<!ELEMENT original EMPTY>
<!ATTLIST original uri CDATA #REQUIRED>
<!ATTLIST original type CDATA #IMPLIED>
<!ATTLIST original height CDATA #IMPLIED>
<!ATTLIST original width CDATA #IMPLIED>
<!ATTLIST original size CDATA #IMPLIED>

<!-- blackandwhite -->

<!ELEMENT blackandwhite EMPTY>
<!ATTLIST blackandwhite uri CDATA #REQUIRED>
<!ATTLIST blackandwhite type CDATA #IMPLIED>
<!ATTLIST blackandwhite height CDATA #IMPLIED>
<!ATTLIST blackandwhite width CDATA #IMPLIED>
<!ATTLIST blackandwhite size CDATA #IMPLIED>

<!-- sepia -->

<!ELEMENT sepia EMPTY>
<!ATTLIST sepia uri CDATA #REQUIRED>
<!ATTLIST sepia type CDATA #IMPLIED>
<!ATTLIST sepia height CDATA #IMPLIED>
<!ATTLIST sepia width CDATA #IMPLIED>
<!ATTLIST sepia size CDATA #IMPLIED>

<!-- negative -->

<!ELEMENT negative EMPTY>
<!ATTLIST negative uri CDATA #REQUIRED>
<!ATTLIST negative type CDATA #IMPLIED>
<!ATTLIST negative height CDATA #IMPLIED>
<!ATTLIST negative width CDATA #IMPLIED>
<!ATTLIST negative size CDATA #IMPLIED>

<!-- wbmp -->

<!ELEMENT wbmp EMPTY>
<!ATTLIST wbmp uri CDATA #REQUIRED>
<!ATTLIST wbmp type CDATA #IMPLIED>
<!ATTLIST wbmp height CDATA #IMPLIED>
<!ATTLIST wbmp width CDATA #IMPLIED>
<!ATTLIST wbmp size CDATA #IMPLIED>

<!-- videos -->

<!ELEMENT videos (video+)>

<!-- video -->

<!ELEMENT video (title*,description*,author?,rating?,rights?,date?,persons?,keywords?,comments?,place?,device?,exposure?,thumb?,sequence)>
<!ATTLIST video id ID #REQUIRED>

<!-- sequence -->

<!ELEMENT sequence EMPTY>
<!ATTLIST sequence uri CDATA #REQUIRED>
<!ATTLIST sequence type CDATA #IMPLIED>
<!ATTLIST sequence height CDATA #IMPLIED>
<!ATTLIST sequence width CDATA #IMPLIED>
<!ATTLIST sequence size CDATA #IMPLIED>
<!ATTLIST sequence channels CDATA #IMPLIED>
<!ATTLIST sequence duration CDATA #IMPLIED>
<!ATTLIST sequence audiocodec CDATA #IMPLIED>
<!ATTLIST sequence videocodec CDATA #IMPLIED>

<!-- panoramas -->

<!ELEMENT panoramas (panorama+)>

<!-- panorama -->

<!ELEMENT panorama (title*,description*,author?,rating?,rights?,date?,persons?,keywords?,comments?,place?,device?,exposure?,thumb?,scene)>
<!ATTLIST panorama id ID #REQUIRED>

<!-- scene -->

<!ELEMENT scene EMPTY>
<!ATTLIST scene uri CDATA #REQUIRED>
<!ATTLIST scene type CDATA #IMPLIED>
<!ATTLIST scene height CDATA #IMPLIED>
<!ATTLIST scene width CDATA #IMPLIED>
<!ATTLIST scene size CDATA #IMPLIED>
