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.");
+    }
+}

Reply via email to