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

tballison pushed a commit to branch metadata-key-format-kebab
in repository https://gitbox.apache.org/repos/asf/tika.git

commit f3ca90885d004b4867237b11686659c5bba734cb
Author: tallison <[email protected]>
AuthorDate: Thu Jul 23 15:15:18 2026 -0400

    Step 2 -- push kebab formatting in more parsers
---
 .../ROOT/pages/advanced/embedded-documents.adoc    |   4 +-
 .../ROOT/pages/advanced/setting-limits.adoc        |   2 +-
 .../modules/ROOT/pages/advanced/zip-detection.adoc |   4 +-
 .../pages/migration-to-4x/metadata-changes-4x.adoc | 105 +++++++++++++++++++++
 .../test/java/org/apache/tika/cli/TikaCLITest.java |   2 +-
 .../apache/tika/metadata/AccessPermissions.java    |  18 ++--
 .../main/java/org/apache/tika/metadata/DWG.java    |   8 +-
 .../java/org/apache/tika/metadata/Database.java    |   8 +-
 .../main/java/org/apache/tika/metadata/Office.java |   6 +-
 .../tika/metadata/OfficeOpenXMLExtended.java       |   4 +-
 .../main/java/org/apache/tika/metadata/PDF.java    |  66 ++++++-------
 .../main/java/org/apache/tika/metadata/PST.java    |   4 +-
 .../java/org/apache/tika/metadata/QuattroPro.java  |   8 +-
 .../java/org/apache/tika/metadata/WordPerfect.java |  14 +--
 .../main/java/org/apache/tika/metadata/Zip.java    |  22 ++---
 .../resources/test-dirs/extractsA/file15_tags.json |  22 ++---
 .../test-dirs/extractsA/file16_badTags.json        |  22 ++---
 .../test-dirs/extractsA/file17_tagsOutOfOrder.json |  22 ++---
 .../test-dirs/extractsA/file6_accessEx.pdf.json    |  16 ++--
 .../test-dirs/extractsA/file8_IOEx.pdf.json        |  16 ++--
 .../test-dirs/extractsB/file6_accessEx.pdf.json    |  16 ++--
 .../test-dirs/extractsB/file8_IOEx.pdf.json        |  16 ++--
 .../test/resources/test-dirs/raw_input/file15_tags |  22 ++---
 .../resources/test-dirs/raw_input/file16_badTags   |  22 ++---
 .../test-dirs/raw_input/file17_tagsOutOfOrder      |  22 ++---
 .../tika/parser/AutoDetectParserConfigTest.java    |   2 +-
 .../java/org/apache/tika/parser/pdf/PDFParser.java |   4 +-
 .../org/apache/tika/parser/pdf/PDFParserTest.java  |   6 +-
 .../tika/pipes/core/MetadataWriteLimiterTest.java  |   6 +-
 29 files changed, 297 insertions(+), 192 deletions(-)

diff --git a/docs/modules/ROOT/pages/advanced/embedded-documents.adoc 
b/docs/modules/ROOT/pages/advanced/embedded-documents.adoc
index b61a820eec..b8772989dd 100644
--- a/docs/modules/ROOT/pages/advanced/embedded-documents.adoc
+++ b/docs/modules/ROOT/pages/advanced/embedded-documents.adoc
@@ -122,7 +122,7 @@ Microsoft Office formats use additional identifiers for 
embedded objects.
 A Microsoft-specific identifier used internally to reference embedded objects 
within
 Office documents. This is the relationship ID from the Office Open XML or OLE 
structure.
 
-`Office.EMBEDDED_STORAGE_CLASS_ID` (`msoffice:embeddedStorageClassId`)::
+`Office.EMBEDDED_STORAGE_CLASS_ID` (`msoffice:embedded-storage-class-id`)::
 A UUID that identifies the class of embedded object in Microsoft formats. 
While not
 exactly a MIME type, it provides similar information about what type of object 
is
 embedded. Defined in the `Office` metadata class.
@@ -166,7 +166,7 @@ embedded. Defined in the `Office` metadata class.
 |Container (MS)
 
 |`Office.EMBEDDED_STORAGE_CLASS_ID`
-|`msoffice:embeddedStorageClassId`
+|`msoffice:embedded-storage-class-id`
 |Container (MS)
 |===
 
diff --git a/docs/modules/ROOT/pages/advanced/setting-limits.adoc 
b/docs/modules/ROOT/pages/advanced/setting-limits.adoc
index c9b39bae01..bb0f0588f0 100644
--- a/docs/modules/ROOT/pages/advanced/setting-limits.adoc
+++ b/docs/modules/ROOT/pages/advanced/setting-limits.adoc
@@ -423,7 +423,7 @@ Use this to extract only the metadata you need.
       "maxKeySize": 1024,
       "maxValuesPerField": 100,
       "includeFields": ["dc:title", "dc:creator", "dc:subject"],
-      "excludeFields": ["pdf:unmappedUnicodeCharsPerPage"]
+      "excludeFields": ["pdf:unmapped-unicode-chars-per-page"]
     }
   }
 }
diff --git a/docs/modules/ROOT/pages/advanced/zip-detection.adoc 
b/docs/modules/ROOT/pages/advanced/zip-detection.adoc
index a91bf8f19f..f362b0cc93 100644
--- a/docs/modules/ROOT/pages/advanced/zip-detection.adoc
+++ b/docs/modules/ROOT/pages/advanced/zip-detection.adoc
@@ -90,10 +90,10 @@ parser.parse(inputStream, handler, metadata, context);  // 
May fail on truncated
 
 The detector also sets additional metadata hints for parsers:
 
-`zip:detectorZipFileOpened`:: `true` if the detector successfully opened the 
ZIP as a `ZipFile`.
+`zip:detector-zip-file-opened`:: `true` if the detector successfully opened 
the ZIP as a `ZipFile`.
 The `ZipFile` object is available via `TikaInputStream.getOpenContainer()` for 
reuse by parsers.
 
-`zip:detectorDataDescriptorRequired`:: `true` if streaming detection required
+`zip:detector-data-descriptor-required`:: `true` if streaming detection 
required
 DATA_DESCRIPTOR support. This hint helps parsers choose the correct streaming 
mode.
 
 == Related Topics
