diff --git a/src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java b/src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java
index 65d71c011..249b7f3f4 100644
--- a/src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java
+++ b/src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java
@@ -107,7 +107,7 @@ private void initialize()
severities.put(MessageId.HTM_012, Severity.USAGE);
severities.put(MessageId.HTM_013, Severity.USAGE);
severities.put(MessageId.HTM_014, Severity.WARNING);
- severities.put(MessageId.HTM_014a, Severity.WARNING);
+ severities.put(MessageId.HTM_014a, Severity.SUPPRESSED);
severities.put(MessageId.HTM_015, Severity.SUPPRESSED);
severities.put(MessageId.HTM_016, Severity.SUPPRESSED);
severities.put(MessageId.HTM_017, Severity.ERROR);
diff --git a/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java b/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java
index 9c8de1ae4..8835634de 100644
--- a/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java
+++ b/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java
@@ -113,12 +113,6 @@ protected void checkItem(OPFItem item, OPFHandler opfHandler)
report.message(MessageId.OPF_091,
EPUBLocation.create(path, item.getLineNumber(), item.getColumnNumber()));
}
- if ("application/xhtml+xml".equals(mimeType)
- && !"xhtml".equals(Files.getFileExtension(PathUtil.removeFragment(item.getPath()))))
- {
- report.message(MessageId.HTM_014a,
- EPUBLocation.create(path, item.getLineNumber(), item.getColumnNumber()), item.getPath());
- }
// Note: item fallback existence is checked in schematron, i.e.:
// opfHandler.getItemById(item.getFallback().get()).isPresent() == true
diff --git a/src/test/resources/epub3/content-publication.feature b/src/test/resources/epub3/content-publication.feature
index 7f7b89263..6432e2d82 100644
--- a/src/test/resources/epub3/content-publication.feature
+++ b/src/test/resources/epub3/content-publication.feature
@@ -15,6 +15,10 @@ Feature: EPUB 3 ▸ Content Documents ▸ Full Publication Checks
## 2. XHTML Content Documents
+ Scenario: Verify that an XHTML Content Document can have any extension
+ When checking EPUB 'content-xhtml-file-extension-unusual-valid'
+ Then no errors or warnings are reported
+
### 2.2 Content Conformance
Scenario: Report RelaxNG schema errors when checking a Content Document in a full publication
@@ -244,14 +248,6 @@ Feature: EPUB 3 ▸ Content Documents ▸ Full Publication Checks
And no other errors or warnings are reported
- #### File Properties
-
- Scenario: Report an XHTML content document without an `.xhtml` extension
- When checking EPUB 'content-xhtml-extension-warning'
- Then warning HTM-014a is reported
- And no other errors or warnings are reported
-
-
### 2.5 HTML Deviations and Constraints
#### 2.5.5 Foreign Resource Restrictions
@@ -306,6 +302,10 @@ Feature: EPUB 3 ▸ Content Documents ▸ Full Publication Checks
Then error RSC-015 is reported
And no other errors or warnings are reported
+ Scenario: Verify that an SVG Content Document can have any extension
+ When checking EPUB 'content-svg-file-extension-unusual-valid'
+ Then no errors or warnings are reported
+
## 4. CSS Style Sheets
diff --git a/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/content_001.img b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/content_001.img
new file mode 100644
index 000000000..ea66534c9
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/content_001.img
@@ -0,0 +1,6 @@
+
+
diff --git a/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/nav.xhtml b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/nav.xhtml
new file mode 100644
index 000000000..f7b525b57
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/nav.xhtml
@@ -0,0 +1,14 @@
+
+
+
+
+ Minimal Nav
+
+
+
+
+
diff --git a/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/package.opf b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/package.opf
new file mode 100644
index 000000000..ec0b8c0be
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/package.opf
@@ -0,0 +1,16 @@
+
+
+
+ Minimal EPUB 3.0
+ en
+ NOID
+ 2017-06-14T00:00:01Z
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/META-INF/container.xml b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/META-INF/container.xml
new file mode 100644
index 000000000..318782179
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/META-INF/container.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/mimetype b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/mimetype
new file mode 100644
index 000000000..57ef03f24
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/mimetype
@@ -0,0 +1 @@
+application/epub+zip
\ No newline at end of file
diff --git a/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/content_001.web b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/content_001.web
new file mode 100644
index 000000000..ea29a1610
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/content_001.web
@@ -0,0 +1,11 @@
+
+
+
+
+ Minimal EPUB
+
+
+
Loomings
+
Call me Ishmael.
+
+
diff --git a/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/nav.xhtml b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/nav.xhtml
new file mode 100644
index 000000000..b840c01b9
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/nav.xhtml
@@ -0,0 +1,14 @@
+
+
+
+
+ Minimal Nav
+
+
+
+
+
diff --git a/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/package.opf b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/package.opf
new file mode 100644
index 000000000..924f45c77
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/package.opf
@@ -0,0 +1,16 @@
+
+
+
+ Minimal EPUB 3.0
+ en
+ NOID
+ 2017-06-14T00:00:01Z
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/META-INF/container.xml b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/META-INF/container.xml
new file mode 100644
index 000000000..318782179
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/META-INF/container.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/mimetype b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/mimetype
new file mode 100644
index 000000000..57ef03f24
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/mimetype
@@ -0,0 +1 @@
+application/epub+zip
\ No newline at end of file
diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mo b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mo
new file mode 100644
index 000000000..11a9a791c
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mo
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mp3 b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mp3
new file mode 100644
index 000000000..3f140bbc4
Binary files /dev/null and b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mp3 differ
diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.xhtml b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.xhtml
new file mode 100644
index 000000000..28757800c
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.xhtml
@@ -0,0 +1,11 @@
+
+
+
+
+ Minimal EPUB
+
+
+
Loomings
+
Call me Ishmael.
+
+
diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/nav.xhtml b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/nav.xhtml
new file mode 100644
index 000000000..240745e63
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/nav.xhtml
@@ -0,0 +1,14 @@
+
+
+
+
+ Minimal Nav
+
+
+
+
+
diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/package.opf b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/package.opf
new file mode 100644
index 000000000..ac200b1b0
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/package.opf
@@ -0,0 +1,20 @@
+
+
+
+ Minimal EPUB 3.0
+ en
+ NOID
+ 2017-06-14T00:00:01Z
+ 2.5s
+ 2.5s
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/META-INF/container.xml b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/META-INF/container.xml
new file mode 100644
index 000000000..318782179
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/META-INF/container.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/mimetype b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/mimetype
new file mode 100644
index 000000000..57ef03f24
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/mimetype
@@ -0,0 +1 @@
+application/epub+zip
\ No newline at end of file
diff --git a/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/content_001.xhtml b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/content_001.xhtml
new file mode 100644
index 000000000..ea29a1610
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/content_001.xhtml
@@ -0,0 +1,11 @@
+
+
+
+
+ Minimal EPUB
+
+
+
Loomings
+
Call me Ishmael.
+
+
diff --git a/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/nav.xhtml b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/nav.xhtml
new file mode 100644
index 000000000..240745e63
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/nav.xhtml
@@ -0,0 +1,14 @@
+
+
+
+
+ Minimal Nav
+
+
+
+
+
diff --git a/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/package.pkg b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/package.pkg
new file mode 100644
index 000000000..0d1eec6e9
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/package.pkg
@@ -0,0 +1,16 @@
+
+
+
+ Minimal EPUB 3.0
+ en
+ NOID
+ 2017-06-14T00:00:01Z
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/META-INF/container.xml b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/META-INF/container.xml
new file mode 100644
index 000000000..336e1a50e
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/META-INF/container.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/mimetype b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/mimetype
new file mode 100644
index 000000000..57ef03f24
--- /dev/null
+++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/mimetype
@@ -0,0 +1 @@
+application/epub+zip
\ No newline at end of file
diff --git a/src/test/resources/epub3/mediaoverlays-publication.feature b/src/test/resources/epub3/mediaoverlays-publication.feature
index 781daaf09..1f533931f 100644
--- a/src/test/resources/epub3/mediaoverlays-publication.feature
+++ b/src/test/resources/epub3/mediaoverlays-publication.feature
@@ -18,6 +18,10 @@ Feature: EPUB 3 ▸ Media Overlays ▸ Full Publication Checks
When checking EPUB 'mediaoverlays-minimal-valid'
Then no errors or warnings are reported
+ Scenario: Verify that a Media Overlays Document can have any extension
+ When checking EPUB 'mediaoverlays-file-extension-unusual-valid'
+ Then no errors or warnings are reported
+
## 2. Media Overlay Document Definition
diff --git a/src/test/resources/epub3/package-publication.feature b/src/test/resources/epub3/package-publication.feature
index d025bd252..1a69146ff 100644
--- a/src/test/resources/epub3/package-publication.feature
+++ b/src/test/resources/epub3/package-publication.feature
@@ -15,10 +15,14 @@ Feature: EPUB 3 ▸ Packages ▸ Full Publication Checks
Scenario: Verify a minimal EPUB
When checking EPUB 'minimal'
- Then no errors or warnings are reported
+ Then no errors or warnings are reported
## 3. Package Document
+ Scenario: Verify that the Package Document can have any extension
+ When checking EPUB 'package-file-extension-unusual-valid'
+ Then no errors or warnings are reported
+
### 3.4.1 The package Element
# FIXME the current API doesn’t allow the version to be explicitly set