1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
   2 <html>
   3 <head>
   4 <!--
   5 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
   6 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   7 
   8 This code is free software; you can redistribute it and/or modify it
   9 under the terms of the GNU General Public License version 2 only, as
  10 published by the Free Software Foundation.  Oracle designates this
  11 particular file as subject to the "Classpath" exception as provided
  12 by Oracle in the LICENSE file that accompanied this code.
  13 
  14 This code is distributed in the hope that it will be useful, but WITHOUT
  15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  16 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  17 version 2 for more details (a copy is included in the LICENSE file that
  18 accompanied this code).
  19 
  20 You should have received a copy of the GNU General Public License version
  21 2 along with this work; if not, write to the Free Software Foundation,
  22 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  23 
  24 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  25 or visit www.oracle.com if you need additional information or have any
  26 questions.
  27 -->
  28 
  29 <title>Standard Metadata Format Specification</title>
  30 </head>
  31 
  32 <body bgcolor="white">
  33 
  34 <center><h1>
  35 Standard (Plug-in Neutral) Metadata Format Specification
  36 </h1></center>
  37 
  38 <p> The plug-in neutral "javax_imageio_1.0" format consists
  39 of a root node named "javax_imageio_1.0" which has child
  40 nodes "chroma", "compression", "dimension", "document", "text",
  41 "tile", and "transparency".  The format is described by the
  42 following DTD:
  43 
  44 <pre>
  45 &lt;!DOCTYPE "javax_imageio_1.0" [
  46 
  47   &lt;!ELEMENT "javax_imageio_1.0" (Chroma?, Compression?, Data?, Dimension?, 
  48     Document?, Text?, Transparency?)&gt;
  49 
  50     &lt;!ELEMENT "Chroma" (ColorSpaceType?, NumChannels?, Gamma?, 
  51       BlackIsZero?, Palette?, BackgroundIndex?, BackgroundColor?)&gt;
  52       &lt;!-- Chroma (color) information --&gt; 
  53 
  54       &lt;!ELEMENT "ColorSpaceType" EMPTY&gt;
  55         &lt;!-- The raw color space of the image --&gt; 
  56         &lt;!ATTLIST "ColorSpaceType" "name" ("XYZ" | "Lab" | "Luv" | 
  57           "YCbCr" | "Yxy" | "YCCK" | "PhotoYCC" | "RGB" | "GRAY" | "HSV" | 
  58           "HLS" | "CMYK" | "CMY" | "2CLR" | "3CLR" | "4CLR" | "5CLR" | 
  59           "6CLR" | "7CLR" | "8CLR" | "9CLR" | "ACLR" | "BCLR" | "CCLR" | 
  60           "DCLR" | "ECLR" | "FCLR") #REQUIRED&gt;
  61 
  62       &lt;!ELEMENT "NumChannels" EMPTY&gt;
  63         &lt;!-- The number of channels in the raw image, including alpha --&gt; 
  64         &lt;!ATTLIST "NumChannels" "value" #CDATA #REQUIRED&gt;
  65           &lt;!-- Data type: List of Integer --&gt;
  66 
  67       &lt;!ELEMENT "Gamma" EMPTY&gt;
  68         &lt;!-- The image gamma --&gt; 
  69         &lt;!ATTLIST "Gamma" "value" #CDATA #REQUIRED&gt;
  70           &lt;!-- Data type: Float --&gt;
  71 
  72       &lt;!ELEMENT "BlackIsZero" EMPTY&gt;
  73         &lt;!-- True if smaller values represent darker shades --&gt; 
  74         &lt;!ATTLIST "BlackIsZero" "value" ("TRUE" | "FALSE") "TRUE"&gt;
  75 
  76       &lt;!ELEMENT "Palette" (PaletteEntry)*&gt;
  77         &lt;!-- Palette-color information --&gt; 
  78 
  79         &lt;!ELEMENT "PaletteEntry" EMPTY&gt;
  80           &lt;!-- A palette entry --&gt; 
  81           &lt;!ATTLIST "PaletteEntry" "index" #CDATA #REQUIRED&gt;
  82             &lt;!-- The index of the palette entry --&gt; 
  83             &lt;!-- Data type: Integer --&gt;
  84           &lt;!ATTLIST "PaletteEntry" "red" #CDATA #REQUIRED&gt;
  85             &lt;!-- The red value for the palette entry --&gt; 
  86             &lt;!-- Data type: Integer --&gt;
  87           &lt;!ATTLIST "PaletteEntry" "green" #CDATA #REQUIRED&gt;
  88             &lt;!-- The green value for the palette entry --&gt; 
  89             &lt;!-- Data type: Integer --&gt;
  90           &lt;!ATTLIST "PaletteEntry" "blue" #CDATA #REQUIRED&gt;
  91             &lt;!-- The blue value for the palette entry --&gt; 
  92             &lt;!-- Data type: Integer --&gt;
  93           &lt;!ATTLIST "PaletteEntry" "alpha" #CDATA "255"&gt;
  94             &lt;!-- The alpha value for the palette entry --&gt; 
  95             &lt;!-- Data type: Integer --&gt;
  96 
  97       &lt;!ELEMENT "BackgroundIndex" EMPTY&gt;
  98         &lt;!-- A palette index to be used as a background --&gt; 
  99         &lt;!ATTLIST "BackgroundIndex" "value" #CDATA #REQUIRED&gt;
 100           &lt;!-- Data type: Integer --&gt;
 101 
 102       &lt;!ELEMENT "BackgroundColor" EMPTY&gt;
 103         &lt;!-- An RGB triple to be used as a background --&gt; 
 104         &lt;!ATTLIST "BackgroundColor" "red" #CDATA #REQUIRED&gt;
 105           &lt;!-- The red background value --&gt; 
 106           &lt;!-- Data type: Integer --&gt;
 107         &lt;!ATTLIST "BackgroundColor" "green" #CDATA #REQUIRED&gt;
 108           &lt;!-- The green background value --&gt; 
 109           &lt;!-- Data type: Integer --&gt;
 110         &lt;!ATTLIST "BackgroundColor" "blue" #CDATA #REQUIRED&gt;
 111           &lt;!-- The blue background value --&gt; 
 112           &lt;!-- Data type: Integer --&gt;
 113 
 114     &lt;!ELEMENT "Compression" (CompressionTypeName?, Lossless?, 
 115       NumProgressiveScans?, BitRate?)&gt;
 116       &lt;!-- Compression information --&gt; 
 117 
 118       &lt;!ELEMENT "CompressionTypeName" EMPTY&gt;
 119         &lt;!-- The name of the compression scheme in use --&gt; 
 120         &lt;!ATTLIST "CompressionTypeName" "value" #CDATA #REQUIRED&gt;
 121           &lt;!-- Data type: String --&gt;
 122 
 123       &lt;!ELEMENT "Lossless" EMPTY&gt;
 124         &lt;!-- True if the compression scheme is lossless --&gt; 
 125         &lt;!ATTLIST "Lossless" "value" ("TRUE" | "FALSE") "TRUE"&gt;
 126 
 127       &lt;!ELEMENT "NumProgressiveScans" EMPTY&gt;
 128         &lt;!-- The number of progressive scans used in the image encoding --&gt; 
 129         &lt;!ATTLIST "NumProgressiveScans" "value" #CDATA #REQUIRED&gt;
 130           &lt;!-- Data type: Integer --&gt;
 131 
 132       &lt;!ELEMENT "BitRate" EMPTY&gt;
 133         &lt;!-- The estimated bit rate of the compression scheme --&gt; 
 134         &lt;!ATTLIST "BitRate" "value" #CDATA #REQUIRED&gt;
 135           &lt;!-- Data type: Float --&gt;
 136 
 137     &lt;!ELEMENT "Data" (PlanarConfiguration?, SampleFormat?, BitsPerSample?, 
 138       SignificantBitsPerSample?, SampleMSB?)&gt;
 139       &lt;!-- Information on the image layout --&gt; 
 140 
 141       &lt;!ELEMENT "PlanarConfiguration" EMPTY&gt;
 142         &lt;!-- The organization of image samples in the stream --&gt; 
 143         &lt;!ATTLIST "PlanarConfiguration" "value" ("PixelInterleaved" | 
 144           "PlaneInterleaved" | "LineInterleaved" | "TileInterleaved")
 145            #REQUIRED&gt;
 146 
 147       &lt;!ELEMENT "SampleFormat" EMPTY&gt;
 148         &lt;!-- The numeric format of image samples --&gt; 
 149         &lt;!ATTLIST "SampleFormat" "value" ("SignedIntegral" | 
 150           "UnsignedIntegral" | "Real" | "Index") #REQUIRED&gt;
 151 
 152       &lt;!ELEMENT "BitsPerSample" EMPTY&gt;
 153         &lt;!-- The number of bits per sample --&gt; 
 154         &lt;!ATTLIST "BitsPerSample" "value" #CDATA #REQUIRED&gt;
 155           &lt;!-- A list of integers, one per channel --&gt; 
 156           &lt;!-- Data type: List of Integer --&gt;
 157           &lt;!-- Min length: 1 --&gt;
 158 
 159       &lt;!ELEMENT "SignificantBitsPerSample" EMPTY&gt;
 160         &lt;!-- The number of significant bits per sample --&gt; 
 161         &lt;!ATTLIST "SignificantBitsPerSample" "value" #CDATA #REQUIRED&gt;
 162           &lt;!-- A list of integers, one per channel --&gt; 
 163           &lt;!-- Data type: List of Integer --&gt;
 164           &lt;!-- Min length: 1 --&gt;
 165 
 166       &lt;!ELEMENT "SampleMSB" EMPTY&gt;
 167         &lt;!-- The position of the most significant bit of each sample --&gt; 
 168         &lt;!ATTLIST "SampleMSB" "value" #CDATA #REQUIRED&gt;
 169           &lt;!-- A list of integers, one per channel --&gt; 
 170           &lt;!-- Data type: List of Integer --&gt;
 171           &lt;!-- Min length: 1 --&gt;
 172 
 173     &lt;!ELEMENT "Dimension" (PixelAspectRatio?, ImageOrientation?, 
 174       HorizontalPixelSize?, VerticalPixelSize?, 
 175       HorizontalPhysicalPixelSpacing?, VerticalPhysicalPixelSpacing?, 
 176       HorizontalPosition?, VerticalPosition?, HorizontalPixelOffset?, 
 177       VerticalPixelOffset?, HorizontalScreenSize?, VerticalScreenSize?)&gt;
 178       &lt;!-- Dimension information --&gt; 
 179 
 180       &lt;!ELEMENT "PixelAspectRatio" EMPTY&gt;
 181         &lt;!-- The width of a pixel divided by its height --&gt; 
 182         &lt;!ATTLIST "PixelAspectRatio" "value" #CDATA #REQUIRED&gt;
 183           &lt;!-- Data type: Float --&gt;
 184 
 185       &lt;!ELEMENT "ImageOrientation" EMPTY&gt;
 186         &lt;!-- The desired orientation of the image in terms of flips and 
 187              counter-clockwise rotations --&gt; 
 188         &lt;!ATTLIST "ImageOrientation" "value" ("Normal" | "Rotate90" | 
 189           "Rotate180" | "Rotate270" | "FlipH" | "FlipV" | 
 190           "FlipHRotate90" | "FlipVRotate90") #REQUIRED&gt;
 191 
 192       &lt;!ELEMENT "HorizontalPixelSize" EMPTY&gt;
 193         &lt;!-- The width of a pixel, in millimeters, as it should be rendered 
 194              on media --&gt; 
 195         &lt;!ATTLIST "HorizontalPixelSize" "value" #CDATA #REQUIRED&gt;
 196           &lt;!-- Data type: Float --&gt;
 197 
 198       &lt;!ELEMENT "VerticalPixelSize" EMPTY&gt;
 199         &lt;!-- The height of a pixel, in millimeters, as it should be 
 200              rendered on media --&gt; 
 201         &lt;!ATTLIST "VerticalPixelSize" "value" #CDATA #REQUIRED&gt;
 202           &lt;!-- Data type: Float --&gt;
 203 
 204       &lt;!ELEMENT "HorizontalPhysicalPixelSpacing" EMPTY&gt;
 205         &lt;!-- The horizontal distance in the subject of the image, in 
 206              millimeters, represented by one pixel at the center of the 
 207              image --&gt; 
 208         &lt;!ATTLIST "HorizontalPhysicalPixelSpacing" "value" #CDATA #REQUIRED&gt;
 209           &lt;!-- Data type: Float --&gt;
 210 
 211       &lt;!ELEMENT "VerticalPhysicalPixelSpacing" EMPTY&gt;
 212         &lt;!-- The vertical distance in the subject of the image, in 
 213              millimeters, represented by one pixel at the center of the 
 214              image --&gt; 
 215         &lt;!ATTLIST "VerticalPhysicalPixelSpacing" "value" #CDATA #REQUIRED&gt;
 216           &lt;!-- Data type: Float --&gt;
 217 
 218       &lt;!ELEMENT "HorizontalPosition" EMPTY&gt;
 219         &lt;!-- The horizontal position, in millimeters, where the image 
 220              should be rendered on media --&gt; 
 221         &lt;!ATTLIST "HorizontalPosition" "value" #CDATA #REQUIRED&gt;
 222           &lt;!-- Data type: Float --&gt;
 223 
 224       &lt;!ELEMENT "VerticalPosition" EMPTY&gt;
 225         &lt;!-- The vertical position, in millimeters, where the image should 
 226              be rendered on media --&gt; 
 227         &lt;!ATTLIST "VerticalPosition" "value" #CDATA #REQUIRED&gt;
 228           &lt;!-- Data type: Float --&gt;
 229 
 230       &lt;!ELEMENT "HorizontalPixelOffset" EMPTY&gt;
 231         &lt;!-- The horizontal position, in pixels, where the image should be 
 232              rendered onto a raster display --&gt; 
 233         &lt;!ATTLIST "HorizontalPixelOffset" "value" #CDATA #REQUIRED&gt;
 234           &lt;!-- Data type: Integer --&gt;
 235 
 236       &lt;!ELEMENT "VerticalPixelOffset" EMPTY&gt;
 237         &lt;!-- The vertical position, in pixels, where the image should be 
 238              rendered onto a raster display --&gt; 
 239         &lt;!ATTLIST "VerticalPixelOffset" "value" #CDATA #REQUIRED&gt;
 240           &lt;!-- Data type: Integer --&gt;
 241 
 242       &lt;!ELEMENT "HorizontalScreenSize" EMPTY&gt;
 243         &lt;!-- The width, in pixels, of the raster display into which the 
 244              image should be rendered --&gt; 
 245         &lt;!ATTLIST "HorizontalScreenSize" "value" #CDATA #REQUIRED&gt;
 246           &lt;!-- Data type: Integer --&gt;
 247 
 248       &lt;!ELEMENT "VerticalScreenSize" EMPTY&gt;
 249         &lt;!-- The height, in pixels, of the raster display into which the 
 250              image should be rendered --&gt; 
 251         &lt;!ATTLIST "VerticalScreenSize" "value" #CDATA #REQUIRED&gt;
 252           &lt;!-- Data type: Integer --&gt;
 253 
 254     &lt;!ELEMENT "Document" (FormatVersion?, SubimageInterpretation?, 
 255       ImageCreationTime?, ImageModificationTime?)&gt;
 256       &lt;!-- Document information --&gt; 
 257 
 258       &lt;!ELEMENT "FormatVersion" EMPTY&gt;
 259         &lt;!-- The version of the format used by the stream --&gt; 
 260         &lt;!ATTLIST "FormatVersion" "value" #CDATA #REQUIRED&gt;
 261           &lt;!-- Data type: String --&gt;
 262 
 263       &lt;!ELEMENT "SubimageInterpretation" EMPTY&gt;
 264         &lt;!-- The interpretation of this image in relation to the other 
 265              images stored in the same stream --&gt; 
 266         &lt;!ATTLIST "SubimageInterpretation" "value" ("Standalone" | 
 267           "SinglePage" | "FullResolution" | "ReducedResolution" | 
 268           "PyramidLayer" | "Preview" | "VolumeSlice" | "ObjectView" | 
 269           "Panorama" | "AnimationFrame" | "TransparencyMask" | 
 270           "CompositingLayer" | "SpectralSlice" | "Unknown") #REQUIRED&gt;
 271 
 272       &lt;!ELEMENT "ImageCreationTime" EMPTY&gt;
 273         &lt;!-- The time of image creation --&gt; 
 274         &lt;!ATTLIST "ImageCreationTime" "year" #CDATA #REQUIRED&gt;
 275           &lt;!-- The full year (e.g., 1967, not 67) --&gt; 
 276           &lt;!-- Data type: Integer --&gt;
 277         &lt;!ATTLIST "ImageCreationTime" "month" #CDATA #REQUIRED&gt;
 278           &lt;!-- The month, with January = 1 --&gt; 
 279           &lt;!-- Data type: Integer --&gt;
 280           &lt;!-- Min value: 1 (inclusive) --&gt;
 281           &lt;!-- Max value: 12 (inclusive) --&gt;
 282         &lt;!ATTLIST "ImageCreationTime" "day" #CDATA #REQUIRED&gt;
 283           &lt;!-- The day of the month --&gt; 
 284           &lt;!-- Data type: Integer --&gt;
 285           &lt;!-- Min value: 1 (inclusive) --&gt;
 286           &lt;!-- Max value: 31 (inclusive) --&gt;
 287         &lt;!ATTLIST "ImageCreationTime" "hour" #CDATA "0"&gt;
 288           &lt;!-- The hour from 0 to 23 --&gt; 
 289           &lt;!-- Data type: Integer --&gt;
 290           &lt;!-- Min value: 0 (inclusive) --&gt;
 291           &lt;!-- Max value: 23 (inclusive) --&gt;
 292         &lt;!ATTLIST "ImageCreationTime" "minute" #CDATA "0"&gt;
 293           &lt;!-- The minute from 0 to 59 --&gt; 
 294           &lt;!-- Data type: Integer --&gt;
 295           &lt;!-- Min value: 0 (inclusive) --&gt;
 296           &lt;!-- Max value: 59 (inclusive) --&gt;
 297         &lt;!ATTLIST "ImageCreationTime" "second" #CDATA "0"&gt;
 298           &lt;!-- The second from 0 to 60 (60 = leap second) --&gt; 
 299           &lt;!-- Data type: Integer --&gt;
 300           &lt;!-- Min value: 0 (inclusive) --&gt;
 301           &lt;!-- Max value: 60 (inclusive) --&gt;
 302 
 303       &lt;!ELEMENT "ImageModificationTime" EMPTY&gt;
 304         &lt;!-- The time of the last image modification --&gt; 
 305         &lt;!ATTLIST "ImageModificationTime" "year" #CDATA #REQUIRED&gt;
 306           &lt;!-- The full year (e.g., 1967, not 67) --&gt; 
 307           &lt;!-- Data type: Integer --&gt;
 308         &lt;!ATTLIST "ImageModificationTime" "month" #CDATA #REQUIRED&gt;
 309           &lt;!-- The month, with January = 1 --&gt; 
 310           &lt;!-- Data type: Integer --&gt;
 311           &lt;!-- Min value: 1 (inclusive) --&gt;
 312           &lt;!-- Max value: 12 (inclusive) --&gt;
 313         &lt;!ATTLIST "ImageModificationTime" "day" #CDATA #REQUIRED&gt;
 314           &lt;!-- The day of the month --&gt; 
 315           &lt;!-- Data type: Integer --&gt;
 316           &lt;!-- Min value: 1 (inclusive) --&gt;
 317           &lt;!-- Max value: 31 (inclusive) --&gt;
 318         &lt;!ATTLIST "ImageModificationTime" "hour" #CDATA "0"&gt;
 319           &lt;!-- The hour from 0 to 23 --&gt; 
 320           &lt;!-- Data type: Integer --&gt;
 321           &lt;!-- Min value: 0 (inclusive) --&gt;
 322           &lt;!-- Max value: 23 (inclusive) --&gt;
 323         &lt;!ATTLIST "ImageModificationTime" "minute" #CDATA "0"&gt;
 324           &lt;!-- The minute from 0 to 59 --&gt; 
 325           &lt;!-- Data type: Integer --&gt;
 326           &lt;!-- Min value: 0 (inclusive) --&gt;
 327           &lt;!-- Max value: 59 (inclusive) --&gt;
 328         &lt;!ATTLIST "ImageModificationTime" "second" #CDATA "0"&gt;
 329           &lt;!-- The second from 0 to 60 (60 = leap second) --&gt; 
 330           &lt;!-- Data type: Integer --&gt;
 331           &lt;!-- Min value: 0 (inclusive) --&gt;
 332           &lt;!-- Max value: 60 (inclusive) --&gt;
 333 
 334     &lt;!ELEMENT "Text" (TextEntry)*&gt;
 335       &lt;!-- Text information --&gt; 
 336 
 337       &lt;!ELEMENT "TextEntry" EMPTY&gt;
 338         &lt;!-- A text entry --&gt; 
 339         &lt;!ATTLIST "TextEntry" "keyword" #CDATA #IMPLIED&gt;
 340           &lt;!-- A keyword associated with the text entry --&gt; 
 341           &lt;!-- Data type: String --&gt;
 342         &lt;!ATTLIST "TextEntry" "value" #CDATA #REQUIRED&gt;
 343           &lt;!-- the text entry --&gt; 
 344           &lt;!-- Data type: String --&gt;
 345         &lt;!ATTLIST "TextEntry" "language" #CDATA #IMPLIED&gt;
 346           &lt;!-- The language of the text --&gt; 
 347           &lt;!-- Data type: String --&gt;
 348         &lt;!ATTLIST "TextEntry" "encoding" #CDATA #IMPLIED&gt;
 349           &lt;!-- The encoding of the text --&gt; 
 350           &lt;!-- Data type: String --&gt;
 351         &lt;!ATTLIST "TextEntry" "compression" ("none" | "lzw" | "zip" | 
 352           "bzip" | "other") "none"&gt;
 353           &lt;!-- The method used to compress the text --&gt; 
 354 
 355     &lt;!ELEMENT "Transparency" (Alpha?, TransparentIndex?, 
 356       TransparentColor?, TileTransparencies?, TileOpacities?)&gt;
 357       &lt;!-- Transparency information --&gt; 
 358 
 359       &lt;!ELEMENT "Alpha" EMPTY&gt;
 360         &lt;!-- The type of alpha information contained in the image --&gt; 
 361         &lt;!ATTLIST "Alpha" "value" ("none" | "premultiplied" | 
 362           "nonpremultiplied") "none"&gt;
 363 
 364       &lt;!ELEMENT "TransparentIndex" EMPTY&gt;
 365         &lt;!-- A palette index to be treated as transparent --&gt; 
 366         &lt;!ATTLIST "TransparentIndex" "value" #CDATA #REQUIRED&gt;
 367           &lt;!-- Data type: Integer --&gt;
 368 
 369       &lt;!ELEMENT "TransparentColor" EMPTY&gt;
 370         &lt;!-- An RGB color to be treated as transparent --&gt; 
 371         &lt;!ATTLIST "TransparentColor" "value" #CDATA #REQUIRED&gt;
 372           &lt;!-- Data type: List of Integer --&gt;
 373 
 374       &lt;!ELEMENT "TileTransparencies" (TransparentTile)*&gt;
 375         &lt;!-- A list of completely transparent tiles --&gt; 
 376 
 377         &lt;!ELEMENT "TransparentTile" EMPTY&gt;
 378           &lt;!-- The index of a completely transparent tile --&gt; 
 379           &lt;!ATTLIST "TransparentTile" "x" #CDATA #REQUIRED&gt;
 380             &lt;!-- The tile's X index --&gt; 
 381             &lt;!-- Data type: Integer --&gt;
 382           &lt;!ATTLIST "TransparentTile" "y" #CDATA #REQUIRED&gt;
 383             &lt;!-- The tile's Y index --&gt; 
 384             &lt;!-- Data type: Integer --&gt;
 385 
 386       &lt;!ELEMENT "TileOpacities" (OpaqueTile)*&gt;
 387         &lt;!-- A list of completely opaque tiles --&gt; 
 388 
 389         &lt;!ELEMENT "OpaqueTile" EMPTY&gt;
 390           &lt;!-- The index of a completely opaque tile --&gt; 
 391           &lt;!ATTLIST "OpaqueTile" "x" #CDATA #REQUIRED&gt;
 392             &lt;!-- The tile's X index --&gt; 
 393             &lt;!-- Data type: Integer --&gt;
 394           &lt;!ATTLIST "OpaqueTile" "y" #CDATA #REQUIRED&gt;
 395             &lt;!-- The tile's Y index --&gt; 
 396             &lt;!-- Data type: Integer --&gt;
 397 ]&gt;
 398 </pre>
 399 
 400 </body>
 401 </html>