diff --git a/docs/modules/ROOT/pages/migration-to-4x/metadata-changes-4x.adoc 
b/docs/modules/ROOT/pages/migration-to-4x/metadata-changes-4x.adoc
index ebd5bd7b83..2532c19a2f 100644
--- a/docs/modules/ROOT/pages/migration-to-4x/metadata-changes-4x.adoc
+++ b/docs/modules/ROOT/pages/migration-to-4x/metadata-changes-4x.adoc
@@ -158,6 +158,111 @@ Open key families migrate by prefix, suffix preserved 
verbatim (e.g. digest algo
 |===
 
 
+== Format-namespace key casing
+
+The same casing rule applies *inside* format namespaces, decided by **who 
authored the key
+name**: names Tika coined are kebab-cased; names that come from the file or an 
external
+standard/schema keep their verbatim spelling. So the namespace prefix (the 
domain) is
+independent of casing (the name's origin).
+
+- **Kebab-cased** (Tika-coined names): `pdf:` structural flags 
(`pdf:hasMarkedContent` ->
+  `pdf:has-marked-content`), `access-permission:`, `zip:`, `database:`, 
`pst:`, `dwg:`,
+  `wordperfect:`, `quattropro:`, and the few camelCase `msoffice:` stragglers.
+- **Left verbatim** (standard/schema/file names): Dublin Core (`dc:`), the XMP 
schemas
+  (`xmp*:`), EXIF/`tiff:`, `iptc:`, `photoshop:`, `geo:`, the CF/CMIP 
attributes under `cf:`,
+  MAPI property names, email headers, the ECMA-376 OOXML core/extended 
property names
+  (`AppVersion`, `lastModifiedBy`, `TotalTime`, …), and the PDF/A/X/VT/UA 
sub-namespaces
+  (`pdfaid:`, `pdfx:`, …) and PDF Info-dict names (`pdf:Trapped`, 
`pdf:docinfo:producer`, …).
+
+(The `access_permission:` prefix is also normalized to `access-permission:`. 
The
+`extended-properties:HiddedSlides` entry additionally corrects a long-standing 
spelling typo.)
+
+.3.x -> 4.0.0 format-namespace key casing
+[cols="1,1"]
+|===
+|3.x key |4.0.0 key
+
+|`access_permission:assemble_document` |`access-permission:assemble-document`
+|`access_permission:can_modify` |`access-permission:can-modify`
+|`access_permission:can_print` |`access-permission:can-print`
+|`access_permission:can_print_faithful` |`access-permission:can-print-faithful`
+|`access_permission:extract_content` |`access-permission:extract-content`
+|`access_permission:extract_for_accessibility` 
|`access-permission:extract-for-accessibility`
+|`access_permission:fill_in_form` |`access-permission:fill-in-form`
+|`access_permission:modify_annotations` |`access-permission:modify-annotations`
+|`database:column_count` |`database:column-count`
+|`database:column_name` |`database:column-name`
+|`database:row_count` |`database:row-count`
+|`database:table_name` |`database:table-name`
+|`dwg:applicationComment` |`dwg:application-comment`
+|`dwg:applicationName` |`dwg:application-name`
+|`dwg:applicationVersion` |`dwg:application-version`
+|`dwg:productInfo` |`dwg:product-info`
+|`extended-properties:HiddedSlides` |`extended-properties:HiddenSlides`
+|`extended-properties:DocSecurityString` 
|`extended-properties:doc-security-string`
+|`msoffice:embeddedStorageClassId` |`msoffice:embedded-storage-class-id`
+|`msoffice:ocxName` |`msoffice:ocx-name`
+|`msoffice:progID` |`msoffice:prog-id`
+|`pdf:actionTrigger` |`pdf:action-trigger`
+|`pdf:actionTriggers` |`pdf:action-triggers`
+|`pdf:actionTypes` |`pdf:action-types`
+|`pdf:annotationSubtypes` |`pdf:annotation-subtypes`
+|`pdf:annotationTypes` |`pdf:annotation-types`
+|`pdf:associatedFileRelationship` |`pdf:associated-file-relationship`
+|`pdf:charsPerPage` |`pdf:chars-per-page`
+|`pdf:containsDamagedFont` |`pdf:contains-damaged-font`
+|`pdf:containsNonEmbeddedFont` |`pdf:contains-non-embedded-font`
+|`pdf:docinfo:creator_tool` |`pdf:docinfo:creator-tool`
+|`pdf:embeddedFileAnnotationType` |`pdf:embedded-file-annotation-type`
+|`pdf:embeddedFileDescription` |`pdf:embedded-file-description`
+|`pdf:embeddedFileSubtype` |`pdf:embedded-file-subtype`
+|`pdf:eofOffsets` |`pdf:eof-offsets`
+|`pdf:has3D` |`pdf:has-3d`
+|`pdf:hasAcroFormFields` |`pdf:has-acro-form-fields`
+|`pdf:hasCollection` |`pdf:has-collection`
+|`pdf:hasMarkedContent` |`pdf:has-marked-content`
+|`pdf:hasSignatureFields` |`pdf:has-signature-fields`
+|`pdf:hasXFA` |`pdf:has-xfa`
+|`pdf:hasXMP` |`pdf:has-xmp`
+|`pdf:incrementalUpdateCount` |`pdf:incremental-update-count`
+|`pdf:incrementalUpdateNumber` |`pdf:incremental-update-number`
+|`pdf:jsName` |`pdf:js-name`
+|`pdf:num3DAnnotations` |`pdf:num-3d-annotations`
+|`pdf:ocrPageCount` |`pdf:ocr-page-count`
+|`pdf:overallPercentageUnmappedUnicodeChars` 
|`pdf:overall-percentage-unmapped-unicode-chars`
+|`pdf:PDFExtensionVersion` |`pdf:pdf-extension-version`
+|`pdf:PDFVersion` |`pdf:pdf-version`
+|`pdf:totalUnmappedUnicodeChars` |`pdf:total-unmapped-unicode-chars`
+|`pdf:unmappedUnicodeCharsPerPage` |`pdf:unmapped-unicode-chars-per-page`
+|`pdf:xmpLocation` |`pdf:xmp-location`
+|`pdfa:PDFVersion` |`pdfa:pdf-version`
+|`pst:discriptorNodeId` |`pst:discriptor-node-id`
+|`pst:isValid` |`pst:is-valid`
+|`quattropro:Build` |`quattropro:build`
+|`quattropro:Id` |`quattropro:id`
+|`quattropro:LowestVersion` |`quattropro:lowest-version`
+|`quattropro:Version` |`quattropro:version`
+|`wordperfect:Encrypted` |`wordperfect:encrypted`
+|`wordperfect:FileId` |`wordperfect:file-id`
+|`wordperfect:FileSize` |`wordperfect:file-size`
+|`wordperfect:FileType` |`wordperfect:file-type`
+|`wordperfect:MajorVersion` |`wordperfect:major-version`
+|`wordperfect:MinorVersion` |`wordperfect:minor-version`
+|`wordperfect:ProductType` |`wordperfect:product-type`
+|`zip:centralDirectoryOnlyEntries` |`zip:central-directory-only-entries`
+|`zip:compressedSize` |`zip:compressed-size`
+|`zip:compressionMethod` |`zip:compression-method`
+|`zip:detectorDataDescriptorRequired` |`zip:detector-data-descriptor-required`
+|`zip:detectorZipFileOpened` |`zip:detector-zip-file-opened`
+|`zip:duplicateEntryNames` |`zip:duplicate-entry-names`
+|`zip:integrityCheckResult` |`zip:integrity-check-result`
+|`zip:localHeaderOnlyEntries` |`zip:local-header-only-entries`
+|`zip:uncompressedSize` |`zip:uncompressed-size`
+|`zip:unixMode` |`zip:unix-mode`
+|`zip:versionMadeBy` |`zip:version-made-by`
+|===
+
+
 == Migration Steps
 
 When upgrading to Tika 4.x, you will need to update any code that references 
metadata keys
diff --git a/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java 
b/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
index 2f61e76f43..89bacdc3ee 100644
--- a/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
+++ b/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
@@ -253,7 +253,7 @@ public class TikaCLITest {
     public void testDefaultPDFIncrementalUpdateSettings() throws Exception {
         String json = getParamOutContent("-J",
                 resourcePrefix + "testPDF_incrementalUpdates.pdf");
-        assertTrue(json.contains("pdf:incrementalUpdateCount\":\"2\""));
+        assertTrue(json.contains("pdf:incremental-update-count\":\"2\""));
         assertTrue(json.contains("tk:embedded-resource-type\":\"VERSION\""));
     }
 
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/AccessPermissions.java 
b/tika-core/src/main/java/org/apache/tika/metadata/AccessPermissions.java
index 82edde584d..831949bb80 100644
--- a/tika-core/src/main/java/org/apache/tika/metadata/AccessPermissions.java
+++ b/tika-core/src/main/java/org/apache/tika/metadata/AccessPermissions.java
@@ -24,49 +24,49 @@ package org.apache.tika.metadata;
 public interface AccessPermissions {
 
     String PREFIX =
-            "access_permission" + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER;
+            "access-permission" + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER;
 
     /**
      * Can any modifications be made to the document
      */
-    Property CAN_MODIFY = Property.externalTextBag(PREFIX + "can_modify");
+    Property CAN_MODIFY = Property.externalTextBag(PREFIX + "can-modify");
 
     /**
      * Should content be extracted, generally.
      */
-    Property EXTRACT_CONTENT = Property.externalText(PREFIX + 
"extract_content");
+    Property EXTRACT_CONTENT = Property.externalText(PREFIX + 
"extract-content");
 
     /**
      * Should content be extracted for the purposes
      * of accessibility.
      */
     Property EXTRACT_FOR_ACCESSIBILITY =
-            Property.externalText(PREFIX + "extract_for_accessibility");
+            Property.externalText(PREFIX + "extract-for-accessibility");
 
     /**
      * Can the user insert/rotate/delete pages.
      */
-    Property ASSEMBLE_DOCUMENT = Property.externalText(PREFIX + 
"assemble_document");
+    Property ASSEMBLE_DOCUMENT = Property.externalText(PREFIX + 
"assemble-document");
 
 
     /**
      * Can the user fill in a form
      */
-    Property FILL_IN_FORM = Property.externalText(PREFIX + "fill_in_form");
+    Property FILL_IN_FORM = Property.externalText(PREFIX + "fill-in-form");
 
     /**
      * Can the user modify annotations
      */
-    Property CAN_MODIFY_ANNOTATIONS = Property.externalText(PREFIX + 
"modify_annotations");
+    Property CAN_MODIFY_ANNOTATIONS = Property.externalText(PREFIX + 
"modify-annotations");
 
     /**
      * Can the user print the document
      */
-    Property CAN_PRINT = Property.externalText(PREFIX + "can_print");
+    Property CAN_PRINT = Property.externalText(PREFIX + "can-print");
 
     /**
      * Can the user print an image-degraded version of the document.
      */
-    Property CAN_PRINT_FAITHFUL = Property.externalText(PREFIX + 
"can_print_faithful");
+    Property CAN_PRINT_FAITHFUL = Property.externalText(PREFIX + 
"can-print-faithful");
 
 }
diff --git a/tika-core/src/main/java/org/apache/tika/metadata/DWG.java 
b/tika-core/src/main/java/org/apache/tika/metadata/DWG.java
index 99f5946c70..a8876f6a91 100644
--- a/tika-core/src/main/java/org/apache/tika/metadata/DWG.java
+++ b/tika-core/src/main/java/org/apache/tika/metadata/DWG.java
@@ -23,11 +23,11 @@ public interface DWG {
 
     String DWG_PREFIX = "dwg" + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER;
 
-    Property APPLICATION_NAME = Property.externalText(DWG_PREFIX + 
"applicationName");
+    Property APPLICATION_NAME = Property.externalText(DWG_PREFIX + 
"application-name");
 
-    Property APPLICATION_VERSION = Property.externalText(DWG_PREFIX + 
"applicationVersion");
+    Property APPLICATION_VERSION = Property.externalText(DWG_PREFIX + 
"application-version");
 
-    Property APPLICATION_COMMENT = Property.externalText(DWG_PREFIX + 
"applicationComment");
+    Property APPLICATION_COMMENT = Property.externalText(DWG_PREFIX + 
"application-comment");
 
-    Property PRODUCT_INFO = Property.externalText(DWG_PREFIX + "productInfo");
+    Property PRODUCT_INFO = Property.externalText(DWG_PREFIX + "product-info");
 }
diff --git a/tika-core/src/main/java/org/apache/tika/metadata/Database.java 
b/tika-core/src/main/java/org/apache/tika/metadata/Database.java
index 736213942b..5bf2e56f50 100644
--- a/tika-core/src/main/java/org/apache/tika/metadata/Database.java
+++ b/tika-core/src/main/java/org/apache/tika/metadata/Database.java
@@ -19,8 +19,8 @@ package org.apache.tika.metadata;
 public interface Database {
     String PREFIX = "database" + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER;
 
-    Property TABLE_NAME = Property.externalTextBag(PREFIX + "table_name");
-    Property ROW_COUNT = Property.externalInteger(PREFIX + "row_count");
-    Property COLUMN_COUNT = Property.externalInteger(PREFIX + "column_count");
-    Property COLUMN_NAME = Property.externalTextBag(PREFIX + "column_name");
+    Property TABLE_NAME = Property.externalTextBag(PREFIX + "table-name");
+    Property ROW_COUNT = Property.externalInteger(PREFIX + "row-count");
+    Property COLUMN_COUNT = Property.externalInteger(PREFIX + "column-count");
+    Property COLUMN_NAME = Property.externalTextBag(PREFIX + "column-name");
 }
diff --git a/tika-core/src/main/java/org/apache/tika/metadata/Office.java 
b/tika-core/src/main/java/org/apache/tika/metadata/Office.java
index 51e4ebb0d9..8246f630c8 100644
--- a/tika-core/src/main/java/org/apache/tika/metadata/Office.java
+++ b/tika-core/src/main/java/org/apache/tika/metadata/Office.java
@@ -149,11 +149,11 @@ public interface Office {
      * Embedded files may have a "progID" associated with them, such as
      * Word.Document.12 or AcroExch.Document.DC
      */
-    Property PROG_ID = Property.internalText("msoffice:progID");
+    Property PROG_ID = Property.internalText("msoffice:prog-id");
 
-    Property OCX_NAME = Property.internalText("msoffice:ocxName");
+    Property OCX_NAME = Property.internalText("msoffice:ocx-name");
 
-    Property EMBEDDED_STORAGE_CLASS_ID = 
Property.internalText("msoffice:embeddedStorageClassId");
+    Property EMBEDDED_STORAGE_CLASS_ID = 
Property.internalText("msoffice:embedded-storage-class-id");
 
     Property HAS_HIDDEN_SHEETS = 
Property.internalBoolean("msoffice:excel:has-hidden-sheets");
 
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/OfficeOpenXMLExtended.java 
b/tika-core/src/main/java/org/apache/tika/metadata/OfficeOpenXMLExtended.java
index 6919c216b6..54885b7c5c 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/OfficeOpenXMLExtended.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/OfficeOpenXMLExtended.java
@@ -61,7 +61,7 @@ public interface OfficeOpenXMLExtended {
             PREFIX + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + 
"TotalTime");
 
     Property HIDDEN_SLIDES = Property.externalInteger(
-            PREFIX + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + 
"HiddedSlides");
+            PREFIX + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + 
"HiddenSlides");
 
     Property APPLICATION = Property.externalText(
             PREFIX + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + 
"Application");
@@ -74,7 +74,7 @@ public interface OfficeOpenXMLExtended {
 
     //Human readable string explaining doc security flag
     Property DOC_SECURITY_STRING = Property.externalClosedChoise(
-            PREFIX + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + 
"DocSecurityString",
+            PREFIX + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + 
"doc-security-string",
             SECURITY_NONE, SECURITY_PASSWORD_PROTECTED, 
SECURITY_READ_ONLY_RECOMMENDED,
             SECURITY_READ_ONLY_ENFORCED, SECURITY_LOCKED_FOR_ANNOTATIONS, 
SECURITY_UNKNOWN);
 
diff --git a/tika-core/src/main/java/org/apache/tika/metadata/PDF.java 
b/tika-core/src/main/java/org/apache/tika/metadata/PDF.java
index 1f6d9c3284..26080e3655 100644
--- a/tika-core/src/main/java/org/apache/tika/metadata/PDF.java
+++ b/tika-core/src/main/java/org/apache/tika/metadata/PDF.java
@@ -36,7 +36,7 @@ public interface PDF {
      * end of the file.  This does not include an %%EOF
      * if the startxref=0, as would happen in a dummy %%EOF in a linearized 
PDF.
      */
-    Property EOF_OFFSETS = Property.externalRealSeq(PDF_PREFIX + "eofOffsets");
+    Property EOF_OFFSETS = Property.externalRealSeq(PDF_PREFIX + 
"eof-offsets");
 
     /** Trapped flag from the XMP {@code pdf:} schema; docinfo counterpart 
{@link #DOC_INFO_TRAPPED}. */
     Property TRAPPED = Property.internalText(PDF_PREFIX + "Trapped");
@@ -55,7 +55,7 @@ public interface PDF {
 
     Property DOC_INFO_CREATOR = Property.internalText(PDF_DOC_INFO_PREFIX + 
"creator");
 
-    Property DOC_INFO_CREATOR_TOOL = Property.internalText(PDF_DOC_INFO_PREFIX 
+ "creator_tool");
+    Property DOC_INFO_CREATOR_TOOL = Property.internalText(PDF_DOC_INFO_PREFIX 
+ "creator-tool");
 
     Property DOC_INFO_MODIFICATION_DATE = 
Property.internalDate(PDF_DOC_INFO_PREFIX + "modified");
 
@@ -69,10 +69,10 @@ public interface PDF {
 
     Property DOC_INFO_TRAPPED = Property.internalText(PDF_DOC_INFO_PREFIX + 
"trapped");
 
-    Property PDF_VERSION = Property.internalRational(PDF_PREFIX + 
"PDFVersion");
-    Property PDFA_VERSION = Property.internalRational(PDFA_PREFIX + 
"PDFVersion");
+    Property PDF_VERSION = Property.internalRational(PDF_PREFIX + 
"pdf-version");
+    Property PDFA_VERSION = Property.internalRational(PDFA_PREFIX + 
"pdf-version");
 
-    Property PDF_EXTENSION_VERSION = Property.internalRational(PDF_PREFIX + 
"PDFExtensionVersion");
+    Property PDF_EXTENSION_VERSION = Property.internalRational(PDF_PREFIX + 
"pdf-extension-version");
 
     Property PDFAID_CONFORMANCE = Property.internalText(PDFAID_PREFIX + 
"conformance");
 
@@ -100,104 +100,104 @@ public interface PDF {
      *
      * This is included in the embedded document (js only for now?), not the 
container PDF.
      */
-    Property ACTION_TRIGGER = Property.internalText(PDF_PREFIX + 
"actionTrigger");
+    Property ACTION_TRIGGER = Property.internalText(PDF_PREFIX + 
"action-trigger");
 
     /**
      * This is a list of all action or destination triggers contained
      * within a given PDF.
      */
-    Property ACTION_TRIGGERS = Property.internalTextBag(PDF_PREFIX + 
"actionTriggers");
+    Property ACTION_TRIGGERS = Property.internalTextBag(PDF_PREFIX + 
"action-triggers");
 
-    Property ACTION_TYPES = Property.internalTextBag(PDF_PREFIX + 
"actionTypes");
+    Property ACTION_TYPES = Property.internalTextBag(PDF_PREFIX + 
"action-types");
 
-    Property CHARACTERS_PER_PAGE = Property.internalIntegerSequence(PDF_PREFIX 
+ "charsPerPage");
+    Property CHARACTERS_PER_PAGE = Property.internalIntegerSequence(PDF_PREFIX 
+ "chars-per-page");
 
     Property UNMAPPED_UNICODE_CHARS_PER_PAGE =
-            Property.internalIntegerSequence(PDF_PREFIX + 
"unmappedUnicodeCharsPerPage");
+            Property.internalIntegerSequence(PDF_PREFIX + 
"unmapped-unicode-chars-per-page");
 
     Property TOTAL_UNMAPPED_UNICODE_CHARS =
-            Property.internalInteger(PDF_PREFIX + "totalUnmappedUnicodeChars");
+            Property.internalInteger(PDF_PREFIX + 
"total-unmapped-unicode-chars");
 
     Property OVERALL_PERCENTAGE_UNMAPPED_UNICODE_CHARS =
-            Property.internalReal(PDF_PREFIX + 
"overallPercentageUnmappedUnicodeChars");
+            Property.internalReal(PDF_PREFIX + 
"overall-percentage-unmapped-unicode-chars");
 
     /**
      * Contains at least one damaged font for at least one character
      */
     Property CONTAINS_DAMAGED_FONT =
-            Property.internalBoolean(PDF_PREFIX + "containsDamagedFont");
+            Property.internalBoolean(PDF_PREFIX + "contains-damaged-font");
 
     /**
      * Contains at least one font that is not embedded
      */
     Property CONTAINS_NON_EMBEDDED_FONT =
-            Property.internalBoolean(PDF_PREFIX + "containsNonEmbeddedFont");
+            Property.internalBoolean(PDF_PREFIX + 
"contains-non-embedded-font");
 
     /**
      * Has XFA
      */
-    Property HAS_XFA = Property.internalBoolean(PDF_PREFIX + "hasXFA");
+    Property HAS_XFA = Property.internalBoolean(PDF_PREFIX + "has-xfa");
 
     /**
      * Has XMP, whether or not it is valid
      */
-    Property HAS_XMP = Property.internalBoolean(PDF_PREFIX + "hasXMP");
+    Property HAS_XMP = Property.internalBoolean(PDF_PREFIX + "has-xmp");
 
     /**
      * If xmp is extracted by, e.g. the XMLProfiler, where did it come from?
      * The document's document catalog or a specific page...or?
      */
-    Property XMP_LOCATION = Property.internalText(PDF_PREFIX + "xmpLocation");
+    Property XMP_LOCATION = Property.internalText(PDF_PREFIX + "xmp-location");
 
     /**
      * Has > 0 AcroForm fields
      */
-    Property HAS_ACROFORM_FIELDS = Property.internalBoolean(PDF_PREFIX + 
"hasAcroFormFields");
+    Property HAS_ACROFORM_FIELDS = Property.internalBoolean(PDF_PREFIX + 
"has-acro-form-fields");
 
     /**
      * Has at least one AcroForm signature field (/FT /Sig), whether or not it 
has been signed.
      * For documents that have been actually signed, see {@link 
TikaCoreProperties#HAS_SIGNATURE}.
      */
-    Property HAS_SIGNATURE_FIELDS = Property.internalBoolean(PDF_PREFIX + 
"hasSignatureFields");
+    Property HAS_SIGNATURE_FIELDS = Property.internalBoolean(PDF_PREFIX + 
"has-signature-fields");
 
-    Property HAS_MARKED_CONTENT = Property.internalBoolean(PDF_PREFIX + 
"hasMarkedContent");
+    Property HAS_MARKED_CONTENT = Property.internalBoolean(PDF_PREFIX + 
"has-marked-content");
 
     /**
      * Has a collection element in the root.  If true, this is likely a PDF 
Portfolio.
      */
-    Property HAS_COLLECTION = Property.internalBoolean(PDF_PREFIX + 
"hasCollection");
+    Property HAS_COLLECTION = Property.internalBoolean(PDF_PREFIX + 
"has-collection");
 
     Property EMBEDDED_FILE_DESCRIPTION = Property.externalText(PDF_PREFIX +
-            "embeddedFileDescription");
+            "embedded-file-description");
 
     /**
      * If the file came from an annotation and there was a type
      */
     Property EMBEDDED_FILE_ANNOTATION_TYPE = Property.internalText(PDF_PREFIX +
-            "embeddedFileAnnotationType");
+            "embedded-file-annotation-type");
 
     /**
      *     literal string from the PDEmbeddedFile#getSubtype(), should be what 
the PDF
      *     alleges is the embedded file's mime type
      */
     Property EMBEDDED_FILE_SUBTYPE = Property.internalText(PDF_PREFIX +
-            "embeddedFileSubtype");
+            "embedded-file-subtype");
     /**
      * If the PDF has an annotation of type 3D
      */
-    Property HAS_3D = Property.internalBoolean(PDF_PREFIX + "has3D");
+    Property HAS_3D = Property.internalBoolean(PDF_PREFIX + "has-3d");
 
-    Property ANNOTATION_TYPES = Property.internalTextBag(PDF_PREFIX + 
"annotationTypes");
+    Property ANNOTATION_TYPES = Property.internalTextBag(PDF_PREFIX + 
"annotation-types");
 
-    Property ANNOTATION_SUBTYPES = Property.internalTextBag(PDF_PREFIX + 
"annotationSubtypes");
+    Property ANNOTATION_SUBTYPES = Property.internalTextBag(PDF_PREFIX + 
"annotation-subtypes");
 
     /**
      * Number of 3D annotations a PDF contains.  This makes {@link PDF#HAS_3D} 
redundant.
      */
-    Property NUM_3D_ANNOTATIONS = Property.internalInteger(PDF_PREFIX + 
"num3DAnnotations");
+    Property NUM_3D_ANNOTATIONS = Property.internalInteger(PDF_PREFIX + 
"num-3d-annotations");
 
     Property ASSOCIATED_FILE_RELATIONSHIP = Property.internalText(PDF_PREFIX +
-            "associatedFileRelationship");
+            "associated-file-relationship");
     /**
      * This is a zero-based number for incremental updates within a PDF -- 0 
is the first
      * update, 1 is the second, etc.  The final version of the PDF (e.g. the 
last update)
@@ -207,7 +207,7 @@ public interface PDF {
      * in the PDFParser.
      */
     Property INCREMENTAL_UPDATE_NUMBER =
-            Property.composite(Property.internalInteger(PDF_PREFIX + 
"incrementalUpdateNumber"),
+            Property.composite(Property.internalInteger(PDF_PREFIX + 
"incremental-update-number"),
                 new Property[]{ TikaCoreProperties.VERSION_NUMBER });
 
     /**
@@ -215,19 +215,19 @@ public interface PDF {
      * that class for limitations.
      */
     Property PDF_INCREMENTAL_UPDATE_COUNT =
-            Property.composite( Property.externalInteger(PDF_PREFIX + 
"incrementalUpdateCount"),
+            Property.composite( Property.externalInteger(PDF_PREFIX + 
"incremental-update-count"),
                     new Property[]{ TikaCoreProperties.VERSION_COUNT });
 
     /**
      * This counts the number of pages that would have been OCR'd or were 
OCR'd depending
      * on the OCR settings. If NO_OCR is selected, this will
      */
-    Property OCR_PAGE_COUNT = Property.externalInteger(PDF_PREFIX + 
"ocrPageCount");
+    Property OCR_PAGE_COUNT = Property.externalInteger(PDF_PREFIX + 
"ocr-page-count");
 
     /**
      * When javascript is stored in the names tree, there's a name associated 
with that script.
      * This is that name. When javascript is stored in an action, there is no 
name, and this
      * metadata will not be populated.
      */
-    Property JS_NAME = Property.internalText(PDF_PREFIX + "jsName");
+    Property JS_NAME = Property.internalText(PDF_PREFIX + "js-name");
 }
diff --git a/tika-core/src/main/java/org/apache/tika/metadata/PST.java 
b/tika-core/src/main/java/org/apache/tika/metadata/PST.java
index 860e3fea77..8cda1630f4 100644
--- a/tika-core/src/main/java/org/apache/tika/metadata/PST.java
+++ b/tika-core/src/main/java/org/apache/tika/metadata/PST.java
@@ -19,6 +19,6 @@ package org.apache.tika.metadata;
 public interface PST {
 
     String PST_PREFIX = "pst:";
-    Property DESCRIPTOR_NODE_ID = Property.internalText(PST_PREFIX + 
"discriptorNodeId");
-    Property IS_VALID = Property.internalBoolean(PST_PREFIX + "isValid");
+    Property DESCRIPTOR_NODE_ID = Property.internalText(PST_PREFIX + 
"discriptor-node-id");
+    Property IS_VALID = Property.internalBoolean(PST_PREFIX + "is-valid");
 }
diff --git a/tika-core/src/main/java/org/apache/tika/metadata/QuattroPro.java 
b/tika-core/src/main/java/org/apache/tika/metadata/QuattroPro.java
index 0f00b3430f..a3ac82b54a 100644
--- a/tika-core/src/main/java/org/apache/tika/metadata/QuattroPro.java
+++ b/tika-core/src/main/java/org/apache/tika/metadata/QuattroPro.java
@@ -30,23 +30,23 @@ public interface QuattroPro {
      * ID.
      */
     Property ID = Property.internalText(
-            QUATTROPRO_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "Id");
+            QUATTROPRO_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "id");
     /**
      * Version.
      */
     Property VERSION = Property.internalInteger(
             QUATTROPRO_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "Version");
+                    "version");
     /**
      * Build.
      */
     Property BUILD = Property.internalInteger(
             QUATTROPRO_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "Build");
+                    "build");
     /**
      * Lowest version.
      */
     Property LOWEST_VERSION = Property.internalInteger(
             QUATTROPRO_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "LowestVersion");
+                    "lowest-version");
 }
diff --git a/tika-core/src/main/java/org/apache/tika/metadata/WordPerfect.java 
b/tika-core/src/main/java/org/apache/tika/metadata/WordPerfect.java
index 4fd37f07cd..1248047670 100644
--- a/tika-core/src/main/java/org/apache/tika/metadata/WordPerfect.java
+++ b/tika-core/src/main/java/org/apache/tika/metadata/WordPerfect.java
@@ -30,41 +30,41 @@ public interface WordPerfect {
      */
     Property FILE_SIZE = Property.internalText(
             WORDPERFECT_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "FileSize");
+                    "file-size");
     /**
      * File identifier.
      */
     Property FILE_ID = Property.internalText(
             WORDPERFECT_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "FileId");
+                    "file-id");
     /**
      * Product type.
      */
     Property PRODUCT_TYPE = Property.internalInteger(
             WORDPERFECT_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "ProductType");
