This file is indexed.

/usr/share/photoml/dtd/photo.dtd is in photoml 0.28-0ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   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
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
<!--

                 PhotoML: Photo Description Markup Language
                 Version: 0.13       Date: 12 November 2010

           The recommended formal public identifier for this DTD is:

                      "-//BW//DTD PhotoML 0.13//EN"

        Please consult the comments in this file, and the notes in the 
        PhotoML distribution documentation.


        Copyright © 2002-2010   Brendt Wohlberg  <photoml@wohlberg.net>

        This is free software; you can redistribute it and/or modify it 
        under the terms of version 2 of the GNU General Public License 
        at http://www.gnu.org/licenses/gpl-2.0.txt.

        This DTD is distributed in the hope that it will be useful, but
        WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
        GNU General Public License for more details.
        
        
        Acknowledgement: Thanks to Stephen Darlington and Oskar Ojala for 
        valuable comments and suggestions.

-->

<!-- ************************************************************
     ************************* Entities *************************
     ************************************************************ -->

<!-- >>>>>>>>>>>>>>>> Character entities <<<<<<<<<<<<<<< -->

<!ENTITY deg "&#x000B0;">       <!-- degree sign -->


<!-- >>>>>>>>>>>>>>>>>>>>> Attribute entities <<<<<<<<<<<<<<<<<<< -->

<!-- The language specification attribute -->
<!ENTITY % xml-lang-attribute "xml:lang NMTOKEN #IMPLIED" >


<!-- >>>>>>>>>>>>>>>>>>>>> Data type entities <<<<<<<<<<<<<<<<<<< -->

<!-- Unrestricted text string -->
<!ENTITY % Text "#PCDATA">

<!-- An integer -->
<!ENTITY % Integer "#PCDATA">

<!-- A positive integer (including  zero) -->
<!ENTITY % PositiveInteger "#PCDATA">

<!-- A real number -->
<!ENTITY % Real "#PCDATA">

<!-- A rational number, expressed either as a decimal fraction or 
     in numerator/denominator form -->
<!ENTITY % Rational "#PCDATA">

<!-- A fraction, expressed either as a real number, or as the quotient
     of two integer or real numbers -->
<!ENTITY % Fraction "#PCDATA">

<!-- A string of hexadecimal digits -->
<!ENTITY % HexString "#PCDATA">

<!-- A date string without the day -->
<!ENTITY % YearMonth "#PCDATA">

<!-- A date -->
<!ENTITY % Date "#PCDATA">

<!-- A time -->
<!ENTITY % Time "#PCDATA">

<!-- A date and time -->
<!ENTITY % DateTime "#PCDATA">

<!-- A time interval -->
<!ENTITY % TimeInterval "#PCDATA">

<!-- An email address -->
<!ENTITY % EmailAddress "#PCDATA">

<!-- A phone number -->
<!ENTITY % PhoneNumber "#PCDATA">

<!-- A compass direction -->
<!ENTITY % CompassDirection "#PCDATA">

<!-- An elevation angle -->
<!ENTITY % ElevationAngle "#PCDATA">

<!-- A latitude value -->
<!ENTITY % Latitude "#PCDATA">

<!-- A longitude value -->
<!ENTITY % Longitude "#PCDATA">


<!-- ************************************************************
     ******************* Top level elements *********************
     ************************************************************ -->

<!-- >>>>>>>>>>>>>>>>>>>>>>>> Root element <<<<<<<<<<<<<<<<<<<<<< -->

<!-- The root element contains optional default settings, photograph
     description elements roll (for roll film), sheet (for sheet
     film), and digital (for photographs taken using a digital
     camera), and digimage elements describing specific digital
     images, either direct from a camera or scanner, or derived via
     editing, composition etc. -->
<!ELEMENT photo (defaults?,(roll|sheet|digital|digimage|digimage-set)+)+>
<!ATTLIST photo %xml-lang-attribute;>


<!-- >>>>>>>>>>>>>>>>>>>>>>>>>>> Defaults <<<<<<<<<<<<<<<<<<<<<<< -->

<!-- Elements contained within a defaults element provide default
     values for the corresponding elements in which the relevant
     information has not been specified. A full description of the
     semantics of this element is rather lengthy, and may be found
     in the accompanying documentation. -->
<!ELEMENT defaults (film?,processing?,frame?,properties?,history?)>
<!ATTLIST defaults combine (merge|replace) 'merge'>


<!-- >>>>>>>>>>>>>>>>>>>>> Photograph groups <<<<<<<<<<<<<<<<<<<< -->

<!-- The details of a roll of film (e.g. 35mm, APS, 120).
     Optional film and processing descriptions are followed by a
     sequence of optional loading details, optional defaults (to be
     applied to the following frames), frame descriptions, and
     optional unloading details. A defaults element must always
     precede at least one frame element, and load and unload elements,
     if present, must respectively precede and follow some group of
     frame elements. The id attribute specifies an identity/name
     assigned to the roll. -->
<!ELEMENT roll (collection*,description?,film?,processing?,
               (load?,(defaults?,(frame|frame-set))+,unload?)+,note?)>
<!ATTLIST roll id NMTOKEN #REQUIRED>

<!-- The details of a single sheet of film (e.g. 4x5, 8x10).
     Optional film, processing and loading descriptions precede
     the single frame description, which is followed by an
     optional unloading description. The id attribute specifies an
     identity/name assigned to the sheet. -->
<!ELEMENT sheet (collection*,film?,processing?,load?,frame,unload?,note?)>
<!ATTLIST sheet id NMTOKEN #REQUIRED>

<!-- The details of a sequence of digital photographs. Each 
     group of frame descriptions may be preceded by a defaults
     element. The id attribute specifies an identity/name assigned to
     the digital sequence. -->
<!ELEMENT digital (collection*,description?,(defaults?,(frame|frame-set))+,
                   note?)>
<!ATTLIST digital id NMTOKEN #REQUIRED>


