Factor out Wang, Microsoft and DCF tags.
Update RFC 2301 tags.



git-svn-id: https://svn.apache.org/repos/asf/commons/proper/sanselan/trunk@1302275 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
index 4b0c213..007ec92 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
@@ -28,11 +28,13 @@
 {
     public static final List<TagInfo> ALL_TAGS = Collections.unmodifiableList(
             TagConstantsUtils.mergeTagLists(
+                    AdobePageMaker6TagConstants.ALL_ADOBE_PAGEMAKER_6_TAG_CONSTANTS,
+                    DcfTagConstants.ALL_DCF_TAGS,
+                    ExifTagConstants.ALL_EXIF_TAGS,
+                    GpsTagConstants.ALL_GPS_TAGS,
+                    MicrosoftTagConstants.ALL_MICROSOFT_TAGS,
+                    Rfc2301TagConstants.ALL_RFC_2301_TAGS,
                     Tiff4TagConstants.ALL_TIFF_4_TAGS,
                     TiffTagConstants.ALL_TIFF_TAGS,
-                    ExifTagConstants.ALL_EXIF_TAGS,
-                    Rfc2301TagConstants.ALL_RFC_2301_TAGS,
-                    AdobePageMaker6TagConstants.ALL_ADOBE_PAGEMAKER_6_TAG_CONSTANTS,
-                    GpsTagConstants.ALL_GPS_TAGS));
-
+                    WangTagConstants.ALL_WANG_TAGS));
 }