+                    "product-type");
     /**
      * File type.
      */
     Property FILE_TYPE = Property.internalInteger(
             WORDPERFECT_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "FileType");
+                    "file-type");
     /**
      * Major version.
      */
     Property MAJOR_VERSION = Property.internalInteger(
             WORDPERFECT_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "MajorVersion");
+                    "major-version");
     /**
      * Minor version.
      */
     Property MINOR_VERSION = Property.internalInteger(
             WORDPERFECT_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "MinorVersion");
+                    "minor-version");
     /**
      * Is encrypted?.
      */
     Property ENCRYPTED = Property.internalBoolean(
             WORDPERFECT_METADATA_NAME_PREFIX + 
TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER +
-                    "Encrypted");
+                    "encrypted");
 }
diff --git a/tika-core/src/main/java/org/apache/tika/metadata/Zip.java 
b/tika-core/src/main/java/org/apache/tika/metadata/Zip.java
index 4715a85383..68a7c4046e 100644
--- a/tika-core/src/main/java/org/apache/tika/metadata/Zip.java
+++ b/tika-core/src/main/java/org/apache/tika/metadata/Zip.java
@@ -36,14 +36,14 @@ public interface Zip {
      * If false, ZipFile failed to open (truncated, corrupt, etc.) and parser 
should use streaming.
      */
     Property DETECTOR_ZIPFILE_OPENED =
-            Property.internalBoolean(ZIP_PREFIX + "detectorZipFileOpened");
+            Property.internalBoolean(ZIP_PREFIX + "detector-zip-file-opened");
 
     /**
      * Set by the detector to indicate whether streaming required 
DATA_DESCRIPTOR support.
      * If true, parser should start streaming with 
allowStoredEntriesWithDataDescriptor=true.
      */
     Property DETECTOR_DATA_DESCRIPTOR_REQUIRED =
-            Property.internalBoolean(ZIP_PREFIX + 
"detectorDataDescriptorRequired");
+            Property.internalBoolean(ZIP_PREFIX + 
"detector-data-descriptor-required");
 
     /**
      * Set to true if the ZIP file was salvaged (rebuilt from a 
corrupt/truncated original).
@@ -63,17 +63,17 @@ public interface Zip {
     /**
      * Compression method used for the entry (0=stored, 8=deflated, etc.).
      */
-    Property COMPRESSION_METHOD = Property.externalInteger(ZIP_PREFIX + 
"compressionMethod");
+    Property COMPRESSION_METHOD = Property.externalInteger(ZIP_PREFIX + 
"compression-method");
 
     /**
      * Compressed size of the entry in bytes.
      */
-    Property COMPRESSED_SIZE = Property.externalText(ZIP_PREFIX + 
"compressedSize");
+    Property COMPRESSED_SIZE = Property.externalText(ZIP_PREFIX + 
"compressed-size");
 
     /**
      * Uncompressed size of the entry in bytes.
      */
-    Property UNCOMPRESSED_SIZE = Property.externalText(ZIP_PREFIX + 
"uncompressedSize");
+    Property UNCOMPRESSED_SIZE = Property.externalText(ZIP_PREFIX + 
"uncompressed-size");
 
     /**
      * CRC-32 checksum of the uncompressed entry data.
@@ -83,7 +83,7 @@ public interface Zip {
     /**
      * Unix file mode/permissions for the entry.
      */
-    Property UNIX_MODE = Property.externalInteger(ZIP_PREFIX + "unixMode");
+    Property UNIX_MODE = Property.externalInteger(ZIP_PREFIX + "unix-mode");
 
     /**
      * Platform that created the entry (0=MS-DOS, 3=Unix, etc.).
@@ -93,7 +93,7 @@ public interface Zip {
     /**
      * Version of ZIP specification used to create the entry.
      */
-    Property VERSION_MADE_BY = Property.externalInteger(ZIP_PREFIX + 
"versionMadeBy");
+    Property VERSION_MADE_BY = Property.externalInteger(ZIP_PREFIX + 
"version-made-by");
 
     /**
      * Whether the entry is encrypted.
@@ -107,24 +107,24 @@ public interface Zip {
      * Result of the integrity check comparing central directory to local 
headers.
      * Values: "PASS" (no issues), "FAIL" (issues found), "PARTIAL" (only 
duplicate check done).
      */
-    Property INTEGRITY_CHECK_RESULT = Property.internalText(ZIP_PREFIX + 
"integrityCheckResult");
+    Property INTEGRITY_CHECK_RESULT = Property.internalText(ZIP_PREFIX + 
"integrity-check-result");
 
     /**
      * Entry names that appear multiple times in the local headers (streaming).
      * Duplicate entries are a potential attack vector.
      */
-    Property DUPLICATE_ENTRY_NAMES = Property.internalTextBag(ZIP_PREFIX + 
"duplicateEntryNames");
+    Property DUPLICATE_ENTRY_NAMES = Property.internalTextBag(ZIP_PREFIX + 
"duplicate-entry-names");
 
     /**
      * Entry names that exist in central directory but not in local headers.
      */
     Property CENTRAL_DIRECTORY_ONLY_ENTRIES =
-            Property.internalTextBag(ZIP_PREFIX + 
"centralDirectoryOnlyEntries");
+            Property.internalTextBag(ZIP_PREFIX + 
"central-directory-only-entries");
 
     /**
      * Entry names that exist in local headers but not in central directory.
      * These are "hidden" entries that some tools won't see.
      */
     Property LOCAL_HEADER_ONLY_ENTRIES =
-            Property.internalTextBag(ZIP_PREFIX + "localHeaderOnlyEntries");
+            Property.internalTextBag(ZIP_PREFIX + "local-header-only-entries");
 }
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file15_tags.json
 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file15_tags.json