<!-- >>>>>>>>>>>>>>>>>>>>>>>>> Collections <<<<<<<<<<<<<<<<<<<<<< -->

<!-- A collection of photograph descriptions that should be grouped
     together. Particularly useful for sheet film, since each sheet
     element describes a single photo, but also useful, for example,
     for a number of roll film descriptions for the same day, event,
     trip etc. The id attribute allows an identity/name to be assigned
     to the collection, the cgid attribute provides a collection based
     id for the group (roll, digital, or sheet), and the optional fstfid 
     and lstfid specify initial and final frame ids for a subset of the 
     frames in the group. -->
<!ELEMENT collection (description?,note?)>
<!ATTLIST collection id      NMTOKEN #REQUIRED
                     cgid    NMTOKEN #REQUIRED
                     fstfid  NMTOKEN #IMPLIED
                     lstfid  NMTOKEN #IMPLIED>

<!-- A brief description of the parent element. Provides a description
     of the scene or location for a specific frame when a child of the
     scene or location elements, or of an entire collection, roll, or
     digital photography session, providing information relevant to
     all of the frames within the grouping, when a child of the
     collection, roll, or digital elements. -->
<!ELEMENT description (%Text;)>
<!ATTLIST description %xml-lang-attribute;>
<!-- A note for miscellaneous details of the parent element. -->
<!ELEMENT note (%Text;)>
<!ATTLIST note %xml-lang-attribute;>


<!-- ************************************************************
     *********** Film, usage, and processing elements ***********
     ************************************************************ -->

<!-- >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Film <<<<<<<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element film and children ... -->
<!-- A description of the film used. -->
<!ELEMENT film (make?,name?,speed?,process?,type?,format?,expiry?,note?)>
<!-- The manufacturer of the product, e.g. Fuji (when the parent
     element is film). -->
<!ELEMENT make (%Text;)>
<!-- The name of a person, business, or product, e.g. Velvia (when the 
     parent element is film). -->
<!ELEMENT name (%Text;)>
<!-- The ISO film speed, e.g. 50. --> 
<!ELEMENT speed (%PositiveInteger;)>
<!-- The appropriate film developing process. Recommended values are
     C41 (standard negative film), E6 (standard slide film), K14
     (Kodachrome) and B&W (black and white). A custom designation
     should be used for processes not listed here. As a child of the
     film element, this indicates the designated process of the
     film. In the case of cross-processing, a different process may be
     specified as a child of the developing element. -->
<!ELEMENT process (%Text;)>
<!-- The type of a film (recommended values for film type are colour 
     positive, colour negative, b&w positive, and b&w negative), camera 
     body (e.g. SLR, TLR, rangefinder), or lens (e.g. zoom, prime). -->
<!ELEMENT type (%Text;)>
<!-- The film format. Recommended values are APS, 35mm (or 135), 120
     or 220 for medium format, and the film size for large format. -->
<!ELEMENT format (%Text;)>
<!-- The film expiry (expiration in the US) date. The format is
     YYYY-MM since film expiry dates usually only specify a year and
     month. -->
<!ELEMENT expiry (%YearMonth;)>
<!-- A note for miscellaneous details about the film. -->
<!-- ELEMENT note is already defined. -->


<!-- >>>>>>>>>>>>>>>>>>>>>>>>>> Processing <<<<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element processing and children ... -->
<!-- A description of the film processing.  -->
<!ELEMENT processing (lab?,tag?,date?,time?,developing?,note?)>
<!-- The lab that developed the film. -->
<!-- ELEMENT lab is defined in the next section. -->
<!-- The number of the double/triple check tag affixed 
     to the film by the lab. -->
<!ELEMENT tag (%Text;)>
<!-- A date, represented in the format YYYY[-MM[-DD]]. -->
<!ELEMENT date (%Date;)>
<!-- A time, represented in the format hh[:mm[:ss[.ss*]]]. The
     optional zone attribute represents the time zone in the format
     (+|-)hh[:mm]. -->
<!ELEMENT time (%Time;)>
<!ATTLIST time zone CDATA #IMPLIED>
<!-- A description of the development stage of processing. -->
<!-- ELEMENT developing is defined in the next section. -->
<!-- A note for miscellaneous details about the processing. -->
<!-- ELEMENT note is already defined. -->


<!-- The lab that developed the film. The optional href
     attribute represents the laboratory web page. -->
<!ELEMENT lab (name,address?,phone?,fax?,email?,note?)>
<!ATTLIST lab href CDATA #IMPLIED>
<!-- The name of the laboratory. -->
<!-- ELEMENT name is already defined. -->    
<!-- The address of a person or business. -->
<!ELEMENT address (%Text;)>
<!-- The phone number of a person or business. -->
<!ELEMENT phone (%PhoneNumber;)>
<!-- The fax number of a person or business. -->
<!ELEMENT fax (%PhoneNumber;)>
<!-- The email address of a person or business. -->
<!ELEMENT email (%EmailAddress;)>
<!-- A note for miscellaneous details about the laboratory. -->
<!-- ELEMENT note is already defined. -->


<!-- A description of the development stage of processing. -->
<!ELEMENT developing (process?,shift?,developer?,method?,agitation?,
	              temperature?,duration?,note?)>
<!-- The film developing process used, e.g. C-41. This will differ
     from the process child of the film element for cross-
     processed film -->
<!-- ELEMENT process is already defined. -->
<!-- The number of stops push or pull applied during processing. -->
<!ELEMENT shift (%Real;)>
<!ATTLIST shift type (push|pull) #REQUIRED>
<!-- The developer solution used. -->
<!-- ELEMENT developer is defined in the next section. -->
<!-- The development method, e.g. daylight tank, tray etc. -->
<!ELEMENT method (%Text;)>
<!-- Description of the agitation during development. -->
<!ELEMENT agitation (%Text;)>
<!-- The temperature of the developer solution (in degrees Celcius
     by default). -->
<!ELEMENT temperature (%Real;)>
<!ATTLIST temperature units CDATA '&deg;C'>
<!-- The amount of time the film spent in the developer, 
     represented in the form %m:%s (minutes:seconds). -->
