This is an automated email from the ASF dual-hosted git repository.

tballison pushed a commit to branch branch_3x
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/branch_3x by this push:
     new 478821e7cc TIKA-4797 -- build field attributed metadata key table for 
3.x (#2969)
478821e7cc is described below

commit 478821e7ccd184bfb429a442a4a13c63576b6e8d
Author: Tim Allison <[email protected]>
AuthorDate: Tue Jul 28 15:29:26 2026 -0400

    TIKA-4797 -- build field attributed metadata key table for 3.x (#2969)
---
 assembly.xml                                       |   8 +
 pom.xml                                            |   1 +
 tika-metadata-schema/pom.xml                       |  48 ++
 .../tika/metadata/schema/SchemaGenerator.java      | 155 ++++++
 .../org/apache/tika/metadata/metadata-keys-3x.json | 550 +++++++++++++++++++++
 .../tika/metadata/schema/MetadataKeys3xTest.java   |  46 ++
 6 files changed, 808 insertions(+)

diff --git a/assembly.xml b/assembly.xml
index 4095cac561..13d86e17f7 100644
--- a/assembly.xml
+++ b/assembly.xml
@@ -32,5 +32,13 @@
         <exclude>**/*.releaseBackup</exclude>
       </excludes>
     </fileSet>
+    <!-- Re-add .mvn (dropped by **/.*/** above); required to build the source 
release (TIKA-4768). -->
+    <fileSet>
+      <directory>${project.basedir}/.mvn</directory>
+      <outputDirectory>.mvn</outputDirectory>
+      <excludes>
+        <exclude>.develocity/**</exclude>
+      </excludes>
+    </fileSet>
   </fileSets>
 </assembly>
diff --git a/pom.xml b/pom.xml
index 15eb1d2eb0..00d3ff32b3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,6 +41,7 @@
     <module>tika-serialization</module>
     <module>tika-detectors</module>
     <module>tika-parsers</module>
+    <module>tika-metadata-schema</module>
     <module>tika-bundles</module>
     <module>tika-xmp</module>
     <module>tika-batch</module>
diff --git a/tika-metadata-schema/pom.xml b/tika-metadata-schema/pom.xml
new file mode 100644
index 0000000000..fc318869b3
--- /dev/null
+++ b/tika-metadata-schema/pom.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.tika</groupId>
+    <artifactId>tika-parent</artifactId>
+    <version>3.3.3-SNAPSHOT</version>
+    <relativePath>../tika-parent/pom.xml</relativePath>
+  </parent>
+
+  <artifactId>tika-metadata-schema</artifactId>
+  <name>Apache Tika metadata schema (3.x baseline)</name>
+  <description>Generated, field-attributed table of 3.x metadata keys; the 
baseline for the
+    3.x-&gt;4.x key migration mapping.</description>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.tika</groupId>
+      <artifactId>tika-core</artifactId>
+      <version>3.3.3-SNAPSHOT</version>
+    </dependency>
+    <!-- TIKA-4797 follow-up: add tika-parsers-standard-package (type=pom) to 
widen the scan to the
+         standard parser keys (csv:, tess:, ...). Core holds every 
rename-relevant key already. -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git 
a/tika-metadata-schema/src/main/java/org/apache/tika/metadata/schema/SchemaGenerator.java
 
b/tika-metadata-schema/src/main/java/org/apache/tika/metadata/schema/SchemaGenerator.java
new file mode 100644
index 0000000000..2e45c708a3
--- /dev/null
+++ 
b/tika-metadata-schema/src/main/java/org/apache/tika/metadata/schema/SchemaGenerator.java
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tika.metadata.schema;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+import org.apache.tika.metadata.Property;
+
+/**
+ * TIKA-4797. Generates the field-attributed 3.x metadata-key table ({@code 
metadata-keys-3x.json}):
+ * one record {@code {class, field, key}} per static {@link Property} constant 
on the tika-core +
+ * standard-parser classpath. Field provenance is what lets the 3.x-&gt;4.x 
migration mapping be built
+ * by a field-identity join (same field, changed key = rename) instead of 
string heuristics.
+ *
+ * <p>Dependency-free: scans the runtime classpath for classes that declare a 
{@code Property} field,
+ * force-loads them (static init registers the constants), then reflects each 
declared field. The
+ * committed file is gated by {@code MetadataKeys3xTest} so it can never drift 
from the declarations.
+ */
+public final class SchemaGenerator {
+
+    private static final byte[] PROP_DESC =
+            
"Lorg/apache/tika/metadata/Property;".getBytes(StandardCharsets.ISO_8859_1);
+
+    private SchemaGenerator() {
+    }
+
+    /** @return the table as stable JSON, sorted by {@code class#field}. */
+    public static String generate() throws Exception {
+        ClassLoader cl = SchemaGenerator.class.getClassLoader();
+        List<String> classNames = new ArrayList<>();
+        for (String entry : 
System.getProperty("java.class.path").split(File.pathSeparator)) {
+            File f = new File(entry);
+            if (f.isDirectory()) {
+                scanDir(f, f.toPath(), classNames);
+            } else if (f.getName().endsWith(".jar")) {
+                scanJar(f, classNames);
+            }
+        }
+        TreeMap<String, String[]> rows = new TreeMap<>();   // class#field -> 
[class, field, key]
+        for (String cn : classNames) {
+            Class<?> c;
+            try {
+                c = Class.forName(cn, true, cl);
+            } catch (Throwable ignore) {
+                continue;   // classes whose static init needs an absent 
dependency are skipped
+            }
+            for (Field fld : c.getDeclaredFields()) {
+                if (!Modifier.isStatic(fld.getModifiers()) || fld.getType() != 
Property.class) {
+                    continue;
+                }
+                try {
+                    fld.setAccessible(true);
+                    Property p = (Property) fld.get(null);
+                    if (p != null) {
+                        rows.put(c.getName() + "#" + fld.getName(),
+                                new String[]{c.getName(), fld.getName(), 
p.getName()});
+                    }
+                } catch (Throwable ignore) {
+                    // unreadable field; skip
+                }
+            }
+        }
+        return toJson(rows);
+    }
+
+    private static void scanDir(File root, Path dir, List<String> out) throws 
IOException {
+        try (var stream = Files.walk(dir)) {
+            for (Path p : (Iterable<Path>) stream::iterator) {
+                if (p.toString().endsWith(".class")) {
+                    String rel = 
root.toPath().relativize(p).toString().replace(File.separatorChar, '/');
+                    maybe(rel, Files.readAllBytes(p), out);
+                }
+            }
+        }
+    }
+
+    private static void scanJar(File jar, List<String> out) throws IOException 
{
+        try (JarFile jf = new JarFile(jar)) {
+            for (Enumeration<JarEntry> e = jf.entries(); e.hasMoreElements(); 
) {
+                JarEntry je = e.nextElement();
+                if (je.getName().endsWith(".class")) {
+                    maybe(je.getName(), jf.getInputStream(je).readAllBytes(), 
out);
+                }
+            }
+        }
+    }
+
+    private static void maybe(String classPath, byte[] bytes, List<String> 
out) {
+        if (classPath.startsWith("org/apache/tika/") && contains(bytes)) {
+            out.add(classPath.substring(0, classPath.length() - 
6).replace('/', '.'));
+        }
+    }
+
+    private static boolean contains(byte[] hay) {
+        outer:
+        for (int i = 0; i <= hay.length - PROP_DESC.length; i++) {
+            for (int j = 0; j < PROP_DESC.length; j++) {
+                if (hay[i + j] != PROP_DESC[j]) {
+                    continue outer;
+                }
+            }
+            return true;
+        }
+        return false;
+    }
+
+    private static String toJson(TreeMap<String, String[]> rows) {
+        StringBuilder sb = new StringBuilder("[\n");
+        int i = 0;
+        int n = rows.size();
+        for (Map.Entry<String, String[]> e : rows.entrySet()) {
+            String[] r = e.getValue();
+            sb.append("  {\"class\":").append(quote(r[0]))
+              .append(",\"field\":").append(quote(r[1]))
+              .append(",\"key\":").append(quote(r[2]))
+              .append("}").append(++i < n ? "," : "").append('\n');
+        }
+        return sb.append("]\n").toString();
+    }
+
+    private static String quote(String s) {
+        return '"' + s.replace("\\", "\\\\").replace("\"", "\\\"") + '"';
+    }
+
+    public static void main(String[] args) throws Exception {
+        Files.writeString(Path.of(args[0]), generate());
+    }
+}
diff --git 
a/tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-keys-3x.json
 
b/tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-keys-3x.json
new file mode 100644
index 0000000000..78de3ef835
--- /dev/null
+++ 
b/tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-keys-3x.json
@@ -0,0 +1,550 @@
+[
+  
{"class":"org.apache.tika.detect.FileCommandDetector","field":"FILE_MIME","key":"file:mime"},
+  
{"class":"org.apache.tika.metadata.AccessPermissions","field":"ASSEMBLE_DOCUMENT","key":"access_permission:assemble_document"},
+  
{"class":"org.apache.tika.metadata.AccessPermissions","field":"CAN_MODIFY","key":"access_permission:can_modify"},
+  
{"class":"org.apache.tika.metadata.AccessPermissions","field":"CAN_MODIFY_ANNOTATIONS","key":"access_permission:modify_annotations"},
+  
{"class":"org.apache.tika.metadata.AccessPermissions","field":"CAN_PRINT","key":"access_permission:can_print"},
+  
{"class":"org.apache.tika.metadata.AccessPermissions","field":"CAN_PRINT_FAITHFUL","key":"access_permission:can_print_faithful"},
+  
{"class":"org.apache.tika.metadata.AccessPermissions","field":"EXTRACT_CONTENT","key":"access_permission:extract_content"},
+  
{"class":"org.apache.tika.metadata.AccessPermissions","field":"EXTRACT_FOR_ACCESSIBILITY","key":"access_permission:extract_for_accessibility"},
+  
{"class":"org.apache.tika.metadata.AccessPermissions","field":"FILL_IN_FORM","key":"access_permission:fill_in_form"},
+  
{"class":"org.apache.tika.metadata.Database","field":"COLUMN_COUNT","key":"database:column_count"},
+  
{"class":"org.apache.tika.metadata.Database","field":"COLUMN_NAME","key":"database:column_name"},
+  
{"class":"org.apache.tika.metadata.Database","field":"ROW_COUNT","key":"database:row_count"},
+  
{"class":"org.apache.tika.metadata.Database","field":"TABLE_NAME","key":"database:table_name"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"CONTRIBUTOR","key":"dc:contributor"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"COVERAGE","key":"dc:coverage"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"CREATED","key":"dcterms:created"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"CREATOR","key":"dc:creator"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"DATE","key":"dc:date"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"DESCRIPTION","key":"dc:description"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"FORMAT","key":"dc:format"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"IDENTIFIER","key":"dc:identifier"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"LANGUAGE","key":"dc:language"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"MODIFIED","key":"dcterms:modified"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"PUBLISHER","key":"dc:publisher"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"RELATION","key":"dc:relation"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"RIGHTS","key":"dc:rights"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"SOURCE","key":"dc:source"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"SUBJECT","key":"dc:subject"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"TITLE","key":"dc:title"},
+  
{"class":"org.apache.tika.metadata.DublinCore","field":"TYPE","key":"dc:type"},
+  
{"class":"org.apache.tika.metadata.Epub","field":"RENDITION_LAYOUT","key":"epub:rendition:layout"},
+  
{"class":"org.apache.tika.metadata.Epub","field":"VERSION","key":"epub:version"},
+  
{"class":"org.apache.tika.metadata.ExternalProcess","field":"EXIT_VALUE","key":"external-process:exit-value"},
+  
{"class":"org.apache.tika.metadata.ExternalProcess","field":"IS_TIMEOUT","key":"external-process:timeout"},
+  
{"class":"org.apache.tika.metadata.ExternalProcess","field":"STD_ERR","key":"external-process:stderr"},
+  
{"class":"org.apache.tika.metadata.ExternalProcess","field":"STD_ERR_IS_TRUNCATED","key":"external-process:stderr-truncated"},
+  
{"class":"org.apache.tika.metadata.ExternalProcess","field":"STD_ERR_LENGTH","key":"external-process:stderr-length"},
+  
{"class":"org.apache.tika.metadata.ExternalProcess","field":"STD_OUT","key":"external-process:stdout"},
+  
{"class":"org.apache.tika.metadata.ExternalProcess","field":"STD_OUT_IS_TRUNCATED","key":"external-process:stdout-truncated"},
+  
{"class":"org.apache.tika.metadata.ExternalProcess","field":"STD_OUT_LENGTH","key":"external-process:stdout-length"},
+  
{"class":"org.apache.tika.metadata.FileSystem","field":"ACCESSED","key":"fs:accessed"},
+  
{"class":"org.apache.tika.metadata.FileSystem","field":"CREATED","key":"fs:created"},
+  
{"class":"org.apache.tika.metadata.FileSystem","field":"MODIFIED","key":"fs:modified"},
+  
{"class":"org.apache.tika.metadata.Font","field":"FONT_NAME","key":"font:name"},
+  
{"class":"org.apache.tika.metadata.Geographic","field":"ALTITUDE","key":"geo:alt"},
+  
{"class":"org.apache.tika.metadata.Geographic","field":"LATITUDE","key":"geo:lat"},
+  
{"class":"org.apache.tika.metadata.Geographic","field":"LONGITUDE","key":"geo:long"},
+  
{"class":"org.apache.tika.metadata.Geographic","field":"TIMESTAMP","key":"geo:timestamp"},
+  
{"class":"org.apache.tika.metadata.HTML","field":"SCRIPT_SOURCE","key":"html_meta:scriptSrc"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ADDITIONAL_MODEL_INFO","key":"Iptc4xmpExt:AddlModelInfo"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ARTWORK_OR_OBJECT","key":"Iptc4xmpExt:ArtworkOrObject"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ARTWORK_OR_OBJECT_DETAIL_COPYRIGHT_NOTICE","key":"Iptc4xmpExt:AOCopyrightNotice"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ARTWORK_OR_OBJECT_DETAIL_CREATOR","key":"Iptc4xmpExt:AOCreator"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ARTWORK_OR_OBJECT_DETAIL_DATE_CREATED","key":"Iptc4xmpExt:AODateCreated"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ARTWORK_OR_OBJECT_DETAIL_SOURCE","key":"Iptc4xmpExt:AOSource"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ARTWORK_OR_OBJECT_DETAIL_SOURCE_INVENTORY_NUMBER","key":"Iptc4xmpExt:AOSourceInvNo"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ARTWORK_OR_OBJECT_DETAIL_TITLE","key":"Iptc4xmpExt:AOTitle"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CATEGORY","key":"photoshop:Category"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CITY","key":"photoshop:City"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CONTACT_INFO_ADDRESS","key":"Iptc4xmpCore:CiAdrExtadr"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CONTACT_INFO_CITY","key":"Iptc4xmpCore:CiAdrCity"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CONTACT_INFO_COUNTRY","key":"Iptc4xmpCore:CiAdrCtry"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CONTACT_INFO_EMAIL","key":"Iptc4xmpCore:CiEmailWork"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CONTACT_INFO_PHONE","key":"Iptc4xmpCore:CiTelWork"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CONTACT_INFO_POSTAL_CODE","key":"Iptc4xmpCore:CiAdrPcode"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CONTACT_INFO_STATE_PROVINCE","key":"Iptc4xmpCore:CiAdrRegion"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CONTACT_INFO_WEB_URL","key":"Iptc4xmpCore:CiUrlWork"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CONTROLLED_VOCABULARY_TERM","key":"Iptc4xmpExt:CVterm"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"COPYRIGHT_NOTICE","key":"dc:rights"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"COPYRIGHT_OWNER","key":"plus:CopyrightOwner"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"COPYRIGHT_OWNER_ID","key":"plus:CopyrightOwnerID"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"COPYRIGHT_OWNER_NAME","key":"plus:CopyrightOwnerName"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"COUNTRY","key":"photoshop:Country"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"COUNTRY_CODE","key":"Iptc4xmpCore:CountryCode"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CREATOR","key":"dc:creator"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CREATORS_CONTACT_INFO","key":"Iptc4xmpCore:CreatorContactInfo"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CREATORS_JOB_TITLE","key":"photoshop:AuthorsPosition"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"CREDIT_LINE","key":"photoshop:Credit"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"DATE_CREATED","key":"photoshop:DateCreated"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"DESCRIPTION","key":"dc:description"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"DESCRIPTION_WRITER","key":"photoshop:CaptionWriter"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"DIGITAL_IMAGE_GUID","key":"Iptc4xmpExt:DigImageGUID"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"DIGITAL_SOURCE_FILE_TYPE","key":"Iptc4xmpExt:DigitalSourcefileType"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"DIGITAL_SOURCE_TYPE","key":"Iptc4xmpExt:DigitalSourceType"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"EVENT","key":"Iptc4xmpExt:Event"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"HEADLINE","key":"photoshop:Headline"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"IMAGE_CREATOR","key":"plus:ImageCreator"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"IMAGE_CREATOR_ID","key":"plus:ImageCreatorID"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"IMAGE_CREATOR_NAME","key":"plus:ImageCreatorName"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"IMAGE_REGISTRY_ENTRY","key":"Iptc4xmpExt:RegistryId"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"IMAGE_SUPPLIER","key":"plus:ImageSupplier"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"IMAGE_SUPPLIER_ID","key":"plus:ImageSupplierID"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"IMAGE_SUPPLIER_IMAGE_ID","key":"plus:ImageSupplierImageID"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"IMAGE_SUPPLIER_NAME","key":"plus:ImageSupplierName"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"INSTRUCTIONS","key":"photoshop:Instructions"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"INTELLECTUAL_GENRE","key":"Iptc4xmpCore:IntellectualGenre"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"IPTC_LAST_EDITED","key":"Iptc4xmpExt:IptcLastEdited"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"JOB_ID","key":"photoshop:TransmissionReference"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"KEYWORDS","key":"dc:subject"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR","key":"plus:Licensor"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_CITY","key":"plus:LicensorCity"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_COUNTRY","key":"plus:LicensorCountry"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_EMAIL","key":"plus:LicensorEmail"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_EXTENDED_ADDRESS","key":"plus:LicensorExtendedAddress"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_ID","key":"plus:LicensorID"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_NAME","key":"plus:LicensorName"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_POSTAL_CODE","key":"plus:LicensorPostalCode"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_REGION","key":"plus:LicensorRegion"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_STREET_ADDRESS","key":"plus:LicensorStreetAddress"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_TELEPHONE_1","key":"plus:LicensorTelephone1"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_TELEPHONE_2","key":"plus:LicensorTelephone2"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LICENSOR_URL","key":"plus:LicensorURL"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_CREATED","key":"Iptc4xmpExt:LocationCreated"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_CREATED_CITY","key":"Iptc4xmpExt:LocationCreatedCity"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_CREATED_COUNTRY_CODE","key":"Iptc4xmpExt:LocationCreatedCountryCode"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_CREATED_COUNTRY_NAME","key":"Iptc4xmpExt:LocationCreatedCountryName"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_CREATED_PROVINCE_OR_STATE","key":"Iptc4xmpExt:LocationCreatedProvinceState"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_CREATED_SUBLOCATION","key":"Iptc4xmpExt:LocationCreatedSublocation"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_CREATED_WORLD_REGION","key":"Iptc4xmpExt:LocationCreatedWorldRegion"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_SHOWN","key":"Iptc4xmpExt:LocationShown"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_SHOWN_CITY","key":"Iptc4xmpExt:LocationShownCity"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_SHOWN_COUNTRY_CODE","key":"Iptc4xmpExt:LocationShownCountryCode"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_SHOWN_COUNTRY_NAME","key":"Iptc4xmpExt:LocationShownCountryName"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_SHOWN_PROVINCE_OR_STATE","key":"Iptc4xmpExt:LocationShownProvinceState"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_SHOWN_SUBLOCATION","key":"Iptc4xmpExt:LocationShownSublocation"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"LOCATION_SHOWN_WORLD_REGION","key":"Iptc4xmpExt:LocationShownWorldRegion"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"MAX_AVAIL_HEIGHT","key":"Iptc4xmpExt:MaxAvailHeight"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"MAX_AVAIL_WIDTH","key":"Iptc4xmpExt:MaxAvailWidth"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"MINOR_MODEL_AGE_DISCLOSURE","key":"plus:MinorModelAgeDisclosure"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"MODEL_AGE","key":"Iptc4xmpExt:ModelAge"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"MODEL_RELEASE_ID","key":"plus:ModelReleaseID"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"MODEL_RELEASE_STATUS","key":"plus:ModelReleaseStatus"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ORGANISATION_CODE","key":"Iptc4xmpExt:OrganisationInImageCode"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"ORGANISATION_NAME","key":"Iptc4xmpExt:OrganisationInImageName"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"PERSON","key":"Iptc4xmpExt:PersonInImage"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"PLUS_VERSION","key":"plus:Version"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"PROPERTY_RELEASE_ID","key":"plus:PropertyReleaseID"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"PROPERTY_RELEASE_STATUS","key":"plus:PropertyReleaseStatus"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"PROVINCE_OR_STATE","key":"photoshop:State"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"REGISTRY_ENTRY_CREATED_ITEM_ID","key":"Iptc4xmpExt:RegItemId"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"REGISTRY_ENTRY_CREATED_ORGANISATION_ID","key":"Iptc4xmpExt:RegOrgId"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"RIGHTS_USAGE_TERMS","key":"xmpRights:UsageTerms"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"SCENE_CODE","key":"Iptc4xmpCore:Scene"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"SOURCE","key":"photoshop:Source"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"SUBJECT_CODE","key":"Iptc4xmpCore:SubjectCode"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"SUBLOCATION","key":"Iptc4xmpCore:Location"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"SUPPLEMENTAL_CATEGORIES","key":"photoshop:SupplementalCategories"},
+  {"class":"org.apache.tika.metadata.IPTC","field":"TITLE","key":"dc:title"},
+  
{"class":"org.apache.tika.metadata.IPTC","field":"URGENCY","key":"photoshop:Urgency"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"ATTACH_CONTENT_ID","key":"mapi:attach:content-id"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"ATTACH_CONTENT_LOCATION","key":"mapi:attach:content-location"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"ATTACH_DISPLAY_NAME","key":"mapi:attach:display-name"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"ATTACH_EXTENSION","key":"mapi:attach:extension"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"ATTACH_FILE_NAME","key":"mapi:attach:file-name"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"ATTACH_LANGUAGE","key":"mapi:attach:language"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"ATTACH_LONG_FILE_NAME","key":"mapi:attach:long-file-name"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"ATTACH_LONG_PATH_NAME","key":"mapi:attach:long-path-name"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"ATTACH_MIME","key":"mapi:attach:mime"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"BODY_TYPES_PROCESSED","key":"mapi:body-types-processed"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"CONVERSATION_INDEX","key":"mapi:conversation-index"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"CONVERSATION_TOPIC","key":"mapi:conversation-topic"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"FROM_REPRESENTING_EMAIL","key":"mapi:from-representing-email"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"FROM_REPRESENTING_NAME","key":"mapi:from-representing-name"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"IMPORTANCE","key":"mapi:importance"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"INTERNET_MESSAGE_ID","key":"mapi:internet-message-id"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"INTERNET_REFERENCES","key":"mapi:internet-references"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"IN_REPLY_TO_ID","key":"mapi:in-reply-to-id"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"IS_FLAGGED","key":"mapi:is-flagged"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"MESSAGE_CLASS","key":"mapi:message-class"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"MESSAGE_CLASS_RAW","key":"mapi:message-class-raw"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"PRIORTY","key":"mapi:priority"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"RECIPIENTS_STRING","key":"mapi:recipients-string"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"SENT_BY_SERVER_TYPE","key":"mapi:sent-by-server-type"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"SUBMISSION_ACCEPTED_AT_TIME","key":"mapi:msg-submission-accepted-at-time"},
+  
{"class":"org.apache.tika.metadata.MAPI","field":"SUBMISSION_ID","key":"mapi:msg-submission-id"},
+  
{"class":"org.apache.tika.metadata.MachineMetadata","field":"ARCHITECTURE_BITS","key":"machine:architectureBits"},
+  
{"class":"org.apache.tika.metadata.MachineMetadata","field":"ENDIAN","key":"machine:endian"},
+  
{"class":"org.apache.tika.metadata.MachineMetadata","field":"MACHINE_TYPE","key":"machine:machineType"},
+  
{"class":"org.apache.tika.metadata.MachineMetadata","field":"PLATFORM","key":"machine:platform"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_BCC_DISPLAY_NAME","key":"Message:BCC-Display-Name"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_BCC_EMAIL","key":"Message:BCC-Email"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_BCC_NAME","key":"Message:BCC-Name"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_CC_DISPLAY_NAME","key":"Message:CC-Display-Name"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_CC_EMAIL","key":"Message:CC-Email"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_CC_NAME","key":"Message:CC-Name"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_FROM_EMAIL","key":"Message:From-Email"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_FROM_NAME","key":"Message:From-Name"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_TO_DISPLAY_NAME","key":"Message:To-Display-Name"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_TO_EMAIL","key":"Message:To-Email"},
+  
{"class":"org.apache.tika.metadata.Message","field":"MESSAGE_TO_NAME","key":"Message:To-Name"},
+  
{"class":"org.apache.tika.metadata.Office","field":"AUTHOR","key":"meta:author"},
+  
{"class":"org.apache.tika.metadata.Office","field":"CHARACTER_COUNT","key":"meta:character-count"},
+  
{"class":"org.apache.tika.metadata.Office","field":"CHARACTER_COUNT_WITH_SPACES","key":"meta:character-count-with-spaces"},
+  
{"class":"org.apache.tika.metadata.Office","field":"COMMENT_PERSONS","key":"msoffice:comment-person-display-name"},
+  
{"class":"org.apache.tika.metadata.Office","field":"CREATION_DATE","key":"meta:creation-date"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_ANIMATIONS","key":"msoffice:ppt:has-animations"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_ATTACHED_TEMPLATE","key":"msoffice:doc:has-attached-template"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_COMMENTS","key":"msoffice:has-comments"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_DATA_CONNECTIONS","key":"msoffice:excel:has-data-connections"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_DDE_LINKS","key":"msoffice:excel:has-dde-links"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_EXTERNAL_CHART_DATA","key":"msoffice:has-external-chart-data"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_EXTERNAL_LINKS","key":"msoffice:excel:has-external-links"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_EXTERNAL_OLE_OBJECTS","key":"msoffice:has-external-ole-objects"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_EXTERNAL_PIVOT_DATA","key":"msoffice:excel:has-external-pivot-data"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_FIELD_HYPERLINKS","key":"msoffice:has-field-hyperlinks"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_FRAMESETS","key":"msoffice:doc:has-framesets"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_HIDDEN_COLUMNS","key":"msoffice:excel:has-hidden-cols"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_HIDDEN_ROWS","key":"msoffice:excel:has-hidden-rows"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_HIDDEN_SHEETS","key":"msoffice:excel:has-hidden-sheets"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_HIDDEN_SLIDES","key":"msoffice:ppt:has-hidden-slides"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_HIDDEN_TEXT","key":"msoffice:doc:has-hidden-text"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_HOVER_HYPERLINKS","key":"msoffice:has-hover-hyperlinks"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_LINKED_OLE_OBJECTS","key":"msoffice:has-linked-ole-objects"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_MAIL_MERGE","key":"msoffice:doc:has-mail-merge"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_POWER_QUERY","key":"msoffice:excel:has-power-query"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_SUBDOCUMENTS","key":"msoffice:doc:has-subdocuments"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_TRACK_CHANGES","key":"msoffice:has-track-changes"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_VERY_HIDDEN_SHEETS","key":"msoffice:excel:has-very-hidden-sheets"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_VML_HYPERLINKS","key":"msoffice:has-vml-hyperlinks"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HAS_WEB_QUERIES","key":"msoffice:excel:has-web-queries"},
+  
{"class":"org.apache.tika.metadata.Office","field":"HIDDEN_SHEET_NAMES","key":"msoffice:excel:hidden-sheet-names"},
+  
{"class":"org.apache.tika.metadata.Office","field":"IMAGE_COUNT","key":"meta:image-count"},
+  
{"class":"org.apache.tika.metadata.Office","field":"INITIAL_AUTHOR","key":"meta:initial-author"},
+  
{"class":"org.apache.tika.metadata.Office","field":"KEYWORDS","key":"meta:keyword"},
+  
{"class":"org.apache.tika.metadata.Office","field":"LAST_AUTHOR","key":"meta:last-author"},
+  
{"class":"org.apache.tika.metadata.Office","field":"LINE_COUNT","key":"meta:line-count"},
+  
{"class":"org.apache.tika.metadata.Office","field":"MAPI_FROM_REPRESENTING_EMAIL","key":"meta:mapi-from-representing-email"},
+  
{"class":"org.apache.tika.metadata.Office","field":"MAPI_FROM_REPRESENTING_NAME","key":"meta:mapi-from-representing-name"},
+  
{"class":"org.apache.tika.metadata.Office","field":"MAPI_IMPORTANCE","key":"meta:mapi-importance"},
+  
{"class":"org.apache.tika.metadata.Office","field":"MAPI_IS_FLAGGED","key":"meta:mapi-is-flagged"},
+  
{"class":"org.apache.tika.metadata.Office","field":"MAPI_MESSAGE_CLASS","key":"meta:mapi-message-class"},
+  
{"class":"org.apache.tika.metadata.Office","field":"MAPI_MESSAGE_CLIENT_SUBMIT_TIME","key":"meta:mapi-msg-client-submit-time"},
+  
{"class":"org.apache.tika.metadata.Office","field":"MAPI_PRIORTY","key":"meta:mapi-importance"},
+  
{"class":"org.apache.tika.metadata.Office","field":"MAPI_RECIPIENTS_STRING","key":"meta:mapi-recipients-string"},
+  
{"class":"org.apache.tika.metadata.Office","field":"MAPI_SENT_BY_SERVER_TYPE","key":"meta:mapi-sent-by-server-type"},
+  
{"class":"org.apache.tika.metadata.Office","field":"NUM_HIDDEN_SLIDES","key":"msoffice:ppt:num-hidden-slides"},
+  
{"class":"org.apache.tika.metadata.Office","field":"OBJECT_COUNT","key":"meta:object-count"},
+  
{"class":"org.apache.tika.metadata.Office","field":"OCX_NAME","key":"msoffice:ocxName"},
+  
{"class":"org.apache.tika.metadata.Office","field":"PAGE_COUNT","key":"meta:page-count"},
+  
{"class":"org.apache.tika.metadata.Office","field":"PARAGRAPH_COUNT","key":"meta:paragraph-count"},
+  
{"class":"org.apache.tika.metadata.Office","field":"PRINT_DATE","key":"meta:print-date"},
+  
{"class":"org.apache.tika.metadata.Office","field":"PROG_ID","key":"msoffice:progID"},
+  
{"class":"org.apache.tika.metadata.Office","field":"PROTECTED_WORKSHEET","key":"msoffice:excel:protected-worksheet"},
+  
{"class":"org.apache.tika.metadata.Office","field":"SAVE_DATE","key":"meta:save-date"},
+  
{"class":"org.apache.tika.metadata.Office","field":"SLIDE_COUNT","key":"meta:slide-count"},
+  
{"class":"org.apache.tika.metadata.Office","field":"TABLE_COUNT","key":"meta:table-count"},
+  
{"class":"org.apache.tika.metadata.Office","field":"VERY_HIDDEN_SHEET_NAMES","key":"msoffice:excel:very-hidden-sheet-names"},
+  
{"class":"org.apache.tika.metadata.Office","field":"WORD_COUNT","key":"meta:word-count"},
+  
{"class":"org.apache.tika.metadata.Office","field":"WORKBOOK_CODENAME","key":"msoffice:excel:workbook-codename"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLCore","field":"CATEGORY","key":"cp:category"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLCore","field":"CONTENT_STATUS","key":"cp:contentStatus"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLCore","field":"LAST_MODIFIED_BY","key":"cp:lastModifiedBy"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLCore","field":"LAST_PRINTED","key":"cp:lastPrinted"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLCore","field":"REVISION","key":"cp:revision"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLCore","field":"SUBJECT","key":"cp:subject"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLCore","field":"VERSION","key":"cp:version"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"APPLICATION","key":"extended-properties:Application"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"APP_VERSION","key":"extended-properties:AppVersion"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"COMMENTS","key":"w:Comments"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"COMPANY","key":"extended-properties:Company"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"DOC_SECURITY","key":"extended-properties:DocSecurity"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"DOC_SECURITY_STRING","key":"extended-properties:DocSecurityString"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"HIDDEN_SLIDES","key":"extended-properties:HiddedSlides"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"MANAGER","key":"extended-properties:Manager"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"NOTES","key":"extended-properties:Notes"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"PRESENTATION_FORMAT","key":"extended-properties:PresentationFormat"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"TEMPLATE","key":"extended-properties:Template"},
+  
{"class":"org.apache.tika.metadata.OfficeOpenXMLExtended","field":"TOTAL_TIME","key":"extended-properties:TotalTime"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"ACTION_TRIGGER","key":"pdf:actionTrigger"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"ACTION_TRIGGERS","key":"pdf:actionTriggers"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"ACTION_TYPES","key":"pdf:actionTypes"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"ANNOTATION_SUBTYPES","key":"pdf:annotationSubtypes"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"ANNOTATION_TYPES","key":"pdf:annotationTypes"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"ASSOCIATED_FILE_RELATIONSHIP","key":"pdf:associatedFileRelationship"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"CHARACTERS_PER_PAGE","key":"pdf:charsPerPage"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"CONTAINS_DAMAGED_FONT","key":"pdf:containsDamagedFont"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"CONTAINS_NON_EMBEDDED_FONT","key":"pdf:containsNonEmbeddedFont"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"DOC_INFO_CREATED","key":"pdf:docinfo:created"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"DOC_INFO_CREATOR","key":"pdf:docinfo:creator"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"DOC_INFO_CREATOR_TOOL","key":"pdf:docinfo:creator_tool"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"DOC_INFO_KEY_WORDS","key":"pdf:docinfo:keywords"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"DOC_INFO_MODIFICATION_DATE","key":"pdf:docinfo:modified"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"DOC_INFO_PRODUCER","key":"pdf:docinfo:producer"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"DOC_INFO_SUBJECT","key":"pdf:docinfo:subject"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"DOC_INFO_TITLE","key":"pdf:docinfo:title"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"DOC_INFO_TRAPPED","key":"pdf:docinfo:trapped"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"EMBEDDED_FILE_ANNOTATION_TYPE","key":"pdf:embeddedFileAnnotationType"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"EMBEDDED_FILE_DESCRIPTION","key":"pdf:embeddedFileDescription"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"EMBEDDED_FILE_SUBTYPE","key":"pdf:embeddedFileSubtype"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"EOF_OFFSETS","key":"pdf:eofOffsets"},
+  {"class":"org.apache.tika.metadata.PDF","field":"HAS_3D","key":"pdf:has3D"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"HAS_ACROFORM_FIELDS","key":"pdf:hasAcroFormFields"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"HAS_COLLECTION","key":"pdf:hasCollection"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"HAS_MARKED_CONTENT","key":"pdf:hasMarkedContent"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"HAS_SIGNATURE_FIELDS","key":"pdf:hasSignatureFields"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"HAS_XFA","key":"pdf:hasXFA"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"HAS_XMP","key":"pdf:hasXMP"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"ILLUSTRATOR_TYPE","key":"pdf:illustrator:type"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"INCREMENTAL_UPDATE_NUMBER","key":"pdf:incrementalUpdateNumber"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"IS_ENCRYPTED","key":"pdf:encrypted"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"JS_NAME","key":"pdf:jsName"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"NUM_3D_ANNOTATIONS","key":"pdf:num3DAnnotations"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"OCR_PAGE_COUNT","key":"pdf:ocrPageCount"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"OVERALL_PERCENTAGE_UNMAPPED_UNICODE_CHARS","key":"pdf:overallPercentageUnmappedUnicodeChars"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDFAID_CONFORMANCE","key":"pdfaid:conformance"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDFAID_PART","key":"pdfaid:part"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDFA_VERSION","key":"pdfa:PDFVersion"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDFUAID_PART","key":"pdfuaid:part"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDFVT_MODIFIED","key":"pdfvt:modified"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDFVT_VERSION","key":"pdfvt:version"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDFXID_VERSION","key":"pdfxid:version"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDFX_CONFORMANCE","key":"pdfx:conformance"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDFX_VERSION","key":"pdfx:version"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDF_EXTENSION_VERSION","key":"pdf:PDFExtensionVersion"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDF_INCREMENTAL_UPDATE_COUNT","key":"pdf:incrementalUpdateCount"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PDF_VERSION","key":"pdf:PDFVersion"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"PRODUCER","key":"pdf:producer"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"TOTAL_UNMAPPED_UNICODE_CHARS","key":"pdf:totalUnmappedUnicodeChars"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"UNMAPPED_UNICODE_CHARS_PER_PAGE","key":"pdf:unmappedUnicodeCharsPerPage"},
+  
{"class":"org.apache.tika.metadata.PDF","field":"XMP_LOCATION","key":"pdf:xmpLocation"},
+  
{"class":"org.apache.tika.metadata.PST","field":"DESCRIPTOR_NODE_ID","key":"pst:discriptorNodeId"},
+  
{"class":"org.apache.tika.metadata.PST","field":"IS_VALID","key":"pst:isValid"},
+  
{"class":"org.apache.tika.metadata.PST","field":"PST_FOLDER_PATH","key":"pst:folderPath"},
+  
{"class":"org.apache.tika.metadata.PagedText","field":"N_PAGES","key":"xmpTPg:NPages"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"AUTHORS_POSITION","key":"photoshop:AuthorsPosition"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"CAPTION_WRITER","key":"photoshop:CaptionWriter"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"CATEGORY","key":"photoshop:Category"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"CITY","key":"photoshop:City"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"COLOR_MODE","key":"photoshop:ColorMode"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"COUNTRY","key":"photoshop:Country"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"CREDIT","key":"photoshop:Credit"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"DATE_CREATED","key":"photoshop:DateCreated"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"HEADLINE","key":"photoshop:Headline"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"INSTRUCTIONS","key":"photoshop:Instructions"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"SOURCE","key":"photoshop:Source"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"STATE","key":"photoshop:State"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"SUPPLEMENTAL_CATEGORIES","key":"photoshop:SupplementalCategories"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"TRANSMISSION_REFERENCE","key":"photoshop:TransmissionReference"},
+  
{"class":"org.apache.tika.metadata.Photoshop","field":"URGENCY","key":"photoshop:Urgency"},
+  
{"class":"org.apache.tika.metadata.QuattroPro","field":"BUILD","key":"wordperfect:Build"},
+  
{"class":"org.apache.tika.metadata.QuattroPro","field":"ID","key":"wordperfect:Id"},
+  
{"class":"org.apache.tika.metadata.QuattroPro","field":"LOWEST_VERSION","key":"wordperfect:LowestVersion"},
+  
{"class":"org.apache.tika.metadata.QuattroPro","field":"VERSION","key":"wordperfect:Version"},
+  
{"class":"org.apache.tika.metadata.RTFMetadata","field":"CONTAINS_ENCAPSULATED_HTML","key":"rtf_meta:contains_encapsulated_html"},
+  
{"class":"org.apache.tika.metadata.RTFMetadata","field":"EMB_APP_VERSION","key":"rtf_meta:emb_app_version"},
+  
{"class":"org.apache.tika.metadata.RTFMetadata","field":"EMB_CLASS","key":"rtf_meta:emb_class"},
+  
{"class":"org.apache.tika.metadata.RTFMetadata","field":"EMB_ITEM","key":"rtf_meta:emb_item"},
+  
{"class":"org.apache.tika.metadata.RTFMetadata","field":"EMB_TOPIC","key":"rtf_meta:emb_topic"},
+  
{"class":"org.apache.tika.metadata.RTFMetadata","field":"THUMBNAIL","key":"rtf_meta:thumbnail"},
+  
{"class":"org.apache.tika.metadata.Rendering","field":"RENDERED_BY","key":"rendering:Rendered-By"},
+  
{"class":"org.apache.tika.metadata.Rendering","field":"RENDERED_MS","key":"rendering:rendering-time-ms"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"BITS_PER_SAMPLE","key":"tiff:BitsPerSample"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"EQUIPMENT_MAKE","key":"tiff:Make"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"EQUIPMENT_MODEL","key":"tiff:Model"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"EXIF_PAGE_COUNT","key":"exif:PageCount"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"EXPOSURE_TIME","key":"exif:ExposureTime"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"FLASH_FIRED","key":"exif:Flash"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"FOCAL_LENGTH","key":"exif:FocalLength"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"F_NUMBER","key":"exif:FNumber"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"IMAGE_LENGTH","key":"tiff:ImageLength"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"IMAGE_WIDTH","key":"tiff:ImageWidth"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"ISO_SPEED_RATINGS","key":"exif:IsoSpeedRatings"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"ORIENTATION","key":"tiff:Orientation"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"ORIGINAL_DATE","key":"exif:DateTimeOriginal"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"RESOLUTION_HORIZONTAL","key":"tiff:XResolution"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"RESOLUTION_UNIT","key":"tiff:ResolutionUnit"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"RESOLUTION_VERTICAL","key":"tiff:YResolution"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"SAMPLES_PER_PIXEL","key":"tiff:SamplesPerPixel"},
+  
{"class":"org.apache.tika.metadata.TIFF","field":"SOFTWARE","key":"tiff:Software"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"ALTITUDE","key":"geo:alt"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"COMMENTS","key":"w:Comments"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"CONTAINER_EXCEPTION","key":"X-TIKA:EXCEPTION:container_exception"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"CONTENT_TYPE_HINT","key":"Content-Type-Hint"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"CONTENT_TYPE_PARSER_OVERRIDE","key":"Content-Type-Parser-Override"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"CONTENT_TYPE_USER_OVERRIDE","key":"Content-Type-Override"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"CONTRIBUTOR","key":"dc:contributor"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"COVERAGE","key":"dc:coverage"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"CREATED","key":"dcterms:created"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"CREATOR","key":"dc:creator"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"CREATOR_TOOL","key":"xmp:CreatorTool"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"DESCRIPTION","key":"dc:description"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"DETECTED_ENCODING","key":"X-TIKA:detectedEncoding"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"EMBEDDED_BYTES_EXCEPTION","key":"X-TIKA:EXCEPTION:embedded_bytes_exception"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"EMBEDDED_DEPTH","key":"X-TIKA:embedded_depth"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"EMBEDDED_EXCEPTION","key":"X-TIKA:EXCEPTION:embedded_exception"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"EMBEDDED_ID","key":"X-TIKA:embedded_id"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"EMBEDDED_ID_PATH","key":"X-TIKA:embedded_id_path"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"EMBEDDED_RESOURCE_PATH","key":"X-TIKA:embedded_resource_path"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"EMBEDDED_RESOURCE_TYPE","key":"embeddedResourceType"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"EMBEDDED_WARNING","key":"X-TIKA:EXCEPTION:embedded_warning"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"ENCODING_DETECTOR","key":"X-TIKA:encodingDetector"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"FINAL_EMBEDDED_RESOURCE_PATH","key":"X-TIKA:final_embedded_resource_path"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"FORMAT","key":"dc:format"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"HAS_SIGNATURE","key":"hasSignature"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"IDENTIFIER","key":"dc:identifier"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"INTERNAL_PATH","key":"X-TIKA:internalPath"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"IS_ENCRYPTED","key":"X-TIKA:encrypted"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"LANGUAGE","key":"dc:language"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"LATITUDE","key":"geo:lat"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"LONGITUDE","key":"geo:long"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"METADATA_DATE","key":"xmp:MetadataDate"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"MODIFIED","key":"dcterms:modified"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"MODIFIER","key":"meta:last-author"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"NUM_IMAGES","key":"imagereader:NumImages"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"ORIGINAL_RESOURCE_NAME","key":"X-TIKA:origResourceName"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"PARSE_TIME_MILLIS","key":"X-TIKA:parse_time_millis"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"PIPES_RESULT","key":"X-TIKA:pipes_result"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"PRINT_DATE","key":"meta:print-date"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"PUBLISHER","key":"dc:publisher"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"RATING","key":"xmp:Rating"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"RELATION","key":"dc:relation"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"RIGHTS","key":"dc:rights"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"SIGNATURE_CONTACT_INFO","key":"signature:contact-info"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"SIGNATURE_DATE","key":"signature:date"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"SIGNATURE_FILTER","key":"signature:filter"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"SIGNATURE_LOCATION","key":"signature:location"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"SIGNATURE_NAME","key":"signature:name"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"SIGNATURE_REASON","key":"signature:reason"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"SOURCE","key":"dc:source"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"SOURCE_PATH","key":"X-TIKA:sourcePath"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"SUBJECT","key":"dc:subject"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TIKA_CONTENT","key":"X-TIKA:content"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TIKA_CONTENT_HANDLER","key":"X-TIKA:content_handler"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TIKA_DETECTED_LANGUAGE","key":"X-TIKA:detected_language"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TIKA_DETECTED_LANGUAGE_CONFIDENCE","key":"X-TIKA:detected_language_confidence"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TIKA_DETECTED_LANGUAGE_CONFIDENCE_RAW","key":"X-TIKA:detected_language_confidence_raw"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TIKA_META_EXCEPTION_EMBEDDED_STREAM","key":"X-TIKA:EXCEPTION:embedded_stream_exception"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TIKA_META_EXCEPTION_WARNING","key":"X-TIKA:EXCEPTION:warn"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TIKA_PARSED_BY","key":"X-TIKA:Parsed-By"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TIKA_PARSED_BY_FULL_SET","key":"X-TIKA:Parsed-By-Full-Set"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TITLE","key":"dc:title"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TRUNCATED_METADATA","key":"X-TIKA:WARN:truncated_metadata"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"TYPE","key":"dc:type"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"VERSION_COUNT","key":"X-TIKA:versionCount"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"VERSION_NUMBER","key":"X-TIKA:versionNumber"},
+  
{"class":"org.apache.tika.metadata.TikaCoreProperties","field":"WRITE_LIMIT_REACHED","key":"X-TIKA:EXCEPTION:write_limit_reached"},
+  
{"class":"org.apache.tika.metadata.TikaPagedText","field":"PAGE_NUMBER","key":"tika_pg:page_number"},
+  
{"class":"org.apache.tika.metadata.TikaPagedText","field":"PAGE_ROTATION","key":"tika_pg:page_rotation"},
+  
{"class":"org.apache.tika.metadata.WARC","field":"WARC_PAYLOAD_CONTENT_TYPE","key":"warc:payload-content-type"},
+  
{"class":"org.apache.tika.metadata.WARC","field":"WARC_RECORD_CONTENT_TYPE","key":"warc:record-content-type"},
+  
{"class":"org.apache.tika.metadata.WARC","field":"WARC_RECORD_ID","key":"warc:WARC-Record-ID"},
+  
{"class":"org.apache.tika.metadata.WARC","field":"WARC_WARNING","key":"warc:warning"},
+  
{"class":"org.apache.tika.metadata.WordPerfect","field":"ENCRYPTED","key":"wordperfect:Encrypted"},
+  
{"class":"org.apache.tika.metadata.WordPerfect","field":"FILE_ID","key":"wordperfect:FileId"},
+  
{"class":"org.apache.tika.metadata.WordPerfect","field":"FILE_SIZE","key":"wordperfect:FileSize"},
+  
{"class":"org.apache.tika.metadata.WordPerfect","field":"FILE_TYPE","key":"wordperfect:FileType"},
+  
{"class":"org.apache.tika.metadata.WordPerfect","field":"MAJOR_VERSION","key":"wordperfect:MajorVersion"},
+  
{"class":"org.apache.tika.metadata.WordPerfect","field":"MINOR_VERSION","key":"wordperfect:MinorVersion"},
+  
{"class":"org.apache.tika.metadata.WordPerfect","field":"PRODUCT_TYPE","key":"wordperfect:ProductType"},
+  {"class":"org.apache.tika.metadata.XMP","field":"ABOUT","key":"xmp:About"},
+  
{"class":"org.apache.tika.metadata.XMP","field":"ADVISORY","key":"xmp:Advisory"},
+  
{"class":"org.apache.tika.metadata.XMP","field":"CREATE_DATE","key":"xmp:CreateDate"},
+  
{"class":"org.apache.tika.metadata.XMP","field":"CREATOR_TOOL","key":"xmp:CreatorTool"},
+  
{"class":"org.apache.tika.metadata.XMP","field":"IDENTIFIER","key":"xmp:Identifier"},
+  {"class":"org.apache.tika.metadata.XMP","field":"LABEL","key":"xmp:Label"},
+  
{"class":"org.apache.tika.metadata.XMP","field":"METADATA_DATE","key":"xmp:MetadataDate"},
+  
{"class":"org.apache.tika.metadata.XMP","field":"MODIFY_DATE","key":"xmp:ModifyDate"},
+  
{"class":"org.apache.tika.metadata.XMP","field":"NICKNAME","key":"xmp:NickName"},
+  {"class":"org.apache.tika.metadata.XMP","field":"RATING","key":"xmp:Rating"},
+  {"class":"org.apache.tika.metadata.XMP","field":"TITLE","key":"xmp:Title"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"CONTRIBUTOR","key":"xmp:dc:contributor"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"COVERAGE","key":"xmp:dc:coverage"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"CREATED","key":"xmp:dcterms:created"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"CREATOR","key":"xmp:dc:creator"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"DATE","key":"xmp:dc:date"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"DESCRIPTION","key":"xmp:dc:description"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"FORMAT","key":"xmp:dc:format"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"IDENTIFIER","key":"xmp:dc:identifier"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"LANGUAGE","key":"xmp:dc:language"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"MODIFIED","key":"xmp:dcterms:modified"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"PUBLISHER","key":"xmp:dc:publisher"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"RELATION","key":"xmp:dc:relation"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"RIGHTS","key":"xmp:dc:rights"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"SOURCE","key":"xmp:dc:source"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"SUBJECT","key":"xmp:dc:subject"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"TITLE","key":"xmp:dc:title"},
+  
{"class":"org.apache.tika.metadata.XMPDC","field":"TYPE","key":"xmp:dc:type"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"ABS_PEAK_AUDIO_FILE_PATH","key":"xmpDM:absPeakAudioFilePath"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"ALBUM","key":"xmpDM:album"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"ALBUM_ARTIST","key":"xmpDM:albumArtist"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"ALT_TAPE_NAME","key":"xmpDM:altTapeName"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"ARTIST","key":"xmpDM:artist"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"AUDIO_CHANNEL_TYPE","key":"xmpDM:audioChannelType"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"AUDIO_COMPRESSOR","key":"xmpDM:audioCompressor"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"AUDIO_MOD_DATE","key":"xmpDM:audioModDate"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"AUDIO_SAMPLE_RATE","key":"xmpDM:audioSampleRate"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"AUDIO_SAMPLE_TYPE","key":"xmpDM:audioSampleType"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"COMPILATION","key":"xmpDM:compilation"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"COMPOSER","key":"xmpDM:composer"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"COPYRIGHT","key":"xmpDM:copyright"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"DISC_NUMBER","key":"xmpDM:discNumber"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"DURATION","key":"xmpDM:duration"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"ENGINEER","key":"xmpDM:engineer"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"FILE_DATA_RATE","key":"xmpDM:fileDataRate"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"GENRE","key":"xmpDM:genre"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"INSTRUMENT","key":"xmpDM:instrument"},
+  {"class":"org.apache.tika.metadata.XMPDM","field":"KEY","key":"xmpDM:key"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"LOG_COMMENT","key":"xmpDM:logComment"},
+  {"class":"org.apache.tika.metadata.XMPDM","field":"LOOP","key":"xmpDM:loop"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"METADATA_MOD_DATE","key":"xmpDM:metadataModDate"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"NUMBER_OF_BEATS","key":"xmpDM:numberOfBeats"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"PULL_DOWN","key":"xmpDM:pullDown"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"RELATIVE_PEAK_AUDIO_FILE_PATH","key":"xmpDM:relativePeakAudioFilePath"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"RELEASE_DATE","key":"xmpDM:releaseDate"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"SCALE_TYPE","key":"xmpDM:scaleType"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"SCENE","key":"xmpDM:scene"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"SHOT_DATE","key":"xmpDM:shotDate"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"SHOT_LOCATION","key":"xmpDM:shotLocation"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"SHOT_NAME","key":"xmpDM:shotName"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"SPEAKER_PLACEMENT","key":"xmpDM:speakerPlacement"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"STRETCH_MODE","key":"xmpDM:stretchMode"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"TAPE_NAME","key":"xmpDM:tapeName"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"TEMPO","key":"xmpDM:tempo"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"TIME_SIGNATURE","key":"xmpDM:timeSignature"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"TRACK_NUMBER","key":"xmpDM:trackNumber"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"VIDEO_ALPHA_MODE","key":"xmpDM:videoAlphaMode"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"VIDEO_ALPHA_UNITY_IS_TRANSPARENT","key":"xmpDM:videoAlphaUnityIsTransparent"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"VIDEO_COLOR_SPACE","key":"xmpDM:videoColorSpace"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"VIDEO_COMPRESSOR","key":"xmpDM:videoCompressor"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"VIDEO_FIELD_ORDER","key":"xmpDM:videoFieldOrder"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"VIDEO_FRAME_RATE","key":"xmpDM:videoFrameRate"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"VIDEO_MOD_DATE","key":"xmpDM:videoModDate"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"VIDEO_PIXEL_ASPECT_RATIO","key":"xmpDM:videoPixelAspectRatio"},
+  
{"class":"org.apache.tika.metadata.XMPDM","field":"VIDEO_PIXEL_DEPTH","key":"xmpDM:videoPixelDepth"},
+  
{"class":"org.apache.tika.metadata.XMPDM$ChannelTypePropertyConverter","field":"property","key":"xmpDM:audioChannelType"},
+  
{"class":"org.apache.tika.metadata.XMPIdq","field":"SCHEME","key":"xmpidq:Scheme"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"DERIVED_FROM_DOCUMENTID","key":"xmpMM:DerivedFrom:DocumentID"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"DERIVED_FROM_INSTANCEID","key":"xmpMM:DerivedFrom:InstanceID"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"DOCUMENTID","key":"xmpMM:DocumentID"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"HISTORY_ACTION","key":"xmpMM:History:Action"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"HISTORY_EVENT_INSTANCEID","key":"xmpMM:History:InstanceID"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"HISTORY_SOFTWARE_AGENT","key":"xmpMM:History:SoftwareAgent"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"HISTORY_WHEN","key":"xmpMM:History:When"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"INSTANCEID","key":"xmpMM:InstanceID"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"ORIGINAL_DOCUMENTID","key":"xmpMM:OriginalDocumentID"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"RENDITION_CLASS","key":"xmpMM:RenditionClass"},
+  
{"class":"org.apache.tika.metadata.XMPMM","field":"RENDITION_PARAMS","key":"xmpMM:RenditionParams"},
+  
{"class":"org.apache.tika.metadata.XMPPDF","field":"ABOUT","key":"xmp:pdf:About"},
+  
{"class":"org.apache.tika.metadata.XMPPDF","field":"KEY_WORDS","key":"xmp:pdf:Keywords"},
+  
{"class":"org.apache.tika.metadata.XMPPDF","field":"PDF_VERSION","key":"xmp:pdf:PDFVersion"},
+  
{"class":"org.apache.tika.metadata.XMPPDF","field":"PRODUCER","key":"xmp:pdf:Producer"},
+  
{"class":"org.apache.tika.metadata.XMPRights","field":"CERTIFICATE","key":"xmpRights:Certificate"},
+  
{"class":"org.apache.tika.metadata.XMPRights","field":"MARKED","key":"xmpRights:Marked"},
+  
{"class":"org.apache.tika.metadata.XMPRights","field":"OWNER","key":"xmpRights:Owner"},
+  
{"class":"org.apache.tika.metadata.XMPRights","field":"USAGE_TERMS","key":"xmpRights:UsageTerms"},
+  
{"class":"org.apache.tika.metadata.XMPRights","field":"WEB_STATEMENT","key":"xmpRights:WebStatement"},
+  
{"class":"org.apache.tika.sax.AbstractRecursiveParserWrapperHandler","field":"EMBEDDED_RESOURCE_LIMIT_REACHED","key":"X-TIKA:EXCEPTION:embedded_resource_limit_reached"},
+  
{"class":"org.apache.tika.utils.ParserUtils","field":"EMBEDDED_PARSER","key":"X-TIKA:EXCEPTION:embedded_parser"}
+]
diff --git 
a/tika-metadata-schema/src/test/java/org/apache/tika/metadata/schema/MetadataKeys3xTest.java
 
b/tika-metadata-schema/src/test/java/org/apache/tika/metadata/schema/MetadataKeys3xTest.java
new file mode 100644
index 0000000000..edd64999e0
--- /dev/null
+++ 
b/tika-metadata-schema/src/test/java/org/apache/tika/metadata/schema/MetadataKeys3xTest.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tika.metadata.schema;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * TIKA-4797 gate: regenerate the field-attributed table from the live {@link
+ * org.apache.tika.metadata.Property} declarations and assert it matches the 
committed
+ * {@code metadata-keys-3x.json}. Keeps the 3.x migration baseline from 
drifting.
+ */
+public class MetadataKeys3xTest {
+
+    private static final String RESOURCE = 
"/org/apache/tika/metadata/metadata-keys-3x.json";
+
+    @Test
+    public void committedTableMatchesDeclarations() throws Exception {
+        String committed;
+        try (InputStream in = 
MetadataKeys3xTest.class.getResourceAsStream(RESOURCE)) {
+            assertNotNull(in, "committed " + RESOURCE + " is missing");
+            committed = new String(in.readAllBytes(), StandardCharsets.UTF_8);
+        }
+        assertEquals(committed, SchemaGenerator.generate(),
+                "metadata-keys-3x.json is stale. Run SchemaGenerator.main and 
commit the result.");
+    }
+}

Reply via email to