index 9412d0b487..58697891ca 100644
--- 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file15_tags.json
+++ 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file15_tags.json
@@ -8,16 +8,16 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:content-handler": "ToXMLContentHandler",
-    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" 
/\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" 
content\u003d\"true\" /\u003e\n\u003cmeta 
name\u003d\"access_permission:can_print_degraded\ [...]
+    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:pdf-version\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" 
/\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003cmeta name\u003d\"access-permission:modify-annotations\" 
content\u003d\"true\" /\u003e\n\u003cmeta 
name\u003d\"access-permission:can-print_degraded [...]
     "tk:parse-time-millis": "500",
-    "access_permission:assemble_document": "true",
-    "access_permission:can_modify": "true",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "true",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "true",
-    "access_permission:modify_annotations": "true",
+    "access-permission:assemble-document": "true",
+    "access-permission:can-modify": "true",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "true",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "true",
+    "access-permission:modify-annotations": "true",
     "dc:creator": "Bertrand DelacrΘtaz",
     "dc:format": "application/pdf; version\u003d1.3",
     "dc:title": "Apache Tika - Apache Tika",
@@ -26,10 +26,10 @@
     "meta:author": "Bertrand DelacrΘtaz",
     "meta:creation-date": "2007-09-15T09:02:31Z",
     "meta:save-date": "2007-09-15T09:02:31Z",