<!ELEMENT duration (%TimeInterval;)>
<!-- A note for miscellaneous details about the developing. -->
<!-- ELEMENT note is already defined. -->


<!-- The developer solution used. -->
<!ELEMENT developer (make?,name?,dilution?,note?)>
<!-- The manufacturer of the developer, e.g. Agfa. -->
<!-- ELEMENT make is already defined. -->
<!-- The name of the developer, e.g. Rodinal. -->
<!-- ELEMENT name is already defined. -->
<!-- The dilution of the developer solution. -->
<!ELEMENT dilution (%Text;)>
<!-- A note for miscellaneous details about the developer. -->
<!-- ELEMENT note is already defined. -->


<!-- >>>>>>>>>>>>>>>>>>>>>>>>> Load/unload <<<<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element load and children ... -->
<!-- Film loading details. -->
<!ELEMENT load (date?,time?,note?)>
<!-- The date the film was loaded into the camera. -->
<!-- ELEMENT date is already defined. -->
<!-- The time the film was loaded into the camera. -->
<!-- ELEMENT time is already defined. -->
<!-- A note for miscellaneous details about the loading. -->
<!-- ELEMENT note is already defined. -->


<!-- ... Element unload and children ... -->
<!-- Film unloading details. -->
<!ELEMENT unload (date?,time?,note?)>
<!-- The date the film was unloaded from the camera. -->
<!-- ELEMENT date is already defined. -->
<!-- The time the film was unloaded from the camera. -->
<!-- ELEMENT time is already defined. -->
<!-- A note for miscellaneous details about the unloading. -->
<!-- ELEMENT note is already defined. -->


<!-- ************************************************************
     **************** Frame description elements ****************
     ************************************************************ -->

<!-- >>>>>>>>>>>>>>>>>>>>>>>>>> Frame set <<<<<<<<<<<<<<<<<<<<<<< -->

<!-- A container allowing the scope of defaults elements to be
     restricted to the contained set of frame elements. -->
<!ELEMENT frame-set (defaults?,((frame|frame-set)+,defaults?)+)>


<!-- >>>>>>>>>>>>>>>>>>>>>>> Frame top level <<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element frame and immediate children ... -->


<!-- The frame element describes a single frame in a roll of film or
     sequence of digital photos, and also describes the single frame
     on a piece of sheet film. The id attribute should be an
     identifying number assigned in chronological sequence (e.g. 01,
     02 etc.). If the actual frame number marked on the film differs
     from the id, it may be recorded using the fn attribute. The fn
     attribute is also useful in other situations, e.g. when the
     camera exposes film beginning at the end, so the the id numbers
     increase in chronological order while the fn values decrease. A
     frame that is not a child of a digital element should not have a
     digimage child element. -->
<!ELEMENT frame (photographer?,ipr?,scene?,equipment?,exposure?,
                 focus?,size?,evaluation?,condition?,digimage?,
                 index-image?,note?)>
<!ATTLIST frame id NMTOKEN #IMPLIED
                fn CDATA #IMPLIED>
<!-- Details of the photographer -->
<!-- ELEMENT photographer is defined in the next section. --> 
<!-- Intellectual Property Rights details -->
<!-- ELEMENT ipr is defined in the next section. -->
<!-- A description of the scene depicted in the frame -->
<!-- ELEMENT scene is defined in the next section. -->
<!-- A description of the camera and associated equipment. -->
<!-- ELEMENT equipment is defined in the next section. -->
<!-- A description of film exposure and camera metering settings. -->
<!-- ELEMENT exposure is defined in the next section. -->
<!-- Information relevant to lens focus. -->
<!-- ELEMENT focus is defined in the next section. -->
<!-- The physical size of the frame. The value may be specified as
     actual physical dimensions in the format <width>x<height> (e.g. a
     value of "24x36" with units "mm" for standard 135 (35mm) film
     frames, or a value of "56x41.5" with units "mm" for 645 frames on
     120 film), in which case the units attribute must be specified,
     or as standard frame size designations (e.g. "645", "6x6", "6x7",
     etc. on 120 film, or "4x5", "8x10" etc. large format film), in
     which case the units attribute must be omitted as an indication
     that the value does not represent an actual physical
     measurement. -->
<!ELEMENT size (%Text;)>
<!ATTLIST size units CDATA #IMPLIED>
<!-- An evaluation of the merits of the frame -->
<!-- ELEMENT evaluation is defined in the next section. -->
<!-- A description of any damage, such as scratches, to a frame. -->
<!ELEMENT condition (%Text;)>
<!ATTLIST condition %xml-lang-attribute;>
<!-- The index-image allows the specification of the location of an index
     image suitable for viewing in an image index, and should therefore 
     be small enough for convenient display in a web browser (for example), 
     but larger than a thumbnail. This facility is useful for constructing 
     indices of frame descriptions, or, within digimage elements, when the 
     actual digital image being described is too large for convenient 
     display in this context. -->
<!ELEMENT index-image EMPTY>
<!ATTLIST index-image href CDATA #IMPLIED>
<!-- When the frame element is a child of a digital element, the digimage
     element may be used to provide details of the original image direct 
     from the digital camera. In this context, only the properties child 
     of the digimage element should be specified, the history element 
     being omitted, and the group-id and frame-id attributes of the 
     digimage element should be omitted, being implied by the id 
     attributes of the parent frame and digital elements. -->
<!-- ELEMENT digimage is defined in the last section. -->
<!-- A note for miscellaneous details about the frame. -->
<!-- ELEMENT note is already defined. -->       


<!-- >>>>>>>>>>>>>>>>>>>>>>>>> Photographer <<<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element photographer and children ... -->
<!-- The name and other details of the photographer. The 
     optional href attribute represents the photographer's 
     web page. -->
