--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/javax/imageio/metadata/doc-files/standard_metadata.html Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation. Sun designates this
+particular file as subject to the "Classpath" exception as provided
+by Sun in the LICENSE file that accompanied this code.
+
+This code 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
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+CA 95054 USA or visit www.sun.com if you need additional information or
+have any questions.
+-->
+
+<title>Standard Metadata Format Specification</title>
+</head>
+
+<body bgcolor="white">
+
+<center><h1>
+Standard (Plug-in Neutral) Metadata Format Specification
+</h1></center>
+
+<p> The plug-in neutral "javax_imageio_1.0" format consists
+of a root node named "javax_imageio_1.0" which has child
+nodes "chroma", "compression", "dimension", "document", "text",
+"tile", and "transparency". The format is described by the
+following DTD:
+
+<pre>
+<!DOCTYPE "javax_imageio_1.0" [
+
+ <!ELEMENT "javax_imageio_1.0" (Chroma?, Compression?, Data?, Dimension?,
+ Document?, Text?, Transparency?)>
+
+ <!ELEMENT "Chroma" (ColorSpaceType?, NumChannels?, Gamma?,
+ BlackIsZero?, Palette?, BackgroundIndex?, BackgroundColor?)>
+ <!-- Chroma (color) information -->
+
+ <!ELEMENT "ColorSpaceType" EMPTY>
+ <!-- The raw color space of the image -->
+ <!ATTLIST "ColorSpaceType" "name" ("XYZ" | "Lab" | "Luv" |
+ "YCbCr" | "Yxy" | "YCCK" | "PhotoYCC" | "RGB" | "GRAY" | "HSV" |
+ "HLS" | "CMYK" | "CMY" | "2CLR" | "3CLR" | "4CLR" | "5CLR" |
+ "6CLR" | "7CLR" | "8CLR" | "9CLR" | "ACLR" | "BCLR" | "CCLR" |
+ "DCLR" | "ECLR" | "FCLR") #REQUIRED>
+
+ <!ELEMENT "NumChannels" EMPTY>
+ <!-- The number of channels in the raw image, including alpha -->
+ <!ATTLIST "NumChannels" "value" #CDATA #REQUIRED>
+ <!-- Data type: List of Integer -->
+
+ <!ELEMENT "Gamma" EMPTY>
+ <!-- The image gamma -->
+ <!ATTLIST "Gamma" "value" #CDATA #REQUIRED>
+ <!-- Data type: Float -->
+
+ <!ELEMENT "BlackIsZero" EMPTY>
+ <!-- True if smaller values represent darker shades -->
+ <!ATTLIST "BlackIsZero" "value" ("TRUE" | "FALSE") "TRUE">
+
+ <!ELEMENT "Palette" (PaletteEntry)*>
+ <!-- Palette-color information -->
+
+ <!ELEMENT "PaletteEntry" EMPTY>
+ <!-- A palette entry -->
+ <!ATTLIST "PaletteEntry" "index" #CDATA #REQUIRED>
+ <!-- The index of the palette entry -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "PaletteEntry" "red" #CDATA #REQUIRED>
+ <!-- The red value for the palette entry -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "PaletteEntry" "green" #CDATA #REQUIRED>
+ <!-- The green value for the palette entry -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "PaletteEntry" "blue" #CDATA #REQUIRED>
+ <!-- The blue value for the palette entry -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "PaletteEntry" "alpha" #CDATA "255">
+ <!-- The alpha value for the palette entry -->
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "BackgroundIndex" EMPTY>
+ <!-- A palette index to be used as a background -->
+ <!ATTLIST "BackgroundIndex" "value" #CDATA #REQUIRED>
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "BackgroundColor" EMPTY>
+ <!-- An RGB triple to be used as a background -->
+ <!ATTLIST "BackgroundColor" "red" #CDATA #REQUIRED>
+ <!-- The red background value -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "BackgroundColor" "green" #CDATA #REQUIRED>
+ <!-- The green background value -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "BackgroundColor" "blue" #CDATA #REQUIRED>
+ <!-- The blue background value -->
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "Compression" (CompressionTypeName?, Lossless?,
+ NumProgressiveScans?, BitRate?)>
+ <!-- Compression information -->
+
+ <!ELEMENT "CompressionTypeName" EMPTY>
+ <!-- The name of the compression scheme in use -->
+ <!ATTLIST "CompressionTypeName" "value" #CDATA #REQUIRED>
+ <!-- Data type: String -->
+
+ <!ELEMENT "Lossless" EMPTY>
+ <!-- True if the compression scheme is lossless -->
+ <!ATTLIST "Lossless" "value" ("TRUE" | "FALSE") "TRUE">
+
+ <!ELEMENT "NumProgressiveScans" EMPTY>
+ <!-- The number of progressive scans used in the image encoding -->
+ <!ATTLIST "NumProgressiveScans" "value" #CDATA #REQUIRED>
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "BitRate" EMPTY>
+ <!-- The estimated bit rate of the compression scheme -->
+ <!ATTLIST "BitRate" "value" #CDATA #REQUIRED>
+ <!-- Data type: Float -->
+
+ <!ELEMENT "Data" (PlanarConfiguration?, SampleFormat?, BitsPerSample?,
+ SignificantBitsPerSample?, SampleMSB?)>
+ <!-- Information on the image layout -->
+
+ <!ELEMENT "PlanarConfiguration" EMPTY>
+ <!-- The organization of image samples in the stream -->
+ <!ATTLIST "PlanarConfiguration" "value" ("PixelInterleaved" |
+ "PlaneInterleaved" | "LineInterleaved" | "TileInterleaved")
+ #REQUIRED>
+
+ <!ELEMENT "SampleFormat" EMPTY>
+ <!-- The numeric format of image samples -->
+ <!ATTLIST "SampleFormat" "value" ("SignedIntegral" |
+ "UnsignedIntegral" | "Real" | "Index") #REQUIRED>
+
+ <!ELEMENT "BitsPerSample" EMPTY>
+ <!-- The number of bits per sample -->
+ <!ATTLIST "BitsPerSample" "value" #CDATA #REQUIRED>
+ <!-- A list of integers, one per channel -->
+ <!-- Data type: List of Integer -->
+ <!-- Min length: 1 -->
+
+ <!ELEMENT "SignificantBitsPerSample" EMPTY>
+ <!-- The number of significant bits per sample -->
+ <!ATTLIST "SignificantBitsPerSample" "value" #CDATA #REQUIRED>
+ <!-- A list of integers, one per channel -->
+ <!-- Data type: List of Integer -->
+ <!-- Min length: 1 -->
+
+ <!ELEMENT "SampleMSB" EMPTY>
+ <!-- The position of the most significant bit of each sample -->
+ <!ATTLIST "SampleMSB" "value" #CDATA #REQUIRED>
+ <!-- A list of integers, one per channel -->
+ <!-- Data type: List of Integer -->
+ <!-- Min length: 1 -->
+
+ <!ELEMENT "Dimension" (PixelAspectRatio?, ImageOrientation?,
+ HorizontalPixelSize?, VerticalPixelSize?,
+ HorizontalPhysicalPixelSpacing?, VerticalPhysicalPixelSpacing?,
+ HorizontalPosition?, VerticalPosition?, HorizontalPixelOffset?,
+ VerticalPixelOffset?, HorizontalScreenSize?, VerticalScreenSize?)>
+ <!-- Dimension information -->
+
+ <!ELEMENT "PixelAspectRatio" EMPTY>
+ <!-- The width of a pixel divided by its height -->
+ <!ATTLIST "PixelAspectRatio" "value" #CDATA #REQUIRED>
+ <!-- Data type: Float -->
+
+ <!ELEMENT "ImageOrientation" EMPTY>
+ <!-- The desired orientation of the image in terms of flips and
+ counter-clockwise rotations -->
+ <!ATTLIST "ImageOrientation" "value" ("Normal" | "Rotate90" |
+ "Rotate180" | "Rotate270" | "FlipH" | "FlipV" |
+ "FlipHRotate90" | "FlipVRotate90") #REQUIRED>
+
+ <!ELEMENT "HorizontalPixelSize" EMPTY>
+ <!-- The width of a pixel, in millimeters, as it should be rendered
+ on media -->
+ <!ATTLIST "HorizontalPixelSize" "value" #CDATA #REQUIRED>
+ <!-- Data type: Float -->
+
+ <!ELEMENT "VerticalPixelSize" EMPTY>
+ <!-- The height of a pixel, in millimeters, as it should be
+ rendered on media -->
+ <!ATTLIST "VerticalPixelSize" "value" #CDATA #REQUIRED>
+ <!-- Data type: Float -->
+
+ <!ELEMENT "HorizontalPhysicalPixelSpacing" EMPTY>
+ <!-- The horizontal distance in the subject of the image, in
+ millimeters, represented by one pixel at the center of the
+ image -->
+ <!ATTLIST "HorizontalPhysicalPixelSpacing" "value" #CDATA #REQUIRED>
+ <!-- Data type: Float -->
+
+ <!ELEMENT "VerticalPhysicalPixelSpacing" EMPTY>
+ <!-- The vertical distance in the subject of the image, in
+ millimeters, represented by one pixel at the center of the
+ image -->
+ <!ATTLIST "VerticalPhysicalPixelSpacing" "value" #CDATA #REQUIRED>
+ <!-- Data type: Float -->
+
+ <!ELEMENT "HorizontalPosition" EMPTY>
+ <!-- The horizontal position, in millimeters, where the image
+ should be rendered on media -->
+ <!ATTLIST "HorizontalPosition" "value" #CDATA #REQUIRED>
+ <!-- Data type: Float -->
+
+ <!ELEMENT "VerticalPosition" EMPTY>
+ <!-- The vertical position, in millimeters, where the image should
+ be rendered on media -->
+ <!ATTLIST "VerticalPosition" "value" #CDATA #REQUIRED>
+ <!-- Data type: Float -->
+
+ <!ELEMENT "HorizontalPixelOffset" EMPTY>
+ <!-- The horizonal position, in pixels, where the image should be
+ rendered onto a raster display -->
+ <!ATTLIST "HorizontalPixelOffset" "value" #CDATA #REQUIRED>
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "VerticalPixelOffset" EMPTY>
+ <!-- The vertical position, in pixels, where the image should be
+ rendered onto a raster display -->
+ <!ATTLIST "VerticalPixelOffset" "value" #CDATA #REQUIRED>
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "HorizontalScreenSize" EMPTY>
+ <!-- The width, in pixels, of the raster display into which the
+ image should be rendered -->
+ <!ATTLIST "HorizontalScreenSize" "value" #CDATA #REQUIRED>
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "VerticalScreenSize" EMPTY>
+ <!-- The height, in pixels, of the raster display into which the
+ image should be rendered -->
+ <!ATTLIST "VerticalScreenSize" "value" #CDATA #REQUIRED>
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "Document" (FormatVersion?, SubimageInterpretation?,
+ ImageCreationTime?, ImageModificationTime?)>
+ <!-- Document information -->
+
+ <!ELEMENT "FormatVersion" EMPTY>
+ <!-- The version of the format used by the stream -->
+ <!ATTLIST "FormatVersion" "value" #CDATA #REQUIRED>
+ <!-- Data type: String -->
+
+ <!ELEMENT "SubimageInterpretation" EMPTY>
+ <!-- The interpretation of this image in relation to the other
+ images stored in the same stream -->
+ <!ATTLIST "SubimageInterpretation" "value" ("Standalone" |
+ "SinglePage" | "FullResolution" | "ReducedResolution" |
+ "PyramidLayer" | "Preview" | "VolumeSlice" | "ObjectView" |
+ "Panorama" | "AnimationFrame" | "TransparencyMask" |
+ "CompositingLayer" | "SpectralSlice" | "Unknown") #REQUIRED>
+
+ <!ELEMENT "ImageCreationTime" EMPTY>
+ <!-- The time of image creation -->
+ <!ATTLIST "ImageCreationTime" "year" #CDATA #REQUIRED>
+ <!-- The full year (e.g., 1967, not 67) -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "ImageCreationTime" "month" #CDATA #REQUIRED>
+ <!-- The month, with January = 1 -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 1 (inclusive) -->
+ <!-- Max value: 12 (inclusive) -->
+ <!ATTLIST "ImageCreationTime" "day" #CDATA #REQUIRED>
+ <!-- The day of the month -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 1 (inclusive) -->
+ <!-- Max value: 31 (inclusive) -->
+ <!ATTLIST "ImageCreationTime" "hour" #CDATA "0">
+ <!-- The hour from 0 to 23 -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 0 (inclusive) -->
+ <!-- Max value: 23 (inclusive) -->
+ <!ATTLIST "ImageCreationTime" "minute" #CDATA "0">
+ <!-- The minute from 0 to 59 -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 0 (inclusive) -->
+ <!-- Max value: 59 (inclusive) -->
+ <!ATTLIST "ImageCreationTime" "second" #CDATA "0">
+ <!-- The second from 0 to 60 (60 = leap second) -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 0 (inclusive) -->
+ <!-- Max value: 60 (inclusive) -->
+
+ <!ELEMENT "ImageModificationTime" EMPTY>
+ <!-- The time of the last image modification -->
+ <!ATTLIST "ImageModificationTime" "year" #CDATA #REQUIRED>
+ <!-- The full year (e.g., 1967, not 67) -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "ImageModificationTime" "month" #CDATA #REQUIRED>
+ <!-- The month, with January = 1 -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 1 (inclusive) -->
+ <!-- Max value: 12 (inclusive) -->
+ <!ATTLIST "ImageModificationTime" "day" #CDATA #REQUIRED>
+ <!-- The day of the month -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 1 (inclusive) -->
+ <!-- Max value: 31 (inclusive) -->
+ <!ATTLIST "ImageModificationTime" "hour" #CDATA "0">
+ <!-- The hour from 0 to 23 -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 0 (inclusive) -->
+ <!-- Max value: 23 (inclusive) -->
+ <!ATTLIST "ImageModificationTime" "minute" #CDATA "0">
+ <!-- The minute from 0 to 59 -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 0 (inclusive) -->
+ <!-- Max value: 59 (inclusive) -->
+ <!ATTLIST "ImageModificationTime" "second" #CDATA "0">
+ <!-- The second from 0 to 60 (60 = leap second) -->
+ <!-- Data type: Integer -->
+ <!-- Min value: 0 (inclusive) -->
+ <!-- Max value: 60 (inclusive) -->
+
+ <!ELEMENT "Text" (TextEntry)*>
+ <!-- Text information -->
+
+ <!ELEMENT "TextEntry" EMPTY>
+ <!-- A text entry -->
+ <!ATTLIST "TextEntry" "keyword" #CDATA #IMPLIED>
+ <!-- A keyword associated with the text entry -->
+ <!-- Data type: String -->
+ <!ATTLIST "TextEntry" "value" #CDATA #REQUIRED>
+ <!-- the text entry -->
+ <!-- Data type: String -->
+ <!ATTLIST "TextEntry" "language" #CDATA #IMPLIED>
+ <!-- The language of the text -->
+ <!-- Data type: String -->
+ <!ATTLIST "TextEntry" "encoding" #CDATA #IMPLIED>
+ <!-- The encoding of the text -->
+ <!-- Data type: String -->
+ <!ATTLIST "TextEntry" "compression" ("none" | "lzw" | "zip" |
+ "bzip" | "other") "none">
+ <!-- The method used to compress the text -->
+
+ <!ELEMENT "Transparency" (Alpha?, TransparentIndex?,
+ TransparentColor?, TileTransparencies?, TileOpacities?)>
+ <!-- Transparency information -->
+
+ <!ELEMENT "Alpha" EMPTY>
+ <!-- The type of alpha information contained in the image -->
+ <!ATTLIST "Alpha" "value" ("none" | "premultiplied" |
+ "nonpremultiplied") "none">
+
+ <!ELEMENT "TransparentIndex" EMPTY>
+ <!-- A palette index to be treated as transparent -->
+ <!ATTLIST "TransparentIndex" "value" #CDATA #REQUIRED>
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "TransparentColor" EMPTY>
+ <!-- An RGB color to be treated as transparent -->
+ <!ATTLIST "TransparentColor" "value" #CDATA #REQUIRED>
+ <!-- Data type: List of Integer -->
+
+ <!ELEMENT "TileTransparencies" (TransparentTile)*>
+ <!-- A list of completely transparent tiles -->
+
+ <!ELEMENT "TransparentTile" EMPTY>
+ <!-- The index of a completely transparent tile -->
+ <!ATTLIST "TransparentTile" "x" #CDATA #REQUIRED>
+ <!-- The tile's X index -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "TransparentTile" "y" #CDATA #REQUIRED>
+ <!-- The tile's Y index -->
+ <!-- Data type: Integer -->
+
+ <!ELEMENT "TileOpacities" (OpaqueTile)*>
+ <!-- A list of completely opaque tiles -->
+
+ <!ELEMENT "OpaqueTile" EMPTY>
+ <!-- The index of a completely opaque tile -->
+ <!ATTLIST "OpaqueTile" "x" #CDATA #REQUIRED>
+ <!-- The tile's X index -->
+ <!-- Data type: Integer -->
+ <!ATTLIST "OpaqueTile" "y" #CDATA #REQUIRED>
+ <!-- The tile's Y index -->
+ <!-- Data type: Integer -->
+]>
+</pre>
+
+</body>
+</html>