-    "pdf:PDFVersion": "1.3",
+    "pdf:pdf-version": "1.3",
     "pdf:docinfo:created": "2007-09-15T09:02:31Z",
     "pdf:docinfo:creator": "Bertrand DelacrΘtaz",
-    "pdf:docinfo:creator_tool": "Firefox",
+    "pdf:docinfo:creator-tool": "Firefox",
     "pdf:docinfo:modified": "2007-09-15T09:02:31Z",
     "pdf:docinfo:producer": "Mac OS X 10.4.10 Quartz PDFContext",
     "pdf:docinfo:title": "Apache Tika - Apache Tika",
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file16_badTags.json
 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file16_badTags.json
index 4aaa07b47d..242070efb9 100644
--- 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file16_badTags.json
+++ 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file16_badTags.json
@@ -8,16 +8,16 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:content-handler": "ToXMLContentHandler",
-    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" meta 
name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003c\u003c\u003c\u003c\u003cmeta 
name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" 
/\u003e\n\u003cmeta name\u003d\"access_permission:can_print_ [...]
+    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:pdf-version\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" meta 
name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003c\u003c\u003c\u003c\u003cmeta 
name\u003d\"access-permission:modify-annotations\" content\u003d\"true\" 
/\u003e\n\u003cmeta name\u003d\"access-permission:can-print [...]
     "tk:parse-time-millis": "500",
-    "access_permission:assemble_document": "true",
-    "access_permission:can_modify": "true",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "true",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "true",
-    "access_permission:modify_annotations": "true",
+    "access-permission:assemble-document": "true",
+    "access-permission:can-modify": "true",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "true",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "true",
+    "access-permission:modify-annotations": "true",
     "dc:creator": "Bertrand DelacrΘtaz",
     "dc:format": "application/pdf; version\u003d1.3",
     "dc:title": "Apache Tika - Apache Tika",
@@ -26,10 +26,10 @@
     "meta:author": "Bertrand DelacrΘtaz",
     "meta:creation-date": "2007-09-15T09:02:31Z",
     "meta:save-date": "2007-09-15T09:02:31Z",
-    "pdf:PDFVersion": "1.3",
+    "pdf:pdf-version": "1.3",
     "pdf:docinfo:created": "2007-09-15T09:02:31Z",
     "pdf:docinfo:creator": "Bertrand DelacrΘtaz",
-    "pdf:docinfo:creator_tool": "Firefox",
+    "pdf:docinfo:creator-tool": "Firefox",
     "pdf:docinfo:modified": "2007-09-15T09:02:31Z",
     "pdf:docinfo:producer": "Mac OS X 10.4.10 Quartz PDFContext",
     "pdf:docinfo:title": "Apache Tika - Apache Tika",
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file17_tagsOutOfOrder.json
 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file17_tagsOutOfOrder.json
index 419ba751b5..7a20654484 100644
--- 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file17_tagsOutOfOrder.json
+++ 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file17_tagsOutOfOrder.json
@@ -8,16 +8,16 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:content-handler": "ToXMLContentHandler",
-    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" 
/\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" 
content\u003d\"true\" /\u003e\n\u003cmeta 
name\u003d\"access_permission:can_print_degraded\ [...]
+    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:pdf-version\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" 
/\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003cmeta name\u003d\"access-permission:modify-annotations\" 
content\u003d\"true\" /\u003e\n\u003cmeta 
name\u003d\"access-permission:can-print_degraded [...]
     "tk:parse-time-millis": "500",
-    "access_permission:assemble_document": "true",
-    "access_permission:can_modify": "true",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "true",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "true",
-    "access_permission:modify_annotations": "true",
+    "access-permission:assemble-document": "true",
+    "access-permission:can-modify": "true",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "true",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "true",
+    "access-permission:modify-annotations": "true",
     "dc:creator": "Bertrand DelacrΘtaz",
     "dc:format": "application/pdf; version\u003d1.3",
     "dc:title": "Apache Tika - Apache Tika",
@@ -26,10 +26,10 @@
     "meta:author": "Bertrand DelacrΘtaz",
     "meta:creation-date": "2007-09-15T09:02:31Z",
     "meta:save-date": "2007-09-15T09:02:31Z",
-    "pdf:PDFVersion": "1.3",
+    "pdf:pdf-version": "1.3",
     "pdf:docinfo:created": "2007-09-15T09:02:31Z",
     "pdf:docinfo:creator": "Bertrand DelacrΘtaz",
-    "pdf:docinfo:creator_tool": "Firefox",
+    "pdf:docinfo:creator-tool": "Firefox",
     "pdf:docinfo:modified": "2007-09-15T09:02:31Z",
     "pdf:docinfo:producer": "Mac OS X 10.4.10 Quartz PDFContext",
     "pdf:docinfo:title": "Apache Tika - Apache Tika",
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file6_accessEx.pdf.json
 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file6_accessEx.pdf.json
