This is an automated email from the ASF dual-hosted git repository.
tballison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/main by this push:
new c2ab806dcf TIKA-4797 - Metadata key registry (#2970)
c2ab806dcf is described below
commit c2ab806dcf1de9f01df5e1e987ee54c907674ac7
Author: Tim Allison <[email protected]>
AuthorDate: Tue Jul 28 15:57:59 2026 -0400
TIKA-4797 - Metadata key registry (#2970)
---
pom.xml | 1 +
tika-metadata-schema/README.md | 50 ++
tika-metadata-schema/pom.xml | 59 ++
.../tika/metadata/schema/SchemaGenerator.java | 157 +++++
.../org/apache/tika/metadata/metadata-keys.json | 636 +++++++++++++++++++++
.../tika/metadata/metadata-open-namespaces.json | 38 ++
.../tika/metadata/schema/MetadataSchemaTest.java | 48 ++
7 files changed, 989 insertions(+)
diff --git a/pom.xml b/pom.xml
index d0a9958c8d..67da40c665 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,6 +45,7 @@
<module>tika-ml</module>
<module>tika-encoding-detectors</module>
<module>tika-parsers</module>
+ <module>tika-metadata-schema</module>
<module>tika-bundles</module>
<module>tika-xmp</module>
<module>tika-langdetect</module>
diff --git a/tika-metadata-schema/README.md b/tika-metadata-schema/README.md
new file mode 100644
index 0000000000..e58f2a7083
--- /dev/null
+++ b/tika-metadata-schema/README.md
@@ -0,0 +1,50 @@
+<!--
+ 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.
+-->
+# tika-metadata-schema
+
+A machine-readable schema of Apache Tika's metadata keys. Two registries,
because Tika has two
+kinds of keys:
+
+## `metadata-keys.json` — the closed set (generated + gated)
+Every key Tika declares as a `Property` constant, plus the bounded digest
cross-product
+(`X-TIKA:digest:<ALGORITHM>[:<ENCODING>]`, enumerated from `DigestDef`). Each
record:
+`{ key, namespace, valueType, cardinality }`.
+
+**Generated, never hand-edited.** `SchemaGenerator` scans the parser classpath
for classes that
+declare a `Property` field, force-loads them, reads the global `Property`
table, and writes stable
+sorted JSON. `MetadataSchemaTest` regenerates in-memory and asserts it matches
the committed file, so
+the registry can never drift from the declarations.
+
+Regenerate after adding/changing a `Property`:
+```
+java -cp <tika-metadata-schema + deps classpath> \
+ org.apache.tika.metadata.schema.SchemaGenerator \
+ src/main/resources/org/apache/tika/metadata/metadata-keys.json
+```
+
+## `metadata-open-namespaces.json` — the open sets (curated)
+Keys minted at **runtime** whose names are not `Property` constants, so they
cannot be generated:
+- **open/passthrough namespaces** — file-controlled key names (scraped HTML
`<meta>` under `html:`,
+ OOXML `custom:`, email `Message:Raw-Header:`, Access `MDB_PROP:`, Vorbis
comments, GRIB/NetCDF/FLV
+ attributes, …);
+- **templates** — e.g. XMP `rdf:Alt` language variants `<base-key>:<lang>`
(`dc:title:fr`).
+
+**Curated (hand-maintained, reviewed), not generated**, and possibly not
exhaustive; the
+closed-namespace lint (a follow-up) is the intended completeness backstop.
+
+Together the two files describe the whole key space: closed keys are
enumerated and gated; open keys
+are described by rule.
diff --git a/tika-metadata-schema/pom.xml b/tika-metadata-schema/pom.xml
new file mode 100644
index 0000000000..19b3779091
--- /dev/null
+++ b/tika-metadata-schema/pom.xml
@@ -0,0 +1,59 @@
+<?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>${revision}</version>
+ <relativePath>../tika-parent/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>tika-metadata-schema</artifactId>
+ <name>Apache Tika metadata schema</name>
+ <description>Generates and enforces the machine-readable metadata key
registry
+ (metadata-keys.json) from the live Property declarations.</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tika</groupId>
+ <artifactId>tika-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- brings the standard parser classes onto the classpath so their
Property
+ constants are discoverable by the generator -->
+ <dependency>
+ <groupId>org.apache.tika</groupId>
+ <artifactId>tika-parsers-standard-package</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ </dependency>
+
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <!-- Regenerate the committed registry with:
+ java -cp <module+deps classpath>
org.apache.tika.metadata.schema.SchemaGenerator \
+ src/main/resources/org/apache/tika/metadata/metadata-keys.json
+ MetadataSchemaTest regenerates in-memory and asserts no diff, so CI
catches drift. -->
+</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..4b4d189491
--- /dev/null
+++
b/tika-metadata-schema/src/main/java/org/apache/tika/metadata/schema/SchemaGenerator.java
@@ -0,0 +1,157 @@
+/*
+ * 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.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Enumeration;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+import org.apache.tika.digest.DigestDef;
+import org.apache.tika.metadata.Property;
+
+/**
+ * Generates the machine-readable metadata key registry ({@code
metadata-keys.json}) from the live
+ * {@link Property} declarations. Dependency-free: it scans the runtime
classpath for classes that
+ * declare a {@code Property} field, force-loads them (their static init
registers into the global
+ * {@code Property} table), then serializes that table as stable, sorted JSON.
+ *
+ * <p>The generated file is committed; {@code MetadataSchemaTest} regenerates
and asserts no diff,
+ * so the registry can never drift from the declarations.
+ */
+public final class SchemaGenerator {
+
+ // Field/parameter descriptor for org.apache.tika.metadata.Property in a
.class constant pool.
+ private static final byte[] PROP_DESC =
+
"Lorg/apache/tika/metadata/Property;".getBytes(StandardCharsets.ISO_8859_1);
+
+ private SchemaGenerator() {
+ }
+
+ /** @return the registry as stable JSON (sorted by key). */
+ public static String generate() throws Exception {
+ ClassLoader cl = SchemaGenerator.class.getClassLoader();
+ for (String entry :
System.getProperty("java.class.path").split(File.pathSeparator)) {
+ File f = new File(entry);
+ if (f.isDirectory()) {
+ scanDir(f, f.toPath(), cl);
+ } else if (f.getName().endsWith(".jar")) {
+ scanJar(f, cl);
+ }
+ }
+ Field fld = Property.class.getDeclaredField("PROPERTIES");
+ fld.setAccessible(true);
+ @SuppressWarnings("unchecked")
+ Map<String, Property> reg = (Map<String, Property>) fld.get(null);
+
+ TreeMap<String, String[]> entries = new TreeMap<>(); // key ->
[valueType, cardinality]
+ for (Map.Entry<String, Property> e : reg.entrySet()) {
+ entries.put(e.getKey(), new String[]{
+ e.getValue().getValueType().toString(),
e.getValue().getPropertyType().toString()});
+ }
+ // Digest keys are a CLOSED cross-product of the supported algorithms
and encodings, not an
+ // open template. Synthesize them via the real DigestDef.metadataKey()
so they can't drift.
+ for (DigestDef.Algorithm a : DigestDef.Algorithm.values()) {
+ for (DigestDef.Encoding enc : DigestDef.Encoding.values()) {
+ entries.put(new DigestDef(a, enc).metadataKey(), new
String[]{"TEXT", "SIMPLE"});
+ }
+ }
+ return toJson(entries);
+ }
+
+ private static void scanDir(File root, Path dir, ClassLoader cl) throws
IOException {
+ try (var stream = Files.walk(dir)) {
+ for (Path p : (Iterable<Path>) stream::iterator) {
+ if (!p.toString().endsWith(".class")) {
+ continue;
+ }
+ String rel =
root.toPath().relativize(p).toString().replace(File.separatorChar, '/');
+ maybeLoad(rel, Files.readAllBytes(p), cl);
+ }
+ }
+ }
+
+ private static void scanJar(File jar, ClassLoader cl) 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")) {
+ continue;
+ }
+ maybeLoad(je.getName(), jf.getInputStream(je).readAllBytes(),
cl);
+ }
+ }
+ }
+
+ private static void maybeLoad(String classPath, byte[] bytes, ClassLoader
cl) {
+ if (!classPath.startsWith("org/apache/tika/") || !contains(bytes,
PROP_DESC)) {
+ return;
+ }
+ String cn = classPath.substring(0, classPath.length() -
6).replace('/', '.');
+ try {
+ Class.forName(cn, true, cl); // static init registers any
Property constants
+ } catch (Throwable ignore) {
+ // classes whose static init needs an absent dependency are
skipped; the corpus test backs this
+ }
+ }
+
+ private static boolean contains(byte[] hay, byte[] needle) {
+ outer:
+ for (int i = 0; i <= hay.length - needle.length; i++) {
+ for (int j = 0; j < needle.length; j++) {
+ if (hay[i + j] != needle[j]) {
+ continue outer;
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ private static String toJson(TreeMap<String, String[]> entries) {
+ StringBuilder sb = new StringBuilder("[\n");
+ int i = 0;
+ int n = entries.size();
+ for (Map.Entry<String, String[]> e : entries.entrySet()) {
+ String k = e.getKey();
+ String ns = k.contains(":") ? k.substring(0, k.indexOf(':')) : "";
+ sb.append(" {\"key\":").append(quote(k))
+ .append(",\"namespace\":").append(quote(ns))
+ .append(",\"valueType\":\"").append(e.getValue()[0])
+ .append("\",\"cardinality\":\"").append(e.getValue()[1])
+ .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 {
+ Path out = Path.of(args[0]);
+ Files.writeString(out, generate());
+ System.out.println("wrote " + out);
+ }
+}
diff --git
a/tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-keys.json
b/tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-keys.json
new file mode 100644
index 0000000000..6a804c72ba
--- /dev/null
+++
b/tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-keys.json
@@ -0,0 +1,636 @@
+[
+
{"key":"Camera:MicroVideo","namespace":"Camera","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Camera:MicroVideoOffset","namespace":"Camera","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Camera:MicroVideoPresentationTimestampUs","namespace":"Camera","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Camera:MicroVideoVersion","namespace":"Camera","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Camera:MotionPhoto","namespace":"Camera","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Camera:MotionPhotoPresentationTimestampUs","namespace":"Camera","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Camera:MotionPhotoVersion","namespace":"Camera","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Content-Type-Hint","namespace":"","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Content-Type-Magic-Detected","namespace":"","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Content-Type-Override","namespace":"","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Content-Type-Parser-Override","namespace":"","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpCore:CiAdrCity","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpCore:CiAdrCtry","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpCore:CiAdrExtadr","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpCore:CiAdrPcode","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpCore:CiAdrRegion","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpCore:CiEmailWork","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpCore:CiTelWork","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpCore:CiUrlWork","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpCore:CountryCode","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpCore:CreatorContactInfo","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpCore:IntellectualGenre","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpCore:Location","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpCore:Scene","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpCore:SubjectCode","namespace":"Iptc4xmpCore","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:AOCopyrightNotice","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:AOCreator","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:AODateCreated","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:AOSource","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:AOSourceInvNo","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:AOTitle","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:AddlModelInfo","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:ArtworkOrObject","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:CVterm","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:DigImageGUID","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:DigitalSourceType","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:DigitalSourcefileType","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:Event","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:IptcLastEdited","namespace":"Iptc4xmpExt","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:LocationCreated","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:LocationCreatedCity","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:LocationCreatedCountryCode","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:LocationCreatedCountryName","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:LocationCreatedProvinceState","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:LocationCreatedSublocation","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:LocationCreatedWorldRegion","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:LocationShown","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:LocationShownCity","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:LocationShownCountryCode","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:LocationShownCountryName","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:LocationShownProvinceState","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:LocationShownSublocation","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:LocationShownWorldRegion","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:MaxAvailHeight","namespace":"Iptc4xmpExt","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:MaxAvailWidth","namespace":"Iptc4xmpExt","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"Iptc4xmpExt:ModelAge","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:OrganisationInImageCode","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:OrganisationInImageName","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:PersonInImage","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:RegItemId","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:RegOrgId","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Iptc4xmpExt:RegistryId","namespace":"Iptc4xmpExt","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:BCC-Display-Name","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:BCC-Email","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:BCC-Name","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:CC-Display-Name","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:CC-Email","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:CC-Name","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:From-Email","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:From-Name","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:To-Display-Name","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:To-Email","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"Message:To-Name","namespace":"Message","valueType":"TEXT","cardinality":"BAG"},
+ {"key":"Password","namespace":"","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:EXCEPTION:container_exception","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:EXCEPTION:embedded_bytes_exception","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:EXCEPTION:embedded_depth_limit_reached","namespace":"X-TIKA","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:EXCEPTION:embedded_exception","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:EXCEPTION:embedded_parser","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:EXCEPTION:embedded_resource_limit_reached","namespace":"X-TIKA","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:EXCEPTION:embedded_stream_exception","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:EXCEPTION:embedded_warning","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:EXCEPTION:warn","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:EXCEPTION:write_limit_reached","namespace":"X-TIKA","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:Parsed-By","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:Parsed-By-Full-Set","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:WARN:truncated_metadata","namespace":"X-TIKA","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:content","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:content_handler","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:content_handler_type","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:decodedCharset","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:detectedEncoding","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:detected_language","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:detected_language_confidence","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:detected_language_confidence_raw","namespace":"X-TIKA","valueType":"REAL","cardinality":"SEQ"},
+
{"key":"X-TIKA:detection_content_length","namespace":"X-TIKA","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:MD2","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:MD2:BASE32","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:MD2:BASE64","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:MD5","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:MD5:BASE32","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:MD5:BASE64","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA1","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA1:BASE32","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA1:BASE64","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA256","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA256:BASE32","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA256:BASE64","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA384","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA384:BASE32","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA384:BASE64","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA3_256","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA3_256:BASE32","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA3_256:BASE64","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA3_384","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA3_384:BASE32","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA3_384:BASE64","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA3_512","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA3_512:BASE32","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA3_512:BASE64","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA512","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA512:BASE32","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:digest:SHA512:BASE64","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:embeddedRelationshipId","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:embedded_depth","namespace":"X-TIKA","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:embedded_id","namespace":"X-TIKA","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:embedded_id_path","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:embedded_resource_path","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:encodingDetectionTrace","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:encodingDetector","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:encrypted","namespace":"X-TIKA","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:final_embedded_resource_path","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:internalPath","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:origResourceName","namespace":"X-TIKA","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"X-TIKA:parse_time_millis","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:pipes_result","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:resourceName","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:resourceNameExtensionInferred","namespace":"X-TIKA","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:sourcePath","namespace":"X-TIKA","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:truncated_content_for_detection","namespace":"X-TIKA","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:versionCount","namespace":"X-TIKA","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"X-TIKA:versionNumber","namespace":"X-TIKA","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"access_permission:assemble_document","namespace":"access_permission","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"access_permission:can_modify","namespace":"access_permission","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"access_permission:can_print","namespace":"access_permission","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"access_permission:can_print_faithful","namespace":"access_permission","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"access_permission:extract_content","namespace":"access_permission","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"access_permission:extract_for_accessibility","namespace":"access_permission","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"access_permission:fill_in_form","namespace":"access_permission","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"access_permission:modify_annotations","namespace":"access_permission","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"audio:bitrate","namespace":"audio","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"audio:disc-count","namespace":"audio","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"audio:has-drm","namespace":"audio","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"audio:is-variable-bitrate","namespace":"audio","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"audio:raw-disc-number","namespace":"audio","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"audio:raw-track-number","namespace":"audio","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"audio:track-count","namespace":"audio","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"aux:Lens","namespace":"aux","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"aux:LensID","namespace":"aux","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"aux:LensInfo","namespace":"aux","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"aux:SerialNumber","namespace":"aux","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"cp:category","namespace":"cp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"cp:contentStatus","namespace":"cp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"cp:lastModifiedBy","namespace":"cp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"cp:lastPrinted","namespace":"cp","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"cp:revision","namespace":"cp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"cp:subject","namespace":"cp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"cp:version","namespace":"cp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"csv:delimiter","namespace":"csv","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"csv:num_columns","namespace":"csv","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"csv:num_rows","namespace":"csv","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"database:column_count","namespace":"database","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"database:column_name","namespace":"database","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"database:row_count","namespace":"database","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"database:table_name","namespace":"database","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"dc:contributor","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"dc:coverage","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+ {"key":"dc:creator","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+ {"key":"dc:date","namespace":"dc","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"dc:description","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"dc:format","namespace":"dc","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"dc:identifier","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"dc:language","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"dc:publisher","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"dc:relation","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+ {"key":"dc:rights","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+ {"key":"dc:source","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+ {"key":"dc:subject","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+ {"key":"dc:title","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+ {"key":"dc:type","namespace":"dc","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"dcterms:created","namespace":"dcterms","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"dcterms:modified","namespace":"dcterms","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"dwg:applicationComment","namespace":"dwg","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"dwg:applicationName","namespace":"dwg","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"dwg:applicationVersion","namespace":"dwg","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"dwg:productInfo","namespace":"dwg","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"embeddedResourceType","namespace":"","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"emf:iconOnly","namespace":"emf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"emf:iconString","namespace":"emf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"epub:rendition:layout","namespace":"epub","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"epub:version","namespace":"epub","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"exif:DateTimeOriginal","namespace":"exif","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"exif:ExposureTime","namespace":"exif","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"exif:FNumber","namespace":"exif","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"exif:Flash","namespace":"exif","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"exif:FocalLength","namespace":"exif","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"exif:IsoSpeedRatings","namespace":"exif","valueType":"INTEGER","cardinality":"SEQ"},
+
{"key":"exif:PageCount","namespace":"exif","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"extended-properties:AppVersion","namespace":"extended-properties","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"extended-properties:Application","namespace":"extended-properties","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"extended-properties:Company","namespace":"extended-properties","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"extended-properties:DocSecurity","namespace":"extended-properties","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"extended-properties:DocSecurityString","namespace":"extended-properties","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"extended-properties:HiddedSlides","namespace":"extended-properties","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"extended-properties:Manager","namespace":"extended-properties","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"extended-properties:Notes","namespace":"extended-properties","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"extended-properties:PresentationFormat","namespace":"extended-properties","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"extended-properties:Template","namespace":"extended-properties","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"extended-properties:TotalTime","namespace":"extended-properties","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"external-process:exit-value","namespace":"external-process","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"external-process:stderr","namespace":"external-process","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"external-process:stderr-length","namespace":"external-process","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"external-process:stderr-truncated","namespace":"external-process","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"external-process:stdout","namespace":"external-process","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"external-process:stdout-length","namespace":"external-process","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"external-process:stdout-truncated","namespace":"external-process","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"external-process:timeout","namespace":"external-process","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"file:mime","namespace":"file","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"font:name","namespace":"font","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"fs:accessed","namespace":"fs","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"fs:created","namespace":"fs","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"fs:modified","namespace":"fs","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"geo:alt","namespace":"geo","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"geo:lat","namespace":"geo","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"geo:long","namespace":"geo","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"geo:timestamp","namespace":"geo","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"hasSignature","namespace":"","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"html:scriptSrc","namespace":"html","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"imagereader:NumImages","namespace":"imagereader","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"iworks:build-version-history","namespace":"iworks","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"iworks:document-id","namespace":"iworks","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"machine:architectureBits","namespace":"machine","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"machine:endian","namespace":"machine","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"machine:machineType","namespace":"machine","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"machine:platform","namespace":"machine","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:content-id","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:content-location","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:display-name","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:extension","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:file-name","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:flags","namespace":"mapi","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:hidden","namespace":"mapi","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:language","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:long-file-name","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:long-path-name","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:attach:mime","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:body-types-processed","namespace":"mapi","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"mapi:client-submit-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:conversation-index","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:conversation-topic","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:creation-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:deferred-delivery-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:deliver-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:expiry-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:from-representing-email","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:from-representing-name","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:importance","namespace":"mapi","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"mapi:in-reply-to-id","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:internet-message-id","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:internet-references","namespace":"mapi","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"mapi:is-flagged","namespace":"mapi","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"mapi:last-modification-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:latest-delivery-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:message-class","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:message-class-raw","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:message-delivery-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:message-download-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:msg-submission-accepted-at-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:msg-submission-id","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:original-delivery-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:original-submit-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:priority","namespace":"mapi","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"mapi:provider-submit-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:receipt-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:recipients-string","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"mapi:reply-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:report-time","namespace":"mapi","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"mapi:sent-by-server-type","namespace":"mapi","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"meta:author","namespace":"meta","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"meta:character-count","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"meta:character-count-with-spaces","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"meta:creation-date","namespace":"meta","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"meta:image-count","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"meta:initial-author","namespace":"meta","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"meta:keyword","namespace":"meta","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"meta:last-author","namespace":"meta","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"meta:line-count","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"meta:object-count","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"meta:page-count","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"meta:paragraph-count","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"meta:print-date","namespace":"meta","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"meta:save-date","namespace":"meta","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"meta:slide-count","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"meta:table-count","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"meta:word-count","namespace":"meta","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"msoffice:comment-person-display-name","namespace":"msoffice","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"msoffice:doc:has-attached-template","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:doc:has-framesets","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:doc:has-hidden-text","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:doc:has-mail-merge","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:doc:has-subdocuments","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:embeddedStorageClassId","namespace":"msoffice","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-data-connections","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-dde-links","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-external-links","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-external-pivot-data","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-hidden-cols","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-hidden-rows","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-hidden-sheets","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-power-query","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-very-hidden-sheets","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:has-web-queries","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:hidden-sheet-names","namespace":"msoffice","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"msoffice:excel:protected-worksheet","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:sheet-number","namespace":"msoffice","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"msoffice:excel:sheet-numbers","namespace":"msoffice","valueType":"INTEGER","cardinality":"SEQ"},
+
{"key":"msoffice:excel:very-hidden-sheet-names","namespace":"msoffice","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"msoffice:excel:workbook-codename","namespace":"msoffice","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"msoffice:has-comments","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:has-external-chart-data","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:has-external-ole-objects","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:has-field-hyperlinks","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:has-hover-hyperlinks","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:has-linked-ole-objects","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:has-track-changes","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:has-vml-hyperlinks","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:ocxName","namespace":"msoffice","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"msoffice:ppt:has-animations","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:ppt:has-hidden-slides","namespace":"msoffice","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"msoffice:ppt:num-hidden-slides","namespace":"msoffice","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"msoffice:ppt:num-unlisted-slides","namespace":"msoffice","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"msoffice:ppt:unlisted-slide-names","namespace":"msoffice","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"msoffice:progID","namespace":"msoffice","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:PDFExtensionVersion","namespace":"pdf","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"pdf:PDFVersion","namespace":"pdf","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"pdf:Trapped","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:actionTrigger","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:actionTriggers","namespace":"pdf","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"pdf:actionTypes","namespace":"pdf","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"pdf:annotationSubtypes","namespace":"pdf","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"pdf:annotationTypes","namespace":"pdf","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"pdf:associatedFileRelationship","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:charsPerPage","namespace":"pdf","valueType":"INTEGER","cardinality":"SEQ"},
+
{"key":"pdf:containsDamagedFont","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:containsNonEmbeddedFont","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:docinfo:created","namespace":"pdf","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"pdf:docinfo:creator","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:docinfo:creator_tool","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:docinfo:keywords","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:docinfo:modified","namespace":"pdf","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"pdf:docinfo:producer","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:docinfo:subject","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:docinfo:title","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:docinfo:trapped","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:embeddedFileAnnotationType","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:embeddedFileDescription","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:embeddedFileSubtype","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:encrypted","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:eofOffsets","namespace":"pdf","valueType":"REAL","cardinality":"SEQ"},
+
{"key":"pdf:has3D","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:hasAcroFormFields","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:hasCollection","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:hasMarkedContent","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:hasSignatureFields","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:hasXFA","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:hasXMP","namespace":"pdf","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"pdf:illustrator:type","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:incrementalUpdateCount","namespace":"pdf","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"pdf:incrementalUpdateNumber","namespace":"pdf","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"pdf:jsName","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:num3DAnnotations","namespace":"pdf","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"pdf:ocrPageCount","namespace":"pdf","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"pdf:overallPercentageUnmappedUnicodeChars","namespace":"pdf","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"pdf:producer","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdf:totalUnmappedUnicodeChars","namespace":"pdf","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"pdf:unmappedUnicodeCharsPerPage","namespace":"pdf","valueType":"INTEGER","cardinality":"SEQ"},
+
{"key":"pdf:xmpLocation","namespace":"pdf","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdfa:PDFVersion","namespace":"pdfa","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"pdfaid:conformance","namespace":"pdfaid","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdfaid:part","namespace":"pdfaid","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"pdfuaid:part","namespace":"pdfuaid","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"pdfvt:modified","namespace":"pdfvt","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"pdfvt:version","namespace":"pdfvt","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdfx:conformance","namespace":"pdfx","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdfx:version","namespace":"pdfx","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pdfxid:version","namespace":"pdfxid","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:AuthorsPosition","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:CaptionWriter","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:Category","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:City","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:ColorMode","namespace":"photoshop","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"photoshop:Country","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:Credit","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:DateCreated","namespace":"photoshop","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"photoshop:Headline","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:ICCProfile","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:Instructions","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:Source","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:State","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:SupplementalCategories","namespace":"photoshop","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"photoshop:TransmissionReference","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"photoshop:Urgency","namespace":"photoshop","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"plus:CopyrightOwner","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:CopyrightOwnerID","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:CopyrightOwnerId","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:CopyrightOwnerName","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:ImageCreator","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:ImageCreatorID","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:ImageCreatorId","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:ImageCreatorName","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:ImageSupplier","namespace":"plus","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"plus:ImageSupplierID","namespace":"plus","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"plus:ImageSupplierId","namespace":"plus","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"plus:ImageSupplierImageID","namespace":"plus","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"plus:ImageSupplierName","namespace":"plus","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"plus:Licensor","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorCity","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorCountry","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorEmail","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorExtendedAddress","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorID","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorId","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorName","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorPostalCode","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorRegion","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorStreetAddress","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorTelephone1","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorTelephone2","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:LicensorURL","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:MinorModelAgeDisclosure","namespace":"plus","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"plus:ModelReleaseID","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:ModelReleaseStatus","namespace":"plus","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"plus:PropertyReleaseID","namespace":"plus","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"plus:PropertyReleaseStatus","namespace":"plus","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"plus:Version","namespace":"plus","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pst:discriptorNodeId","namespace":"pst","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"pst:isValid","namespace":"pst","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"quicktime:still-image-time","namespace":"quicktime","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"rendering:Rendered-By","namespace":"rendering","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"rendering:pdfbox-image-writing-ms","namespace":"rendering","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"rendering:pdfbox-rendering-ms","namespace":"rendering","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"rendering:rendering-time-ms","namespace":"rendering","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"rtf_meta:contains_encapsulated_html","namespace":"rtf_meta","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"rtf_meta:emb_app_version","namespace":"rtf_meta","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"rtf_meta:emb_class","namespace":"rtf_meta","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"rtf_meta:emb_item","namespace":"rtf_meta","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"rtf_meta:emb_topic","namespace":"rtf_meta","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"rtf_meta:thumbnail","namespace":"rtf_meta","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"signature:contact-info","namespace":"signature","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"signature:date","namespace":"signature","valueType":"DATE","cardinality":"BAG"},
+
{"key":"signature:filter","namespace":"signature","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"signature:location","namespace":"signature","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"signature:name","namespace":"signature","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"signature:reason","namespace":"signature","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"tess:image_magick_processed","namespace":"tess","valueType":"BOOLEAN","cardinality":"SEQ"},
+
{"key":"tess:orientation","namespace":"tess","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"tess:orientation_confidence","namespace":"tess","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"tess:page_number","namespace":"tess","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"tess:rotate","namespace":"tess","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"tess:rotation","namespace":"tess","valueType":"REAL","cardinality":"SEQ"},
+
{"key":"tess:script","namespace":"tess","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"tess:script_confidence","namespace":"tess","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"tiff:BitsPerSample","namespace":"tiff","valueType":"INTEGER","cardinality":"SEQ"},
+
{"key":"tiff:ImageLength","namespace":"tiff","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"tiff:ImageWidth","namespace":"tiff","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"tiff:Make","namespace":"tiff","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"tiff:Model","namespace":"tiff","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"tiff:Orientation","namespace":"tiff","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"tiff:ResolutionUnit","namespace":"tiff","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"tiff:SamplesPerPixel","namespace":"tiff","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"tiff:Software","namespace":"tiff","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"tiff:XResolution","namespace":"tiff","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"tiff:YResolution","namespace":"tiff","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"tika_pg:page_number","namespace":"tika_pg","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"tika_pg:page_numbers","namespace":"tika_pg","valueType":"INTEGER","cardinality":"SEQ"},
+
{"key":"tika_pg:page_rotation","namespace":"tika_pg","valueType":"RATIONAL","cardinality":"SIMPLE"},
+ {"key":"w:Comments","namespace":"w","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"warc:WARC-Record-ID","namespace":"warc","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"warc:payload-content-type","namespace":"warc","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"warc:record-content-type","namespace":"warc","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"warc:warning","namespace":"warc","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"wordperfect:Build","namespace":"wordperfect","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"wordperfect:Encrypted","namespace":"wordperfect","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"wordperfect:FileId","namespace":"wordperfect","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"wordperfect:FileSize","namespace":"wordperfect","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"wordperfect:FileType","namespace":"wordperfect","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"wordperfect:Id","namespace":"wordperfect","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"wordperfect:LowestVersion","namespace":"wordperfect","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"wordperfect:MajorVersion","namespace":"wordperfect","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"wordperfect:MinorVersion","namespace":"wordperfect","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"wordperfect:ProductType","namespace":"wordperfect","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"wordperfect:Version","namespace":"wordperfect","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmlprofiler:entity_local_names","namespace":"xmlprofiler","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmlprofiler:entity_uris","namespace":"xmlprofiler","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmlprofiler:root_entity","namespace":"xmlprofiler","valueType":"TEXT","cardinality":"SIMPLE"},
+ {"key":"xmp:About","namespace":"xmp","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmp:Advisory","namespace":"xmp","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmp:CreateDate","namespace":"xmp","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmp:CreatorTool","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:Identifier","namespace":"xmp","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmp:Label","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:MetadataDate","namespace":"xmp","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmp:ModifyDate","namespace":"xmp","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmp:NickName","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:Rating","namespace":"xmp","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmp:Title","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:contributor","namespace":"xmp","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmp:dc:coverage","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:creator","namespace":"xmp","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmp:dc:date","namespace":"xmp","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:description","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:format","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:identifier","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:language","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:publisher","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:relation","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:rights","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:source","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:subject","namespace":"xmp","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmp:dc:title","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dc:type","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:dcterms:created","namespace":"xmp","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmp:dcterms:modified","namespace":"xmp","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmp:exif:DateTimeOriginal","namespace":"xmp","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmp:exif:IsoSpeedRatings","namespace":"xmp","valueType":"INTEGER","cardinality":"SEQ"},
+
{"key":"xmp:exif:PixelXDimension","namespace":"xmp","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmp:exif:PixelYDimension","namespace":"xmp","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmp:pdf:About","namespace":"xmp","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmp:pdf:Keywords","namespace":"xmp","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmp:pdf:PDFVersion","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:pdf:Producer","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:tiff:BitsPerSample","namespace":"xmp","valueType":"INTEGER","cardinality":"SEQ"},
+
{"key":"xmp:tiff:ImageLength","namespace":"xmp","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmp:tiff:ImageWidth","namespace":"xmp","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmp:tiff:Make","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:tiff:Model","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:tiff:Orientation","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmp:tiff:SamplesPerPixel","namespace":"xmp","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmp:tiff:Software","namespace":"xmp","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:absPeakAudioFilePath","namespace":"xmpDM","valueType":"URI","cardinality":"SIMPLE"},
+
{"key":"xmpDM:album","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:albumArtist","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:altTapeName","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:artist","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:audioChannelType","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:audioCompressor","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:audioModDate","namespace":"xmpDM","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:audioSampleRate","namespace":"xmpDM","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmpDM:audioSampleType","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:compilation","namespace":"xmpDM","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmpDM:composer","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:copyright","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:discNumber","namespace":"xmpDM","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmpDM:duration","namespace":"xmpDM","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"xmpDM:engineer","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:fileDataRate","namespace":"xmpDM","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"xmpDM:genre","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:instrument","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:key","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:logComment","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:loop","namespace":"xmpDM","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"xmpDM:metadataModDate","namespace":"xmpDM","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:numberOfBeats","namespace":"xmpDM","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"xmpDM:pullDown","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:relativePeakAudioFilePath","namespace":"xmpDM","valueType":"URI","cardinality":"SIMPLE"},
+
{"key":"xmpDM:releaseDate","namespace":"xmpDM","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:scaleType","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:scene","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:shotDate","namespace":"xmpDM","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:shotLocation","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:shotName","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:speakerPlacement","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:stretchMode","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:tapeName","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:tempo","namespace":"xmpDM","valueType":"REAL","cardinality":"SIMPLE"},
+
{"key":"xmpDM:timeSignature","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:trackNumber","namespace":"xmpDM","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmpDM:videoAlphaMode","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:videoAlphaUnityIsTransparent","namespace":"xmpDM","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"xmpDM:videoColorSpace","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:videoCompressor","namespace":"xmpDM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpDM:videoFieldOrder","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:videoFrameRate","namespace":"xmpDM","valueType":"OPEN_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:videoModDate","namespace":"xmpDM","valueType":"DATE","cardinality":"SIMPLE"},
+
{"key":"xmpDM:videoPixelAspectRatio","namespace":"xmpDM","valueType":"RATIONAL","cardinality":"SIMPLE"},
+
{"key":"xmpDM:videoPixelDepth","namespace":"xmpDM","valueType":"CLOSED_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpMM:DerivedFrom:DocumentID","namespace":"xmpMM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpMM:DerivedFrom:InstanceID","namespace":"xmpMM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpMM:DerivedFrom:OriginalDocumentID","namespace":"xmpMM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpMM:DerivedFrom:RenditionClass","namespace":"xmpMM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpMM:DocumentID","namespace":"xmpMM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpMM:History:Action","namespace":"xmpMM","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmpMM:History:Changed","namespace":"xmpMM","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmpMM:History:InstanceID","namespace":"xmpMM","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmpMM:History:Parameters","namespace":"xmpMM","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmpMM:History:SoftwareAgent","namespace":"xmpMM","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmpMM:History:When","namespace":"xmpMM","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmpMM:InstanceID","namespace":"xmpMM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpMM:OriginalDocumentID","namespace":"xmpMM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpMM:RenditionClass","namespace":"xmpMM","valueType":"OPEN_CHOICE","cardinality":"SIMPLE"},
+
{"key":"xmpMM:RenditionParams","namespace":"xmpMM","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpRights:Certificate","namespace":"xmpRights","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpRights:Marked","namespace":"xmpRights","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"xmpRights:Owner","namespace":"xmpRights","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"xmpRights:UsageTerms","namespace":"xmpRights","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpRights:WebStatement","namespace":"xmpRights","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"xmpTPg:NPages","namespace":"xmpTPg","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"xmpidq:Scheme","namespace":"xmpidq","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"zip:centralDirectoryOnlyEntries","namespace":"zip","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"zip:comment","namespace":"zip","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"zip:compressedSize","namespace":"zip","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"zip:compressionMethod","namespace":"zip","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"zip:crc32","namespace":"zip","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"zip:detectorDataDescriptorRequired","namespace":"zip","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"zip:detectorZipFileOpened","namespace":"zip","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"zip:duplicateEntryNames","namespace":"zip","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"zip:encrypted","namespace":"zip","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"zip:integrityCheckResult","namespace":"zip","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"zip:localHeaderOnlyEntries","namespace":"zip","valueType":"TEXT","cardinality":"BAG"},
+
{"key":"zip:platform","namespace":"zip","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"zip:salvaged","namespace":"zip","valueType":"BOOLEAN","cardinality":"SIMPLE"},
+
{"key":"zip:uncompressedSize","namespace":"zip","valueType":"TEXT","cardinality":"SIMPLE"},
+
{"key":"zip:unixMode","namespace":"zip","valueType":"INTEGER","cardinality":"SIMPLE"},
+
{"key":"zip:versionMadeBy","namespace":"zip","valueType":"INTEGER","cardinality":"SIMPLE"}
+]
diff --git
a/tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-open-namespaces.json
b/tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-open-namespaces.json
new file mode 100644
index 0000000000..40eae02925
--- /dev/null
+++
b/tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-open-namespaces.json
@@ -0,0 +1,38 @@
+{
+ "_note": "Open / passthrough namespaces and templates. These keys are minted
at RUNTIME (their names come from the document, an external tool, or a per-item
qualifier), so they are NOT registered Property constants and do NOT appear in
metadata-keys.json. This file is CURATED (hand-maintained, reviewed), not
generated, and may not be exhaustive; the closed-namespace lint is the intended
completeness backstop. provenance: 'file' = key name taken from document
content; 'tool' = key name [...]
+
+ "open-namespaces": [
+ {"prefix": "html:", "provenance": "file", "note": "scraped HTML
<meta>/http-equiv/OpenGraph names"},
+ {"prefix": "custom:", "provenance": "file", "note": "OOXML/OLE2/ODF
user-defined document properties"},
+ {"prefix": "pdf:docinfo:custom:", "provenance": "file", "note": "PDF
Info-dictionary custom keys"},
+ {"prefix": "Message:Raw-Header:", "provenance": "file", "note": "RFC822 /
Outlook raw email header names"},
+ {"prefix": "MboxParser-", "provenance": "file", "note": "mbox header
names"},
+ {"prefix": "warc:", "provenance": "file", "note": "WARC record + HTTP
response header names (also warc:http:)"},
+ {"prefix": "mapi:property:", "provenance": "file", "note": "MSG MAPI named
properties"},
+ {"prefix": "MDB_PROP:", "provenance": "file", "note": "MS Access document
properties (also MDB_SUMMARY_PROP:, MDB_USER_PROP:)"},
+ {"prefix": "img:", "provenance": "file", "note": "ImageIO/drewnoakes
unrecognized image tag names (also ICC:)"},
+ {"prefix": "dwg-custom:", "provenance": "file", "note": "DWG custom
properties (DWGParser)"},
+ {"prefix": "dwg:", "provenance": "file", "note": "DWGRead JSON field
passthrough"},
+ {"prefix": "iworks:", "provenance": "file", "note": "iWork '13 package
plist keys"},
+ {"prefix": "numbers:", "provenance": "file", "note": "iWork Numbers
element names"},
+ {"prefix": "flv:", "provenance": "file", "note": "FLV onMetaData
ECMA-array keys"},
+ {"prefix": "vorbis:", "provenance": "file", "note":
"Vorbis/FLAC/Opus/Speex comment field names"},
+ {"prefix": "streams-", "provenance": "file", "note": "Ogg per-stream
metadata"},
+ {"prefix": "grib:", "provenance": "file", "note": "GRIB global attribute
names"},
+ {"prefix": "netcdf:", "provenance": "file", "note": "NetCDF global
attribute names"},
+ {"prefix": "envi.", "provenance": "file", "note": "ENVI header field
names"},
+ {"prefix": "rtf_pict:", "provenance": "file", "note": "RTF embedded-object
\\sn/\\sv keys"},
+ {"prefix": "grobid:header_", "provenance": "tool", "note": "GROBID TEI
header fields"},
+ {"prefix": "NER_", "provenance": "tool", "note": "named-entity types
(NamedEntityParser)"},
+ {"prefix": "ctakes:", "provenance": "tool", "note": "cTAKES/UIMA type
names"}
+ ],
+
+ "templates": [
+ {
+ "pattern": "<base-key>:<BCP-47-language-tag>",
+ "provenance": "file",
+ "note": "XMP rdf:Alt language variants, e.g. dc:title:x-default,
dc:title:fr. The unqualified base key holds the x-default value; to type a
variant, resolve to its base key. NOTE: the language qualifier reuses ':' so
'dc:title:fr' is only disambiguated from a sub-namespace by this rule.",
+ "example-base-keys": ["dc:title", "dc:description", "dc:rights",
"xmpRights:UsageTerms"]
+ }
+ ]
+}
diff --git
a/tika-metadata-schema/src/test/java/org/apache/tika/metadata/schema/MetadataSchemaTest.java
b/tika-metadata-schema/src/test/java/org/apache/tika/metadata/schema/MetadataSchemaTest.java
new file mode 100644
index 0000000000..eff7626df5
--- /dev/null
+++
b/tika-metadata-schema/src/test/java/org/apache/tika/metadata/schema/MetadataSchemaTest.java
@@ -0,0 +1,48 @@
+/*
+ * 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;
+
+/**
+ * The CI gate: regenerate the registry from the live {@link
org.apache.tika.metadata.Property}
+ * declarations and assert it matches the committed {@code
metadata-keys.json}. If a Property is
+ * added/changed/renamed without regenerating, this fails — the registry
cannot silently drift.
+ */
+public class MetadataSchemaTest {
+
+ private static final String RESOURCE =
"/org/apache/tika/metadata/metadata-keys.json";
+
+ @Test
+ public void committedRegistryMatchesDeclarations() throws Exception {
+ String committed;
+ try (InputStream in =
MetadataSchemaTest.class.getResourceAsStream(RESOURCE)) {
+ assertNotNull(in, "committed " + RESOURCE + " is missing");
+ committed = new String(in.readAllBytes(), StandardCharsets.UTF_8);
+ }
+ String regenerated = SchemaGenerator.generate();
+ assertEquals(committed, regenerated,
+ "metadata-keys.json is stale. Run `mvn -pl
tika-metadata-schema exec:java` "
+ + "(or SchemaGenerator.main) and commit the
regenerated file.");
+ }
+}