<!ELEMENT photographer (name,address?,phone?,fax?,email?,note?)>
<!ATTLIST photographer href CDATA #IMPLIED>
<!-- The name of the photographer. -->
<!-- ELEMENT name is already defined. -->    
<!-- The address of the photographer -->
<!-- ELEMENT address is already defined. --> 
<!-- The phone number of the photographer -->
<!-- ELEMENT phone is already defined. --> 
<!-- The fax number of the photographer -->
<!-- ELEMENT fax is already defined. --> 
<!-- The email address of the photographer -->
<!-- ELEMENT email is already defined. --> 
<!-- A note for miscellaneous details about the photographer. -->
<!-- ELEMENT note is already defined. -->


<!-- >>>>>>>>>>>>>>>>>>>>>>>>> IPR details <<<<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element ipr and children ... -->
<!-- Intellectual Property Rights details -->
<!ELEMENT ipr (copyright?,owner?,note?)>
<!-- A copyright statement -->
<!ELEMENT copyright (%Text;)>
<!ATTLIST copyright %xml-lang-attribute;>
<!-- Details of the copyright owner. The optional href 
     attribute represents the owner's web page. -->
<!ELEMENT owner (name,address?,phone?,fax?,email?)>
<!ATTLIST owner href CDATA #IMPLIED>
<!-- Children of owner are the same as those for the
     photographer element defined above -->
<!-- A note for miscellaneous IPR details. -->
<!-- ELEMENT note is already defined. -->  


<!-- >>>>>>>>>>>>>>>>>>>>>>>> Scene details <<<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element scene and children ... -->
<!-- A description of the scene depicted in the frame -->
<!ELEMENT scene (occasion?,location?,description?,caption?,genre?,
                 keywords?,content?,note?)>
<!-- A description of when the photograph was taken. -->
<!-- ELEMENT occasion is defined in the next section. -->     
<!-- A description of where the photo was taken. -->
<!-- ELEMENT location is defined in the next section. -->
<!-- A detailed description of the photograph. -->
<!-- ELEMENT description is already defined. --> 
<!-- A short descriptive caption for the photograph. -->
<!ELEMENT caption (%Text;)>
<!ATTLIST caption %xml-lang-attribute;>
<!-- The genre of the scene, e.g. portrait, landscape, sport, travel,
     macro etc. -->
<!ELEMENT genre (%Text;)>
<!-- Keywords relevant to the description of the scene. -->
<!ELEMENT keywords (%Text;)>
<!ATTLIST keywords %xml-lang-attribute;>
<!-- A detailed description of the scene content. -->
<!-- ELEMENT content is defined in the next section. -->
<!-- A note for miscellaneous scene details. -->
<!-- ELEMENT note is already defined. -->


<!-- >>>>>>>>>>>>>>>>>>>>>> Occasion details <<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element occasion and children ... -->
<!-- A description of when the photograph was taken. -->
<!ELEMENT occasion (date?,time?,event?,note?)>
<!-- The date the photo was taken. -->
<!-- ELEMENT date is already defined. -->
<!-- The time the photo was taken. -->
<!-- ELEMENT time is already defined. -->
<!-- A description of the event at which the photo was taken. -->
<!ELEMENT event (%Text;)>
<!ATTLIST event %xml-lang-attribute;>
<!-- A note for miscellaneous details about the occasion. -->
<!-- ELEMENT note is already defined. --> 


<!-- >>>>>>>>>>>>>>>>>>>>>> Location details <<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element location and children ... -->
<!-- A description of the location at which the photo was taken. The
     content model is intended to allow a wide range of locations to be
     described, but this flexibility also allows incoherent choices, which
     should be avoided. These descriptions will usually follow one of the
     patterns:
        country,region,...,city,... (indicating a location within the
           borders of some country),
        ocean,sea,island,... (indicating a location on an island that
           may be a possession of, but is not considered to be within 
           the borders of, any country),   
        ocean,sea,description (indicating a location removed from any
           land mass, e.g. on a ship at sea),
        continent,region,... (indicating a location on a continent that 
           is not within the borders of any country - the continent in 
           question will invariably be Antarctica).
     With the exception of the description element, child elements with 
     text content should contain only the name of the associated 
     location component, and not a descriptive sentence.
-->
<!ELEMENT location (((ocean?,sea?,island?)|(continent?,country?)),
                    region?,subregion?,district?,city?,subcity?,
                    subsubcity?,area?,subarea?,road?,place?,point?,
                    description?,coordinates?,direction?,note?)>
<!-- If the location is at sea, at a distance from a continent or island,
     the ocean may be specified. -->
<!ELEMENT ocean (%Text;)>
<!ATTLIST ocean %xml-lang-attribute;>
<!-- The sea, if any, within the relevant ocean (e.g. the Andaman Sea
     is part of the Indian Ocean). -->
<!ELEMENT sea (%Text;)>
<!ATTLIST sea %xml-lang-attribute;>
<!-- An island within the specified ocean or sea. This element is
     intended for islands which may be posessions of, but are not
     considered an integral part of any country.  -->
<!ELEMENT island (%Text;)>
<!ATTLIST island %xml-lang-attribute;>
<!-- The continent of the location. This would usually be omitted, but 
     would be used if the location is not part of any country (e.g. a
     part of Antarctica). -->
<!ELEMENT continent (%Text;)>
<!ATTLIST continent %xml-lang-attribute;>
<!-- The country of the location.  -->
<!ELEMENT country (%Text;)>
<!ATTLIST country %xml-lang-attribute;>
<!-- A region within the location. The type attribute may be used to
     specify the type of region (e.g. province, state, etc.). For
     example, in the US, typical usage would be to use the region
     element to represent a state, and the subregion or district
     element to represent a county, while in Italy a region element
     would represent an official region, and a subregion element would
     represent a province. -->
<!ELEMENT region (%Text;)>
<!ATTLIST region type CDATA #IMPLIED
                 %xml-lang-attribute;>
<!-- A subdivision of the region. The type attribute may be used to
     specify the type of subdivision. -->
<!ELEMENT subregion (%Text;)>
<!ATTLIST subregion type CDATA #IMPLIED
                    %xml-lang-attribute;>