\ No newline at end of file
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java
new file mode 100644
index 0000000..a73bef9
--- /dev/null
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java
@@ -0,0 +1,42 @@
+package org.apache.commons.sanselan.formats.tiff.constants;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLong;
+
+/**
+ * Design rule for Camera Filesystem
+ * <BR>
+ * http://www.exif.org/dcf.PDF
+ */
+public interface DcfTagConstants extends TiffFieldTypeConstants {
+    public static final TagInfoAscii EXIF_TAG_RELATED_IMAGE_FILE_FORMAT = new TagInfoAscii(
+            "Related Image File Format", 0x1000, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD);
+    
+    public static final TagInfoShortOrLong EXIF_TAG_RELATED_IMAGE_WIDTH = new TagInfoShortOrLong(
+            "Related Image Width", 0x1001, 1,
+            TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD);
+    
+    public static final TagInfoShortOrLong EXIF_TAG_RELATED_IMAGE_LENGTH = new TagInfoShortOrLong(
+            "Related Image Length", 0x1002, 1,
+            TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD);
+    
+    public static final TagInfoShort EXIF_TAG_COLOR_SPACE = new TagInfoShort(
+            "Color Space", 0xa001, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
+    public static final int COLOR_SPACE_VALUE_SRGB = 1;
+    public static final int COLOR_SPACE_VALUE_ADOBE_RGB = 2;
+    public static final int COLOR_SPACE_VALUE_UNCALIBRATED = 65535;
+
+    public static final List<TagInfo> ALL_DCF_TAGS =
+            Collections.unmodifiableList(Arrays.asList(
+                    EXIF_TAG_RELATED_IMAGE_FILE_FORMAT,
+                    EXIF_TAG_RELATED_IMAGE_WIDTH,
+                    EXIF_TAG_RELATED_IMAGE_LENGTH,
+                    EXIF_TAG_COLOR_SPACE));
+}
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
index 0bad046..4e3b15e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
@@ -85,11 +85,6 @@
             TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD2);
     public static final TagInfoUndefined EXIF_TAG_JPEGTABLES = new TagInfoUndefined("JPEGTables",
             0x015b, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoRational EXIF_TAG_DECODE = new TagInfoRational("Decode", 0x01b1,
-            -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoShort EXIF_TAG_DEFAULT_IMAGE_COLOR = new TagInfoShort(
-            "Default Image Color", 0x01b2, -1,
-            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_START_MAKER_NOTES = new TagInfoLong(
             "Preview Image Start", 0x0201, 1,
             TiffDirectoryType.EXIF_DIRECTORY_MAKER_NOTES);
@@ -114,28 +109,9 @@
     public static final TagInfoLong EXIF_TAG_OTHER_IMAGE_LENGTH = new TagInfoLong(
             "Other Image Length", 0x0202, 1,
             TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoLong EXIF_TAG_STRIP_ROW_COUNTS = new TagInfoLong(
-            "Strip Row Counts", 0x022f, -1,
-            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     public static final TagInfoByte EXIF_TAG_APPLICATION_NOTES = new TagInfoByte(
             "Application Notes", 0x02bc, -1,
             TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoAscii EXIF_TAG_RELATED_IMAGE_FILE_FORMAT = new TagInfoAscii(
-            "Related Image File Format", 0x1000, 1,
-            TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD);
-    public static final TagInfoShort EXIF_TAG_RELATED_IMAGE_WIDTH = new TagInfoShort(
-            "Related Image Width", 0x1001, 1,
-            TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD);
-    public static final TagInfoShort EXIF_TAG_RELATED_IMAGE_LENGTH = new TagInfoShort(
-            "Related Image Length", 0x1002, 1,
-            TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD);
-    public static final TagInfoShort EXIF_TAG_RATING = new TagInfoShort("Rating", 0x4746,
-            1, TiffDirectoryType.EXIF_DIRECTORY_IFD0);
-    public static final TagInfoShort EXIF_TAG_RATING_PERCENT = new TagInfoShort(
-            "Rating Percent", 0x4749, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0);
-    public static final TagInfoByte EXIF_TAG_WANG_ANNOTATION = new TagInfoByte(
-            "Wang Annotation", 0x80a4, -1,
-            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     public static final TagInfoUnknown EXIF_TAG_MATTEING = new TagInfoUnknown("Matteing",
             0x80e3, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     public static final TagInfoUnknown EXIF_TAG_DATA_TYPE = new TagInfoUnknown("Data Type",
@@ -262,9 +238,6 @@
     public static final TagInfoUndefined EXIF_TAG_ICC_PROFILE = new TagInfoUndefined(
             "ICC_ Profile", 0x8773, -1,
             TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoShortOrLong EXIF_TAG_IMAGE_LAYER = new TagInfoShortOrLong(
-            "Image Layer", 0x87ac, 2,
-            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     public static final TagInfoShort EXIF_TAG_GEO_TIFF_DIRECTORY = new TagInfoShort(
             "Geo Tiff Directory", 0x87af, -1,
             TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
@@ -496,11 +469,6 @@
     public static final TagInfoUndefined EXIF_TAG_FLASHPIX_VERSION = new TagInfoUndefined(
             "Flashpix Version", 0xa000, 1,
             TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
-    public static final TagInfoShort EXIF_TAG_COLOR_SPACE = new TagInfoShort(
-            "Color Space", 0xa001, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
-    public static final int COLOR_SPACE_VALUE_SRGB = 1;
-    public static final int COLOR_SPACE_VALUE_ADOBE_RGB = 2;
-    public static final int COLOR_SPACE_VALUE_UNCALIBRATED = 65535;
     public static final TagInfoShort EXIF_TAG_EXIF_IMAGE_WIDTH = new TagInfoShort(
             "Exif Image Width", 0xa002, 1,
             TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
@@ -1021,19 +989,14 @@
                     EXIF_TAG_PREVIEW_IMAGE_LENGTH_SUB_IFD1,
                     EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD2,
                     EXIF_TAG_JPEGTABLES,
-                    EXIF_TAG_DECODE,
-                    EXIF_TAG_DEFAULT_IMAGE_COLOR,
                     EXIF_TAG_PREVIEW_IMAGE_START_MAKER_NOTES,
                     EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD,
                     EXIF_TAG_JPG_FROM_RAW_START_IFD2, EXIF_TAG_OTHER_IMAGE_START,
                     EXIF_TAG_PREVIEW_IMAGE_LENGTH_MAKER_NOTES,
                     EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD,
                     EXIF_TAG_JPG_FROM_RAW_LENGTH_IFD2, EXIF_TAG_OTHER_IMAGE_LENGTH,
-                    EXIF_TAG_STRIP_ROW_COUNTS, EXIF_TAG_APPLICATION_NOTES,
-                    EXIF_TAG_RELATED_IMAGE_FILE_FORMAT, EXIF_TAG_RELATED_IMAGE_WIDTH,
-                    EXIF_TAG_RELATED_IMAGE_LENGTH, EXIF_TAG_RATING,
-                    EXIF_TAG_RATING_PERCENT,
-                    EXIF_TAG_WANG_ANNOTATION, EXIF_TAG_MATTEING, EXIF_TAG_DATA_TYPE,
+                    EXIF_TAG_APPLICATION_NOTES,
+                    EXIF_TAG_MATTEING, EXIF_TAG_DATA_TYPE,
                     EXIF_TAG_IMAGE_DEPTH, EXIF_TAG_TILE_DEPTH, EXIF_TAG_MODEL_2,
                     EXIF_TAG_CFAREPEAT_PATTERN_DIM, EXIF_TAG_CFAPATTERN_2,
                     EXIF_TAG_BATTERY_LEVEL, EXIF_TAG_EXPOSURE_TIME,
@@ -1054,7 +1017,7 @@
                     EXIF_TAG_HCUSAGE, EXIF_TAG_SEMINFO, EXIF_TAG_AFCP_IPTC,
                     EXIF_TAG_MODEL_TRANSFORM, EXIF_TAG_LEAF_DATA,
                     EXIF_TAG_PHOTOSHOP_SETTINGS, EXIF_TAG_EXIF_OFFSET,
-                    EXIF_TAG_ICC_PROFILE, EXIF_TAG_IMAGE_LAYER,
+                    EXIF_TAG_ICC_PROFILE,
                     EXIF_TAG_GEO_TIFF_DIRECTORY, EXIF_TAG_GEO_TIFF_DOUBLE_PARAMS,
                     EXIF_TAG_GEO_TIFF_ASCII_PARAMS, EXIF_TAG_EXPOSURE_PROGRAM,
                     EXIF_TAG_SPECTRAL_SENSITIVITY, EXIF_TAG_GPSINFO, EXIF_TAG_ISO,
@@ -1081,7 +1044,7 @@
                     EXIF_TAG_SUB_SEC_TIME_ORIGINAL, EXIF_TAG_SUB_SEC_TIME_DIGITIZED,
                     EXIF_TAG_IMAGE_SOURCE_DATA, EXIF_TAG_XPTITLE, EXIF_TAG_XPCOMMENT,
                     EXIF_TAG_XPAUTHOR, EXIF_TAG_XPKEYWORDS, EXIF_TAG_XPSUBJECT,
-                    EXIF_TAG_FLASHPIX_VERSION, EXIF_TAG_COLOR_SPACE,
+                    EXIF_TAG_FLASHPIX_VERSION,
                     EXIF_TAG_EXIF_IMAGE_WIDTH, EXIF_TAG_EXIF_IMAGE_LENGTH,
                     EXIF_TAG_RELATED_SOUND_FILE, EXIF_TAG_INTEROP_OFFSET,
                     EXIF_TAG_FLASH_ENERGY_EXIF_IFD,
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftTagConstants.java
new file mode 100644
index 0000000..0ec53a1
--- /dev/null
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftTagConstants.java
@@ -0,0 +1,24 @@
+package org.apache.commons.sanselan.formats.tiff.constants;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
+
+/**
+ * Largely undocumented and derived by experimentation.
+ */
+public interface MicrosoftTagConstants {
+    public static final TagInfoShort EXIF_TAG_RATING = new TagInfoShort("Rating", 0x4746,
+            1, TiffDirectoryType.EXIF_DIRECTORY_IFD0);
+    
+    public static final TagInfoShort EXIF_TAG_RATING_PERCENT = new TagInfoShort(
+            "Rating Percent", 0x4749, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0);
+
+    public static final List<TagInfo> ALL_MICROSOFT_TAGS =
+            Collections.unmodifiableList(Arrays.asList(new TagInfo[] {
+                    EXIF_TAG_RATING,
+                    EXIF_TAG_RATING_PERCENT }));
+}
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Rfc2301TagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Rfc2301TagConstants.java
index b8bf821..c16f394 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Rfc2301TagConstants.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Rfc2301TagConstants.java
@@ -7,6 +7,7 @@
 import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
 import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
 import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
 import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
 import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLong;
 
@@ -22,18 +23,18 @@
 public interface Rfc2301TagConstants extends TiffFieldTypeConstants {
     public static final TagInfoShortOrLong TIFF_TAG_BAD_FAX_LINES = new TagInfoShortOrLong(
             "Bad Fax Lines", 0x0146, 1,
-            TiffDirectoryType.TIFF_DIRECTORY_ROOT);
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     
     public static final TagInfoShort TIFF_TAG_CLEAN_FAX_DATA = new TagInfoShort(
             "Clean Fax Data", 0x0147, 1,
-            TiffDirectoryType.TIFF_DIRECTORY_ROOT);
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     public static final int CLEAN_FAX_DATA_VALUE_CLEAN = 0;
     public static final int CLEAN_FAX_DATA_VALUE_REGENERATED = 1;
     public static final int CLEAN_FAX_DATA_VALUE_UNCLEAN = 2;
     
     public static final TagInfoShortOrLong TIFF_TAG_CONSECUTIVE_BAD_FAX_LINES = new TagInfoShortOrLong(
-            "Consecutive Bad Fax Lines", 0x0148,
-            1, TiffDirectoryType.TIFF_DIRECTORY_ROOT);
+            "Consecutive Bad Fax Lines", 0x0148, 1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
 
     public static final TagInfoLong TIFF_TAG_GLOBAL_PARAMETERS_IFD = new TagInfoLong(
             "Global Parameters IFD", 0x0190, 1,
@@ -59,6 +60,12 @@
     public static final TagInfoLong TIFF_TAG_CODING_METHODS = new TagInfoLong(
             "Coding Methods", 0x0193, 1,
             TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+    public static final int CODING_METHODS_VALUE_T4_1D = 2;
+    public static final int CODING_METHODS_VALUE_T4_2D = 4;
+    public static final int CODING_METHODS_VALUE_T6 = 8;
+    public static final int CODING_METHODS_VALUE_T82_T85 = 16;
+    public static final int CODING_METHODS_VALUE_T81 = 32;
+    public static final int CODING_METHODS_VALUE_T82_T43 = 64;
     
     public static final TagInfoByte TIFF_TAG_VERSION_YEAR = new TagInfoByte(
             "Version Year", 0x0194, 4,
@@ -68,6 +75,22 @@
             "Mode Number", 0x0195, 1,
             TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
 
+    public static final TagInfoRational TIFF_TAG_DECODE = new TagInfoRational(
+            "Decode", 0x01b1, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+    
+    public static final TagInfoShort TIFF_TAG_DEFAULT_IMAGE_COLOR = new TagInfoShort(
+            "Default Image Color", 0x01b2, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+
+    public static final TagInfoLong TIFF_TAG_STRIP_ROW_COUNTS = new TagInfoLong(
+            "Strip Row Counts", 0x022f, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+
+    public static final TagInfoShortOrLong TIFF_TAG_IMAGE_LAYER = new TagInfoShortOrLong(
+            "Image Layer", 0x87ac, 2,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+
     public static final List<TagInfo> ALL_RFC_2301_TAGS =
             Collections.unmodifiableList(Arrays.asList(
                     TIFF_TAG_BAD_FAX_LINES,
@@ -78,5 +101,9 @@
                     TIFF_TAG_FAX_PROFILE,
                     TIFF_TAG_CODING_METHODS,
                     TIFF_TAG_VERSION_YEAR,
-                    TIFF_TAG_MODE_NUMBER));
+                    TIFF_TAG_MODE_NUMBER,
+                    TIFF_TAG_DECODE,
+                    TIFF_TAG_DEFAULT_IMAGE_COLOR,
+                    TIFF_TAG_STRIP_ROW_COUNTS,
+                    TIFF_TAG_IMAGE_LAYER));
 }
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/WangTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/WangTagConstants.java
new file mode 100644
index 0000000..e3e6b58
--- /dev/null
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/WangTagConstants.java
@@ -0,0 +1,22 @@
+package org.apache.commons.sanselan.formats.tiff.constants;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
+
+/**
+ * Wang/Eastman Software/Kodac/eiStream/Imaging for Windows tags,
+ * undocumented and in need of more work.
+ */
+public interface WangTagConstants {
+    public static final TagInfoByte EXIF_TAG_WANG_ANNOTATION = new TagInfoByte(
+            "Wang Annotation", 0x80a4, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+
+    public static final List<TagInfo> ALL_WANG_TAGS =
+            Collections.unmodifiableList(Arrays.asList(new TagInfo[] {
+                    EXIF_TAG_WANG_ANNOTATION }));
+}
diff --git a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java b/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
index 8fb5067..2975518 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
+++ b/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
@@ -21,19 +21,27 @@
 
 import org.apache.commons.sanselan.SanselanTest;
 import org.apache.commons.sanselan.formats.tiff.constants.AdobePageMaker6TagConstants;
+import org.apache.commons.sanselan.formats.tiff.constants.DcfTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants;
+import org.apache.commons.sanselan.formats.tiff.constants.MicrosoftTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.Rfc2301TagConstants;
+import org.apache.commons.sanselan.formats.tiff.constants.Tiff4TagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.sanselan.formats.tiff.constants.WangTagConstants;
 import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
 
 public class TiffTagIntegrityTest extends SanselanTest {
     public void testTagIntegrity() {
-        verifyFields(TiffTagConstants.class, TiffTagConstants.ALL_TIFF_TAGS);
-        verifyFields(GpsTagConstants.class, GpsTagConstants.ALL_GPS_TAGS);
-        verifyFields(ExifTagConstants.class, ExifTagConstants.ALL_EXIF_TAGS);
-        verifyFields(Rfc2301TagConstants.class, Rfc2301TagConstants.ALL_RFC_2301_TAGS);
         verifyFields(AdobePageMaker6TagConstants.class, AdobePageMaker6TagConstants.ALL_ADOBE_PAGEMAKER_6_TAG_CONSTANTS);
+        verifyFields(DcfTagConstants.class, DcfTagConstants.ALL_DCF_TAGS);
+        verifyFields(ExifTagConstants.class, ExifTagConstants.ALL_EXIF_TAGS);
+        verifyFields(GpsTagConstants.class, GpsTagConstants.ALL_GPS_TAGS);
+        verifyFields(MicrosoftTagConstants.class, MicrosoftTagConstants.ALL_MICROSOFT_TAGS);
+        verifyFields(Rfc2301TagConstants.class, Rfc2301TagConstants.ALL_RFC_2301_TAGS);
+        verifyFields(Tiff4TagConstants.class, Tiff4TagConstants.ALL_TIFF_4_TAGS);
+        verifyFields(TiffTagConstants.class, TiffTagConstants.ALL_TIFF_TAGS);
+        verifyFields(WangTagConstants.class, WangTagConstants.ALL_WANG_TAGS);
     }
     
     private void verifyFields(Class<?> cls, List<TagInfo> tags) {