index beeae5ed66..5e5756a0ff 100644
--- 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file6_accessEx.pdf.json
+++ 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file6_accessEx.pdf.json
@@ -6,14 +6,14 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:exception:container-exception": 
"org.apache.tika.exception.AccessPermissionException: Content extraction is not 
allowed.\n\tat 
org.apache.tika.parser.pdf.AccessChecker.check(AccessChecker.java:77)\n\tat 
org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:147)\n\tat 
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat 
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat 
org.apache.tika.parser.AutoDetectParser.parse(AutoDetectPa [...]
-    "access_permission:assemble_document": "false",
-    "access_permission:can_modify": "false",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "false",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "false",
-    "access_permission:modify_annotations": "false",
+    "access-permission:assemble-document": "false",
+    "access-permission:can-modify": "false",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "false",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "false",
+    "access-permission:modify-annotations": "false",
     "pdf:encrypted": "true",
     "resourceName": "file3_accessEx",
     "tika:file_ext": "pdf",
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file8_IOEx.pdf.json
 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file8_IOEx.pdf.json
index 66bf7d5043..17ae31c01e 100644
--- 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file8_IOEx.pdf.json
+++ 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file8_IOEx.pdf.json
@@ -7,14 +7,14 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:exception:runtime": "java.lang.RuntimeException: java.io.IOException: 
Value is not an integer: 8546736428538085463808\n\tat 
org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:186)\n\tat
 
org.apache.pdfbox.pdfparser.PDFStreamParser$1.hasNext(PDFStreamParser.java:193)\n\tat
 
org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:255)\n\tat
 
org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)\n\tat
 org.apache.p [...]
-    "access_permission:assemble_document": "true",
-    "access_permission:can_modify": "true",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "true",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "true",
-    "access_permission:modify_annotations": "true",
+    "access-permission:assemble-document": "true",
+    "access-permission:can-modify": "true",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "true",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "true",
+    "access-permission:modify-annotations": "true",
     "resourceName": "file8_IOEx.pdf",
     "tika:file_ext": "pdf",
     "tika_batch_fs:relative_path": "file8_IOEx.pdf"
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file6_accessEx.pdf.json
 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file6_accessEx.pdf.json
index beeae5ed66..5e5756a0ff 100644
--- 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file6_accessEx.pdf.json
+++ 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file6_accessEx.pdf.json
@@ -6,14 +6,14 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:exception:container-exception": 
"org.apache.tika.exception.AccessPermissionException: Content extraction is not 
allowed.\n\tat 
org.apache.tika.parser.pdf.AccessChecker.check(AccessChecker.java:77)\n\tat 
org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:147)\n\tat 
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat 
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:270)\n\tat 
org.apache.tika.parser.AutoDetectParser.parse(AutoDetectPa [...]
-    "access_permission:assemble_document": "false",
-    "access_permission:can_modify": "false",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "false",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "false",
-    "access_permission:modify_annotations": "false",
+    "access-permission:assemble-document": "false",
+    "access-permission:can-modify": "false",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "false",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "false",
+    "access-permission:modify-annotations": "false",
     "pdf:encrypted": "true",
     "resourceName": "file3_accessEx",
     "tika:file_ext": "pdf",
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file8_IOEx.pdf.json
 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file8_IOEx.pdf.json
index 66bf7d5043..17ae31c01e 100644
--- 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file8_IOEx.pdf.json
+++ 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file8_IOEx.pdf.json
@@ -7,14 +7,14 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:exception:runtime": "java.lang.RuntimeException: java.io.IOException: 
Value is not an integer: 8546736428538085463808\n\tat 
org.apache.pdfbox.pdfparser.PDFStreamParser$1.tryNext(PDFStreamParser.java:186)\n\tat
 
org.apache.pdfbox.pdfparser.PDFStreamParser$1.hasNext(PDFStreamParser.java:193)\n\tat
 
org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:255)\n\tat
 
org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)\n\tat
 org.apache.p [...]
-    "access_permission:assemble_document": "true",
-    "access_permission:can_modify": "true",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "true",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "true",
-    "access_permission:modify_annotations": "true",
+    "access-permission:assemble-document": "true",
+    "access-permission:can-modify": "true",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "true",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "true",
+    "access-permission:modify-annotations": "true",
     "resourceName": "file8_IOEx.pdf",
     "tika:file_ext": "pdf",
     "tika_batch_fs:relative_path": "file8_IOEx.pdf"
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file15_tags 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file15_tags
index 9412d0b487..58697891ca 100644
--- a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file15_tags
+++ b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file15_tags
@@ -8,16 +8,16 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:content-handler": "ToXMLContentHandler",
-    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" 
/\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" 
content\u003d\"true\" /\u003e\n\u003cmeta 
name\u003d\"access_permission:can_print_degraded\ [...]
+    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:pdf-version\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" 
/\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003cmeta name\u003d\"access-permission:modify-annotations\" 
content\u003d\"true\" /\u003e\n\u003cmeta 
name\u003d\"access-permission:can-print_degraded [...]
     "tk:parse-time-millis": "500",
-    "access_permission:assemble_document": "true",
-    "access_permission:can_modify": "true",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "true",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "true",
-    "access_permission:modify_annotations": "true",
+    "access-permission:assemble-document": "true",
+    "access-permission:can-modify": "true",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "true",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "true",
+    "access-permission:modify-annotations": "true",
     "dc:creator": "Bertrand DelacrΘtaz",
     "dc:format": "application/pdf; version\u003d1.3",
     "dc:title": "Apache Tika - Apache Tika",
@@ -26,10 +26,10 @@
     "meta:author": "Bertrand DelacrΘtaz",
     "meta:creation-date": "2007-09-15T09:02:31Z",
     "meta:save-date": "2007-09-15T09:02:31Z",
-    "pdf:PDFVersion": "1.3",
+    "pdf:pdf-version": "1.3",
     "pdf:docinfo:created": "2007-09-15T09:02:31Z",
     "pdf:docinfo:creator": "Bertrand DelacrΘtaz",
-    "pdf:docinfo:creator_tool": "Firefox",
+    "pdf:docinfo:creator-tool": "Firefox",
     "pdf:docinfo:modified": "2007-09-15T09:02:31Z",
     "pdf:docinfo:producer": "Mac OS X 10.4.10 Quartz PDFContext",
     "pdf:docinfo:title": "Apache Tika - Apache Tika",
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file16_badTags 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file16_badTags
index 4aaa07b47d..242070efb9 100644
--- 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file16_badTags
+++ 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file16_badTags
@@ -8,16 +8,16 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:content-handler": "ToXMLContentHandler",
-    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" meta 
name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003c\u003c\u003c\u003c\u003cmeta 
name\u003d\"access_permission:modify_annotations\" content\u003d\"true\" 
/\u003e\n\u003cmeta name\u003d\"access_permission:can_print_ [...]
+    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:pdf-version\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" meta 
name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003c\u003c\u003c\u003c\u003cmeta 
name\u003d\"access-permission:modify-annotations\" content\u003d\"true\" 
/\u003e\n\u003cmeta name\u003d\"access-permission:can-print [...]
     "tk:parse-time-millis": "500",
-    "access_permission:assemble_document": "true",
-    "access_permission:can_modify": "true",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "true",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "true",
-    "access_permission:modify_annotations": "true",
+    "access-permission:assemble-document": "true",
+    "access-permission:can-modify": "true",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "true",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "true",
+    "access-permission:modify-annotations": "true",
     "dc:creator": "Bertrand DelacrΘtaz",
     "dc:format": "application/pdf; version\u003d1.3",
     "dc:title": "Apache Tika - Apache Tika",
@@ -26,10 +26,10 @@
     "meta:author": "Bertrand DelacrΘtaz",
     "meta:creation-date": "2007-09-15T09:02:31Z",
     "meta:save-date": "2007-09-15T09:02:31Z",
-    "pdf:PDFVersion": "1.3",
+    "pdf:pdf-version": "1.3",
     "pdf:docinfo:created": "2007-09-15T09:02:31Z",
     "pdf:docinfo:creator": "Bertrand DelacrΘtaz",
-    "pdf:docinfo:creator_tool": "Firefox",
+    "pdf:docinfo:creator-tool": "Firefox",
     "pdf:docinfo:modified": "2007-09-15T09:02:31Z",
     "pdf:docinfo:producer": "Mac OS X 10.4.10 Quartz PDFContext",
     "pdf:docinfo:title": "Apache Tika - Apache Tika",
diff --git 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file17_tagsOutOfOrder
 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file17_tagsOutOfOrder
index 419ba751b5..7a20654484 100644
--- 
a/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file17_tagsOutOfOrder
+++ 
b/tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file17_tagsOutOfOrder
@@ -8,16 +8,16 @@
       "org.apache.tika.parser.pdf.PDFParser"
     ],
     "tk:content-handler": "ToXMLContentHandler",
-    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:PDFVersion\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" 
/\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003cmeta name\u003d\"access_permission:modify_annotations\" 
content\u003d\"true\" /\u003e\n\u003cmeta 
name\u003d\"access_permission:can_print_degraded\ [...]
+    "tk:content": "\u003chtml 
xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003e\n\u003chead\u003e\n\u003cmeta 
name\u003d\"pdf:pdf-version\" content\u003d\"1.3\" /\u003e\n\u003cmeta 
name\u003d\"pdf:docinfo:title\" content\u003d\"Apache Tika - Apache Tika\" 
/\u003e\n\u003cmeta name\u003d\"xmp:CreatorTool\" content\u003d\"Firefox\" 
/\u003e\n\u003cmeta name\u003d\"access-permission:modify-annotations\" 
content\u003d\"true\" /\u003e\n\u003cmeta 
name\u003d\"access-permission:can-print_degraded [...]
     "tk:parse-time-millis": "500",
-    "access_permission:assemble_document": "true",
-    "access_permission:can_modify": "true",
-    "access_permission:can_print": "true",
-    "access_permission:can_print_degraded": "true",
-    "access_permission:extract_content": "true",
-    "access_permission:extract_for_accessibility": "true",
-    "access_permission:fill_in_form": "true",
-    "access_permission:modify_annotations": "true",
+    "access-permission:assemble-document": "true",
+    "access-permission:can-modify": "true",
+    "access-permission:can-print": "true",
+    "access-permission:can-print_degraded": "true",
+    "access-permission:extract-content": "true",
+    "access-permission:extract-for-accessibility": "true",
+    "access-permission:fill-in-form": "true",
+    "access-permission:modify-annotations": "true",
     "dc:creator": "Bertrand DelacrΘtaz",
     "dc:format": "application/pdf; version\u003d1.3",
     "dc:title": "Apache Tika - Apache Tika",
@@ -26,10 +26,10 @@
     "meta:author": "Bertrand DelacrΘtaz",
     "meta:creation-date": "2007-09-15T09:02:31Z",
     "meta:save-date": "2007-09-15T09:02:31Z",
-    "pdf:PDFVersion": "1.3",
+    "pdf:pdf-version": "1.3",
     "pdf:docinfo:created": "2007-09-15T09:02:31Z",
     "pdf:docinfo:creator": "Bertrand DelacrΘtaz",
-    "pdf:docinfo:creator_tool": "Firefox",
+    "pdf:docinfo:creator-tool": "Firefox",
     "pdf:docinfo:modified": "2007-09-15T09:02:31Z",
     "pdf:docinfo:producer": "Mac OS X 10.4.10 Quartz PDFContext",
     "pdf:docinfo:title": "Apache Tika - Apache Tika",
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/AutoDetectParserConfigTest.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/AutoDetectParserConfigTest.java
index 5085e0de01..2d17b1231d 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/AutoDetectParserConfigTest.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/AutoDetectParserConfigTest.java
@@ -92,7 +92,7 @@ public class AutoDetectParserConfigTest extends TikaTest {
                 metadata, parseContext, true);
         for (Metadata m : metadataList) {
             for (String k : m.names()) {
-                assertTrue(k.startsWith("tk:") || 
k.startsWith("access_permission:")
+                assertTrue(k.startsWith("tk:") || 
k.startsWith("access-permission:")
                         || k.startsWith("Content-") || k.equals("dc:creator"),
                         "unexpected key: " + k);
             }
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
index a2ccb629e6..e471ba230b 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
@@ -675,7 +675,7 @@ public class PDFParser implements Parser, RenderingParser {
         //    there is currently a fair amount of redundancy
         //    TikaCoreProperties.FORMAT can be multivalued
         //    There are also three potential pdf specific version keys:
-        //    pdf:PDFVersion, pdfa:PDFVersion, pdf:PDFExtensionVersion
+        //    pdf:pdf-version, pdfa:pdf-version, pdf:pdf-extension-version
         metadata.set(PDF.PDF_VERSION, 
Float.toString(document.getDocument().getVersion()));
         metadata.add(TikaCoreProperties.FORMAT.getName(), 
MEDIA_TYPE.toString() + "; version=" +
                 Float.toString(document.getDocument().getVersion()));
@@ -708,7 +708,7 @@ public class PDFParser implements Parser, RenderingParser {
                 } else {
                     // WARN that there is an Extension, but it's not Adobe's, 
and so is a 'new'
                     // format'.
-                    metadata.set("pdf:foundNonAdobeExtensionName", 
extName.getName());
+                    metadata.set("pdf:found-non-adobe-extension-name", 
extName.getName());
                 }
             }
         }
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
index 26eab218dc..07c9ae372a 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
@@ -697,11 +697,11 @@ public class PDFParserTest extends TikaTest {
             assertTrue(foundDC, "dc:format ::" + e.getValue());
             String extensionVersionTruth = 
pdfExtensionVersions.get(e.getKey());
             if (extensionVersionTruth != null) {
-                assertEquals(extensionVersionTruth, 
r.metadata.get("pdf:PDFExtensionVersion"),
-                        "pdf:PDFExtensionVersion :: " + extensionVersionTruth);
+                assertEquals(extensionVersionTruth, 
r.metadata.get("pdf:pdf-extension-version"),
+                        "pdf:pdf-extension-version :: " + 
extensionVersionTruth);
             }
             assertEquals(pdfVersions.get(e.getKey()),
-                    r.metadata.get("pdf:PDFVersion"), "pdf:PDFVersion");
+                    r.metadata.get("pdf:pdf-version"), "pdf:pdf-version");
         }
         //now test full 11.x
         XMLResult r = getXML("testPDF_Version.11.x.PDFA-1b.pdf");
diff --git 
a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/MetadataWriteLimiterTest.java
 
b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/MetadataWriteLimiterTest.java
index 248748f8d9..57358146a6 100644
--- 
a/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/MetadataWriteLimiterTest.java
+++ 
b/tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/MetadataWriteLimiterTest.java
@@ -55,7 +55,7 @@ public class MetadataWriteLimiterTest {
     /**
      * Test that MetadataWriteLimiterFactory is loaded from config and limits 
are applied.
      * The config specifies includeFields: ["dc:creator", "Content-Type", 
"tk:content"]
-     * so other fields like "pdf:PDFVersion" should be filtered out.
+     * so other fields like "pdf:pdf-version" should be filtered out.
      */
     @Test
     public void testWriteLimiterFromConfig(@TempDir Path tmp) throws Exception 
{
@@ -74,7 +74,7 @@ public class MetadataWriteLimiterTest {
 
         // Fields not in includeFields should be filtered out
         // (unless they're "must add" fields like tk:parsed-by)
-        assertNull(metadata.get("pdf:PDFVersion"), "pdf:PDFVersion should be 
filtered out");
+        assertNull(metadata.get("pdf:pdf-version"), "pdf:pdf-version should be 
filtered out");
         assertNull(metadata.get("dc:format"), "dc:format should be filtered 
out");
     }
 
@@ -82,7 +82,7 @@ public class MetadataWriteLimiterTest {
      * Test that MetadataWriteLimiterFactory can be overridden via 
ParseContext.
      * The default config excludes tk:parse-time-millis, but the override 
allows it.
      *
-     * Note: We use tk:parse-time-millis instead of pdf:PDFVersion because the 
PDF parser
+     * Note: We use tk:parse-time-millis instead of pdf:pdf-version because 
the PDF parser
      * module is not a dependency of this test module, so PDF-specific 
metadata isn't extracted.
      */
     @Test

Reply via email to