<!-- A subdivision of the subregion, when necessary. May also be a
     direct subdivision of the region when the subregion is
     omitted. The type attribute may be used to specify the type of
     subdivision. -->
<!ELEMENT district (%Text;)>
<!ATTLIST district type CDATA #IMPLIED
                   %xml-lang-attribute;>
<!-- The city of the location. -->
<!ELEMENT city (%Text;)>
<!ATTLIST city %xml-lang-attribute;>
<!-- A subdivision of the city, such as a suburb, borough, or
     ward. The type attribute may be used to specify the type of
     subdivision (e.g. an arrondissement of Paris or a ku (ward) of
     Tokyo). -->
<!ELEMENT subcity (%Text;)>
<!ATTLIST subcity type CDATA #IMPLIED
                  %xml-lang-attribute;>
<!-- A subdivision of the subcity, when necessary (for example,
     Asakusa is a subdivision of Taito-ku, which is a ward of
     Tokyo). The type attribute may be used to specify the type of
     subdivision. -->
<!ELEMENT subsubcity (%Text;)>
<!ATTLIST subsubcity type CDATA #IMPLIED
                     %xml-lang-attribute;>
<!-- The area is intended for a level of detail below that of
     city, when a city is specified (e.g. `Central Park'), or below
     that of district when there is no relevant city (e.g. `Kruger
     National Park'). The type attribute may be used to specify the
     type of subdivision. --> 
<!ELEMENT area (%Text;)>
<!ATTLIST area type CDATA #IMPLIED
               %xml-lang-attribute;>
<!-- The subarea is intended for a level of detail below that of area
     (e.g. 'Conservatory Garden' when the area is 'Central Park', or
     'Skukuza Camp' when the area is `Kruger National Park'). -->
<!ELEMENT subarea (%Text;)>
<!ATTLIST subarea type CDATA #IMPLIED
                  %xml-lang-attribute;>
<!-- A road or city street. -->
<!ELEMENT road (%Text;)>
<!ATTLIST road %xml-lang-attribute;>
<!-- The place is intended for a level of detail below that of
     area, when appropriate. The type attribute may be used to 
     specify the type of subdivision. --> 
<!ELEMENT place (%Text;)>
<!ATTLIST place %xml-lang-attribute;>
<!-- The point is intended for a level of detail below that of place,
     when necessary. -->
<!ELEMENT point (%Text;)>
<!ATTLIST point %xml-lang-attribute;>
<!-- A sentence describing the location, for use when the
     description is too complex to fit entirely into the
     classification provided. The description may be provided as the
     only location detail, or as a refinement on detail provided by
     preceding elements (e.g. country, region etc.). This element
     should also be used when specifying a location relative to some
     other location (e.g. in a rural area, one might specify the
     country and region element content, omit the city element, and
     then specify the description as something like "50km South of
     London"). -->
<!-- ELEMENT description is already defined. -->
<!-- The geographic coordinates of the location (obtained from a 
     GPS device, for example). -->
<!-- ELEMENT coordinates is defined in the next section. -->
<!-- The direction in which the camera was pointed (i.e. from the
     viewpoint to the scene). -->
<!-- ELEMENT direction is defined in a following section. -->
<!-- A note for miscellaneous details about the location. -->
<!-- ELEMENT note is already defined. -->


<!-- >>>>>>>>>>>>>>>>>>>>> Coordinates details <<<<<<<<<<<<<<<<<< -->

<!-- ... Element coordinates and children ... -->


<!-- The (latitude, longitude, altitude) coordinates (e.g. obtained 
     from a GPS device)  of the location. The datum attribute 
     specifies the map datum for the coordinate system, which is 
     WGS 84 by default. The relevance attribute specifies whether 
     the coordinates represent an estimate of the specific point at
     which the photo was taken, or merely indicate the general area 
     (e.g. if the photo was taken at a significant monument, the 
     coordinates might be copies from the wikipedia entry for that 
     monument). The uncertainty attribute provides an estimate of 
     the uncertainty (in units of metres) of the coordinates. When 
     the relevance is set to "area" and an uncertainty estimate is 
     provided, the implication is that the unknown "point" 
     coordinates lie within the uncertainty radius of the provided 
     coordinates. -->
<!ELEMENT coordinates (latitude?,longitude?,altitude?,measurement?,
                       estimation?,note?)>
<!ATTLIST coordinates datum       CDATA        'WGS 84'
                      relevance   (point|area) #IMPLIED
                      uncertainty CDATA        #IMPLIED>
<!-- The location latitude. -->
<!ELEMENT latitude (%Latitude;)>
<!-- The location longitude. -->
<!ELEMENT longitude (%Longitude;)>
<!-- The location altitude (in metres by default). The optional
     reference attribute specifies whether the specified altitude is
     Above Mean Sea Level or Above Ground Level. -->
<!ELEMENT altitude (%Real;)>
<!ATTLIST altitude units CDATA 'm'
                   reference (amsl|agl) #IMPLIED>
<!-- Details of the measurement of the coordinates, e.g. by use of a
     GPS device. -->
<!-- ELEMENT measurement is defined in a following section. -->
<!-- Details of the estimation of the coordinates, e.g. by locating relevant 
     features on a map. -->
<!-- ELEMENT estimation is defined in a following section. -->
<!-- A note for miscellaneous details about the coordinates. -->
<!-- ELEMENT note is already defined. --> 


<!-- ... Element measurement and children ... -->
<!-- Details of the measurement of the location coordinates. Note that
     measurement implies the use of a GPS receiver or other navigation
     device, while estimation refers to a (usually) less reliable
     approach, by use of a map or satellite imagery with coordinates,
     or by comparison with a separate geotagged image of approximately
     the same scene. The optional association attribute indicates
     whether the location information was associated with the photo at
     the time of creation ("immediate"), by use of a GPS device
     tethered to a DSLR, for example, or at a later stage ("delayed"),
     by correlating a GPS log with an EXIF time stamp, for
     example. -->
<!ELEMENT measurement (device?,date?,time?,latitude?,longitude?,altitude?,
                       hdop?,vdop?,pdop?,note?)>
<!ATTLIST measurement association (immediate|delayed) #IMPLIED>
<!-- The navigation device (e.g. GPS receiver) used to measure the 
     coordinates. -->
<!-- ELEMENT device is defined in a different section. -->
<!-- The date of the measurement. -->
<!-- ELEMENT date is already defined. -->
<!-- The time of the measurement. When the device is a GPS receiver, the 
     time-zone should be set to '00' to denote UTC. -->
<!-- ELEMENT time is already defined. -->
<!-- The location latitude. -->
<!-- ELEMENT latitude is already defined. -->
<!-- The location longitude. -->
<!-- ELEMENT longitude is already defined. -->
<!-- The location altitude. --> 
<!-- ELEMENT altitude is already defined. -->
<!-- Horizontal Dilution of Precision (of a GPS measurement). -->
<!ELEMENT hdop (%Real;)>
<!-- Vertical Dilution of Precision (of a GPS measurement). -->
<!ELEMENT vdop (%Real;)>
<!-- Positional Dilution of Precision (of a GPS measurement). -->
<!ELEMENT pdop (%Real;)>
<!-- A note for miscellaneous details about the exposure. -->
<!-- ELEMENT note is already defined. -->


<!-- ... Element estimation and children ... -->
<!-- Details of the estimation of the coordinates, e.g. by locating relevant 
     features on a map. Typically only one of the measurement or estimation 
     elements will be specified, but if both are present, the implication is 
     that the measured coordinates were modified based on some other method 
     of estimating the position. For example, if GPS data are available, but 
     are inaccurate due to poor reception, the coordinates may be estimated 
     by using a recognised location on a map, but it may still be desired to
     record the measured location in case the estimate is later found to be
     poor. -->
<!ELEMENT estimation ((source-frame|source-ref)?,description?)>
<!-- If the coordinates are estimated by comparing the scene with
     another photo with known coordinates, and which has been assigned
     a group-id and frame-id, the source-frame element may be used to
     provide relevant information on the geotagged photo, and the group-id 
     and frame-id attributes should provide its corresponding id tags. -->
<!ELEMENT source-frame (%Text;)>
<!ATTLIST source-frame group-id NMTOKEN #IMPLIED
                       frame-id NMTOKEN #IMPLIED>
<!-- If the approximate coordinates are obtained from some internet
     resource, the source-ref element may be used to describe the
     resource, and the href attribute should provide a link to the 
     relevant resource (e.g. a wikipedia entry). -->
<!ELEMENT source-ref (%Text;)>
<!ATTLIST source-ref href CDATA #IMPLIED>
<!-- A description of the procedure for estimating the coordinates. -->
<!-- ELEMENT description is already defined. -->


<!-- >>>>>>>>>>>>>>>>>>>>>> Direction details <<<<<<<<<<<<<<<<<<< -->

<!-- ... Element direction and children ... -->
<!-- The direction in which the camera was pointed (i.e. from the
     viewpoint to the scene; coordinates are usually considered to be
     of the scene viewpoint, and always have this interpretation when
     direction is specified). -->
<!ELEMENT direction (azimuth?,elevation?)>
<!-- The compass direction of the scene from the viewpoint (e.g. "0"
     for North, "90" for East, etc.) in the range 0 to 360
     (degrees). -->
<!ELEMENT azimuth (%CompassDirection;)>
<!-- The elevation angle of the scene from the viewpoint (e.g. "0" for
     horizontal, "90" for directly upwards, etc.) in the range -90 to 90
     (degrees). -->
<!ELEMENT elevation (%ElevationAngle;)>


<!-- >>>>>>>>>>>>>>>>>>>>>>> Content details <<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element content and children ... -->
<!-- A detailed description of the scene content. -->
<!ELEMENT content ((person|object)+|segment+)>
<!-- A person in the scene. -->
<!-- ELEMENT person is defined in the next section. --> 
<!-- An object in the scene. -->
<!-- ELEMENT object is defined in the next section. -->
<!-- A possibly hierarchical subdivision of the scene. -->
<!-- ELEMENT segment is defined in the next section. -->


<!-- ... Element person and children ... -->
<!-- The optional href attribute represents the person's web page. -->
<!ELEMENT person (name,address?,phone?,fax?,email?)>
<!ATTLIST person href CDATA #IMPLIED>
<!-- Children of person are the same as those for the
     photographer element defined above. -->


<!-- ... Element object and children ... -->
<!-- The optional type and href attributes represent the object type 
     (e.g. building, vehicle) and a URL associated with the object 
     (e.g. for a museum). -->
<!ELEMENT object (name?,address?,note?)>
<!ATTLIST object type CDATA #IMPLIED
                 href CDATA #IMPLIED>
<!-- The name of the object, e.g. The White House. -->
<!-- ELEMENT name is already defined. -->
<!-- The address of a relevant object (e.g. a building). -->
<!-- ELEMENT address is already defined. -->
<!-- A note about the object. -->
<!-- ELEMENT note is already defined. -->


<!-- ... Element segment and children ... -->
<!-- A segment of the scene. The label attribute allows
     identification of segments (e.g. foreground, upper-left, 
     etc. -->
<!ELEMENT segment (segment|person|object)+>
<!ATTLIST segment label CDATA #IMPLIED>
<!-- Elements person and object are as defined above. -->


<!-- >>>>>>>>>>>>>>>>>>>>>> Equipment details <<<<<<<<<<<<<<<<<<< -->

<!-- ... Element equipment and children ... -->
<!-- A description of the camera and associated equipment. -->
<!ELEMENT equipment (body?,body-attachment?,lens?,lens-attachment?,
                     illumination?,support?,note?)>
<!-- The camera body. While often fixed for a particular roll, 
     it is included here since it forms part of the equipment, 
     and is also not always fixed (e.g. APS mid-roll roll change). -->
<!ELEMENT body (make?,model?,serial?,type?,note?)>
<!-- An accessory attached to the body, e.g. motor-drive, 
     multi-function back -->
<!ELEMENT body-attachment (device+,note?)>
<!-- A lens. -->
<!ELEMENT lens (make?,model?,serial?,type?,note?)>
<!-- An accessory attached to the lens, e.g. teleconverter, 
     extension-tube, diopter, filter, lens-hood. -->
<!ELEMENT lens-attachment (device+,note?)>
<!-- An illumination source, e.g. flash. -->
<!ELEMENT illumination (device+,note?)>
<!-- A support, e.g. tripod leg set, ball-head, monopod. -->
<!ELEMENT support (device*,note?)>
<!-- A description of an item of equipment. The optional type
     attribute represents the device type (e.g. filter, ball-head,
     flash). -->
<!ELEMENT device (make?,model?,serial?,firmware?,note?)>
<!ATTLIST device type CDATA #IMPLIED>
<!-- The model number/code of a photographic product. --> 
<!ELEMENT model (%Text;)>
<!-- The serial number/code of a photographic product. --> 
<!ELEMENT serial (%Text;)>
<!-- ELEMENTs type, make, and note are already defined. -->
<!-- The firmware version. -->
<!ELEMENT firmware (%Text;)>


<!-- >>>>>>>>>>>>>>>>>>>>>> Exposure details <<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element exposure and children ... -->
<!-- A description of film exposure and camera metering settings. -->
<!ELEMENT exposure (aperture?,shutter?,exp-comp?,flash?,flash-comp?,
                    rated-speed?,mode?,metering?,note?)>
<!-- The lens aperture in f/-stops. -->
<!ELEMENT aperture (%Real;)>
<!-- The shutter speed in seconds. -->
<!ELEMENT shutter (%Fraction;)>
<!-- Exposure compensation in EV units. -->
<!ELEMENT exp-comp (%Real;)>
<!-- Flash usage description. -->
<!ELEMENT flash (%Text;)>
<!-- Flash exposure compensation in EV units. -->
<!ELEMENT flash-comp (%Real;)>
<!-- ISO speed setting of the camera (useful if different from
     the actual film ISO speed, or for a digital camera). -->
<!ELEMENT rated-speed (%PositiveInteger;)>
<!-- Exposure mode (e.g. program, manual, shutter priority) for
     an automated camera. -->
<!ELEMENT mode (%Text;)>
<!-- Metering mode (e.g. matrix, centre-weighted, spot). --> 
<!ELEMENT metering (%Text;)>
<!-- A note for miscellaneous details about the exposure. -->
<!-- ELEMENT note is already defined. --> 


<!-- >>>>>>>>>>>>>>>>>>>>>>>> Focus details <<<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element focus and children ... -->
<!-- Information relevant to lens focus. -->
<!ELEMENT focus (focal-length?,focal-distance?,mode?,note?)>
<!-- The lens focal length (useful when the lens doesn't have a
     fixed focal length), in millimeters by default. -->
<!ELEMENT focal-length (%Real;)>
<!ATTLIST focal-length units CDATA 'mm'>
<!-- The focal distance (in metres by default). -->
<!ELEMENT focal-distance (%Real;)>
<!ATTLIST focal-distance units CDATA 'm'>
<!-- The focus mode (e.g. manual/auto). -->
<!-- ELEMENT mode is already defined. --> 
<!-- A note for miscellaneous details about the focusing. -->
<!-- ELEMENT note is already defined. --> 


<!-- >>>>>>>>>>>>>>>>>>>>> Evaluation details <<<<<<<<<<<<<<<<<<< -->

<!-- ... Element evaluation and children ... -->
<!-- An evaluation of the merits of the frame. If a score attribute is
     specified, it represents the aggregate rating for the frame,
     independent of the score values for child elements; if it is not
     specified, the aggregate score should be computed as a weighted
     average of the score attributes of child elements. -->
<!ELEMENT evaluation (artistic?,technical?)>
<!ATTLIST evaluation score CDATA #IMPLIED>
<!-- An evaluation of the artistic merits of the frame. The element
     content is a comment on the evaluation, and a numeric rating is
     provided by the score attribute. -->
<!ELEMENT artistic (%Text;)>
<!ATTLIST artistic score CDATA #IMPLIED>
<!-- An evaluation of the technical merits (focus, depth of field,
     etc.) of the frame. The element content is a comment on the
     evaluation, and a numeric rating is provided by the score
     attribute. -->
<!ELEMENT technical (%Text;)>
<!ATTLIST technical score CDATA #IMPLIED>


<!-- ************************************************************
     *************** Digital image descriptions *****************
     ************************************************************ -->

<!-- >>>>>>>>>>>>>>>>>> Top level image details <<<<<<<<<<<<<<<<< -->

<!-- The details of an individual digital image. The optional
     href attribute represents the location of the digital image
     file being described. The group-id attribute is the id of the
     roll, sheet, or digital element in which the corresponding
     photographic frame is described, the frame-id attribute is the id
     of that frame element, and the image-id provides an id number for
     the specific digital file representing that frame (e.g. two scans
     of the same film frame would have the same group-id and frame-id,
     but different image-id. -->
<!ELEMENT digimage (properties?,history?,index-image?,note?)>
<!ATTLIST digimage href      CDATA   #IMPLIED
                   group-id  NMTOKEN #IMPLIED
                   frame-id  NMTOKEN #IMPLIED
                   image-id  NMTOKEN #IMPLIED>


<!-- A container allowing the scope of defaults elements to be
     restricted to the contained set of digimage elements. -->
<!ELEMENT digimage-set (defaults?,((digimage|digimage-set)+,defaults?)+)>


<!-- >>>>>>>>>>>>>>>>>>>>>>>> Properties <<<<<<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element properties and immediate children ... -->
<!-- Details of the image properties. -->
<!ELEMENT properties ((width,height)?,bit-depth?,file-format?,icc-profile?,
                      file-hash?,image-hash?,note?)>
<!-- The image width in pixels -->
<!ELEMENT width (%PositiveInteger;)>
<!-- The image height in pixels -->
<!ELEMENT height (%PositiveInteger;)>
<!-- The bit depth of a sample, commonly 8 or 12 bits 
     per colour band per pixel. -->
<!ELEMENT bit-depth (%PositiveInteger;)>
<!-- The image format. This may either be described by using the
     std attribute within an empty element, or omitting the std
     attribute and describing the format within the element
     content. When possible, the former approach is preferred. -->
<!ELEMENT file-format (%Text;)>
<!ATTLIST file-format std (bmp|crw|cr2|dng|jpeg|j2k|nef|pef|png|psd|tiff) 
          #IMPLIED>
<!-- The ICC profile for the image colour space. The optional href
     refers to the relevant ICC profile specification file. -->
<!ELEMENT icc-profile (%Text;)>
<!ATTLIST icc-profile href CDATA #IMPLIED>
<!-- The result of a hash function applied to the image file. Not as
     reliable as the hash value of the image content (i.e. the raw
     decoded bitmap representation of the image, which is not
     dependent on the specific image file format), but may be faster
     to compute in some circumstances, and therefore useful for an
     initial match test. -->
<!ELEMENT file-hash (%HexString;)>
<!ATTLIST file-hash type (md5|sha-256) 'md5'>
<!-- The result of a hash function applied to the image content. Useful for
     ensuring a correct match between the image description and the image 
     data file. -->
<!ELEMENT image-hash (%HexString;)>
<!ATTLIST image-hash type (md5|sha-256) 'md5'>


<!-- >>>>>>>>>>>>>>>>>>>>>>>>>> History <<<<<<<<<<<<<<<<<<<<<<<<< -->

<!-- ... Element history and immediate children ... -->
<!-- Details of the creation and editing history of the image. More
     than one editing element is allowed so that multiple stages of
     editing, using different software, may be described. -->
<!ELEMENT history (origin?,editing*,note?)>
<!-- Details of the origin of the image; either a film scanner or digital 
     camera, or source image(s) from which it is derived via editing 
     (multiple source images are possible when, for example, a panoramic
     image is composed of a number of smaller images). -->
<!ELEMENT origin ((date?,time?,(scanner|camera)?)|source-image+)>
<!-- Details of the editing operations applied to the image. -->
<!ELEMENT editing (date?,time?,software?,operations?,note?)>


<!-- ... Children of element origin ... -->
<!-- The date of creation of the image. -->
<!-- ELEMENT date is already defined. -->
<!-- The time of creation of the image. -->
<!-- ELEMENT time is already defined. -->
<!-- The details of the scanner and scanning process. -->
<!ELEMENT scanner (hardware?,software?,settings?,note?)>
<!-- The details of the digital camera. -->
<!ELEMENT camera (hardware?,settings?,note?)>
<!-- A description of the source image to which editing operations
     were applied to derive the image described by the image
     element. The group-id and frame-id attributes should only
     be used when they differ from the respective values of the
     image element. -->
<!ELEMENT source-image (file-hash?,image-hash?)>
<!ATTLIST source-image href     CDATA   #IMPLIED
                       group-id NMTOKEN #IMPLIED 
                       frame-id NMTOKEN #IMPLIED
                       image-id NMTOKEN #IMPLIED>


<!-- ... Children of element editing ... -->
<!-- The date of completion of editing. -->
<!-- ELEMENT date is already defined. -->
<!-- The time of completion of editing. -->
<!-- ELEMENT time is already defined. -->
<!-- The software used to perform the editing. -->
<!ELEMENT software (publisher?,name?,version?,note?)>
<!-- The details of the editing operations. -->
<!ELEMENT operations (operation+)>


<!-- ... Children of element scanner ... -->
<!-- The details of the camera or scanner hardware. -->
<!ELEMENT hardware (make?,model?,serial?,firmware?,note?)>
<!-- The details of the scanner control software. -->
<!-- ELEMENT software is already defined. -->
<!-- The details of the camera, scanner, or editing software settings. -->
<!ELEMENT settings (setting+,note?)>
<!-- A note about the scanning. -->
<!-- ELEMENT note is already defined. -->


<!-- ... Children of element software ... -->
<!-- The name of the company that developed the software. -->
<!ELEMENT publisher (%Text;)>
<!-- The name of the software. -->
<!-- ELEMENT name is already defined. -->
<!-- The version number of the software. -->
<!ELEMENT version (%Text;)>
<!-- A note about the software. -->
<!-- ELEMENT note is already defined. -->


<!-- ... Children of element operations ... -->
<!-- The details of an individual edit. In addition to the 
     text description, further details may be specified by
     providing the relevant command line when editing was
     performed via a command shell, or settings for 
     operations applied via a GUI. -->
<!ELEMENT operation (description?,(command|settings)?,note?)>
<!-- A text description of the edit. -->
<!-- ELEMENT description is already defined. -->
<!-- The command line used to apply the edit. -->
<!ELEMENT command (%Text;)>
<!-- A note about the operation. -->
<!-- ELEMENT note is already defined. -->


<!-- ... Children of element hardware ... -->
<!-- The name of the manufacturer. -->
<!-- ELEMENT make is already defined. -->
<!-- The model number. -->
<!-- ELEMENT model is already defined. --> 
<!-- The serial number. -->
<!-- ELEMENT serial is already defined. --> 
<!-- The firmware version. -->
<!-- ELEMENT firmware is already defined. -->
<!-- A note about the hardware. -->
<!-- ELEMENT note is already defined. -->


<!-- ... Children of element settings ... -->
<!-- The setting element describes software configuration settings
     during scanning. The name attribute should contain the name of
     the setting (e.g. multi-pass, ICE), and the element content
     represents the corresponding value. -->
<!ELEMENT setting (%Text;)>
<!ATTLIST setting name CDATA #REQUIRED
                  units CDATA #IMPLIED>


<!-- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -->