Skip to content

Commit

Permalink
feat: update the Package Document schema for EPUB 3.2
Browse files Browse the repository at this point in the history
- partially resolves #883 - only adds the attribute, doesn't check values
- fixes #882 - reports if a preceding itemref has a matching idref
- fixes #881 - reports presence of bindings
- fixes #880 - reports presence of rendition:viewport property in metadata
- fixes #879 - reports rendition:spread=portrait in metadata and rendition:spread-portrait on an itemref
- fixes #878 - reports presence of meta-auth property in metadata
- fixes #877 - reports presence of display-seq in metadata
- fixes #876 - reports if term/authority are not used together, or if multiple instances are attached to a single subject
  • Loading branch information
mattgarrish authored and rdeltour committed Jan 14, 2019
1 parent 976b9f6 commit 1f12512
Show file tree
Hide file tree
Showing 23 changed files with 129 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
opf.epub3.meta.content = (opf.property.attr & opf.refines.attr? & opf.id.attr? & opf.scheme.attr? & opf.i18n.attrs & datatype.string.nonempty)
opf.epub2.meta.content = (attribute name { text } & attribute content { text }) #legacy

opf.link = element link { opf.href.attr & opf.rel.attr & opf.id.attr? & opf.refines.attr? & opf.media-type.attr? }
opf.link = element link { opf.href.attr & opf.rel.attr & opf.id.attr? & opf.refines.attr? & opf.media-type.attr? & opf.properties.attr? }

opf.property.attr = attribute property { datatype.property }
opf.rel.attr = attribute rel { datatype.properties }
Expand Down Expand Up @@ -129,4 +129,4 @@
opf.id.attr = attribute id { datatype.ID }
opf.i18n.attrs = opf.xml.lang.attr? & opf.dir.attr?
opf.xml.lang.attr = attribute xml:lang { datatype.languagecode }
opf.dir.attr = attribute dir { 'ltr' | 'rtl' }
opf.dir.attr = attribute dir { 'ltr' | 'rtl' }
131 changes: 93 additions & 38 deletions src/main/resources/com/adobe/epubcheck/schema/30/package-30.sch

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -133,19 +133,22 @@ public void testValidateEPUBPLoremForeign()
@Test
public void testValidateEPUBPLoremObjectFallbacks()
{
Collections.addAll(expectedWarnings, MessageId.RSC_017);
testValidateDocument("valid/lorem-object-fallbacks", "valid/lorem-object-fallbacks.txt");
}

@Test
public void testValidateEPUBPLoremBindings()
{
Collections.addAll(expectedWarnings, MessageId.RSC_017);
testValidateDocument("valid/lorem-bindings", "valid/lorem-bindings.txt");
}

@Test
public void testValidateEPUBPLoremInvalidBindings()
{
Collections.addAll(expectedErrors, MessageId.MED_002);
Collections.addAll(expectedWarnings, MessageId.RSC_017);
testValidateDocument("invalid/lorem-bindings");
}

Expand Down Expand Up @@ -560,6 +563,7 @@ public void testIssue249()
@Test
public void testValidateEPUB20_issue267()
{
Collections.addAll(expectedWarnings, MessageId.RSC_017, MessageId.RSC_017, MessageId.RSC_017);
testValidateDocument("valid/issue267/", "valid/issue267.txt");
}

Expand Down
12 changes: 6 additions & 6 deletions src/test/java/com/adobe/epubcheck/ocf/OCFCheckerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -172,12 +172,12 @@ public void testLoremBindings30()
{
ValidationReport testReport = testOcfPackage("/30/expanded/valid/lorem-bindings/",
EPUBVersion.VERSION_3);
if (0 != testReport.getErrorCount() || 0 != testReport.getWarningCount())
if (0 != testReport.getErrorCount() || 1 != testReport.getWarningCount())
{
outWriter.println(testReport);
}
assertEquals(0, testReport.getErrorCount());
assertEquals(0, testReport.getWarningCount());
assertEquals(1, testReport.getWarningCount());

assertTrue(testReport.hasInfoMessage("[format version] 3.0.1"));
}
Expand Down Expand Up @@ -217,12 +217,12 @@ public void testLoremFallbacks30()
{
ValidationReport testReport = testOcfPackage("/30/expanded/valid/lorem-object-fallbacks/",
EPUBVersion.VERSION_3);
if (0 != testReport.getErrorCount() || 0 != testReport.getWarningCount())
if (0 != testReport.getErrorCount() || 1 != testReport.getWarningCount())
{
outWriter.println(testReport);
}
assertEquals(0, testReport.getErrorCount());
assertEquals(0, testReport.getWarningCount());
assertEquals(1, testReport.getWarningCount());

assertTrue(testReport.hasInfoMessage("[format version] 3.0.1"));
}
Expand Down Expand Up @@ -358,7 +358,7 @@ public void testInvalidLoremBindings30()
{
ValidationReport testReport = testOcfPackage("/30/expanded/invalid/lorem-bindings/",
EPUBVersion.VERSION_3);
if (1 != testReport.getErrorCount() || 0 != testReport.getWarningCount())
if (1 != testReport.getErrorCount() || 1 != testReport.getWarningCount())
{
outWriter.println(testReport);
}
Expand All @@ -367,7 +367,7 @@ public void testInvalidLoremBindings30()
List<MessageId> errors = new ArrayList<MessageId>();
Collections.addAll(errors, MessageId.MED_002);
assertEquals(errors, testReport.getErrorIds());
assertEquals(0, testReport.getWarningCount());
assertEquals(1, testReport.getWarningCount());

assertTrue(testReport.hasInfoMessage("[format version] 3.0.1"));
}
Expand Down
6 changes: 6 additions & 0 deletions src/test/java/com/adobe/epubcheck/opf/OPFCheckerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ public void testValidateDocumentValidOPFBase001()
@Test
public void testValidateDocumentValidOPFBindings001()
{
Collections.addAll(expectedWarnings, MessageId.RSC_017);
testValidateDocument("valid/bindings-001.opf", EPUBVersion.VERSION_3);
}

Expand Down Expand Up @@ -251,6 +252,7 @@ public void testValidateDocumentNoDcNamespace()
public void testValidateDocumentBindings001()
{
Collections.addAll(expectedErrors, MessageId.RSC_005);
Collections.addAll(expectedWarnings, MessageId.RSC_017);
testValidateDocument("invalid/bindings-001.opf", EPUBVersion.VERSION_3);
}

Expand Down Expand Up @@ -674,6 +676,7 @@ public void testRenditionPropertiesValid()
@Test
public void testRenditionGlobalsValid()
{
Collections.addAll(expectedWarnings, MessageId.RSC_017, MessageId.RSC_017, MessageId.RSC_017);
testValidateDocument("valid/rendition-globals.opf", EPUBVersion.VERSION_3);
}

Expand All @@ -690,6 +693,7 @@ public void testRenditionGlobalsDuplicated()
{
Collections.addAll(expectedErrors, MessageId.RSC_005, MessageId.RSC_005, MessageId.RSC_005,
MessageId.RSC_005, MessageId.RSC_005);
Collections.addAll(expectedWarnings, MessageId.RSC_017, MessageId.RSC_017);
testValidateDocument("invalid/rendition-globals-duplicate.opf", EPUBVersion.VERSION_3);
}

Expand All @@ -698,6 +702,7 @@ public void testRenditionGlobalsBadValues()
{
Collections.addAll(expectedErrors, MessageId.RSC_005, MessageId.RSC_005, MessageId.RSC_005,
MessageId.RSC_005, MessageId.RSC_005);
Collections.addAll(expectedWarnings, MessageId.RSC_017);
testValidateDocument("invalid/rendition-globals-badvalues.opf", EPUBVersion.VERSION_3);
}

Expand All @@ -706,6 +711,7 @@ public void testRenditionOverridesConflicts()
{
Collections.addAll(expectedErrors, MessageId.RSC_005, MessageId.RSC_005, MessageId.RSC_005,
MessageId.RSC_005, MessageId.RSC_005);
Collections.addAll(expectedWarnings, MessageId.RSC_017);
testValidateDocument("invalid/rendition-globals-badvalues.opf", EPUBVersion.VERSION_3);
}

Expand Down
Binary file not shown.
Binary file modified src/test/resources/30/epub/invalid/edupub-pagination-nosource.epub
Binary file not shown.
Binary file not shown.
Binary file modified src/test/resources/30/epub/valid/edupub-pagination.epub
Binary file not shown.
Binary file modified src/test/resources/30/epub/valid/georgia-cfi.epub
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<dc:language id="pub-language">en</dc:language>
<meta property="dcterms:modified">2015-03-13T15:35:14Z</meta>
<dc:creator id="creator1">xyz</dc:creator>
<meta refines="#creator1" property="display-seq">1</meta>
<meta refines="#creator1" property="role" scheme="marc:relators">aut</meta>
<dc:publisher>xyz</dc:publisher>
<dc:rights>xyz</dc:rights>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<dc:language>la</dc:language>
<dc:date>2011-09-01</dc:date>
<meta property="dcterms:modified">2011-09-01T17:18:00Z</meta>
<meta property="meta-auth">Auth</meta>
</metadata>
<manifest>
<item id="t1" href="lorem.xhtml" properties="nav" media-type="application/xhtml+xml" />
Expand Down
3 changes: 1 addition & 2 deletions src/test/resources/30/single/opf/invalid/prefixes-001.opf
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
<dc:language>la</dc:language>
<dc:date>2011-09-01</dc:date>
<meta property="dcterms:modified">2011-09-01T17:18:00Z</meta>
<meta property="meta-auth">Auth</meta>
<meta property="media:test meta-auth">test</meta>
<meta property="media:test title-type">test</meta>
<meta property="foaf:test">test</meta>
<link rel="marc21xml-record foaf:ddd foaf:ddd" href="pub/meta/nor-wood-marc21.xml"/>
</metadata>
Expand Down
1 change: 0 additions & 1 deletion src/test/resources/30/single/opf/invalid/prefixes-002.opf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<dc:language>la</dc:language>
<dc:date>2011-09-01</dc:date>
<meta property="dcterms:modified">2011-09-01T17:18:00Z</meta>
<meta property="meta-auth">Auth</meta>
<meta property="foaf:test">test</meta>
<link rel="marc21xml-record foaf:ddd" href="pub/meta/nor-wood-marc21.xml"/>
</metadata>
Expand Down
1 change: 0 additions & 1 deletion src/test/resources/30/single/opf/invalid/prefixes-003.opf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<dc:language>la</dc:language>
<dc:date>2011-09-01</dc:date>
<meta property="dcterms:modified">2011-09-01T17:18:00Z</meta>
<meta property="meta-auth">Auth</meta>
<meta property="invalid:test">test2</meta>
<meta property="foaf:test">test</meta>
<link rel="marc21xml-record foaf:ddd" href="pub/meta/nor-wood-marc21.xml"/>
Expand Down
1 change: 0 additions & 1 deletion src/test/resources/30/single/opf/invalid/prefixes-004.opf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<dc:language>la</dc:language>
<dc:date>2011-09-01</dc:date>
<meta property="dcterms:modified">2011-09-01T17:18:00Z</meta>
<meta property="meta-auth">Auth</meta>
<meta property="foaf:test">test</meta>
<link rel="marc21xml-record foaf:ddd" href="pub/meta/nor-wood-marc21.xml"/>
</metadata>
Expand Down
1 change: 0 additions & 1 deletion src/test/resources/30/single/opf/invalid/scheme-001.opf
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
<dc:date>2011-09-01</dc:date>
<meta property="identifier-type" scheme="codelist5">06</meta>
<meta property="dcterms:modified">2011-09-01T17:18:00Z</meta>
<meta property="meta-auth">Auth</meta>
<meta property="foaf:test">test</meta>
<link rel="marc21xml-record foaf:ddd" href="pub/meta/nor-wood-marc21.xml"/>
</metadata>
Expand Down
1 change: 0 additions & 1 deletion src/test/resources/30/single/opf/invalid/scheme-002.opf
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
<dc:date>2011-09-01</dc:date>
<meta property="identifier-type" scheme="onix:codelist5 invalid">06</meta>
<meta property="dcterms:modified">2011-09-01T17:18:00Z</meta>
<meta property="meta-auth">Auth</meta>
<meta property="foaf:test">test</meta>
<link rel="marc21xml-record foaf:ddd" href="pub/meta/nor-wood-marc21.xml"/>
</metadata>
Expand Down
2 changes: 1 addition & 1 deletion src/test/resources/30/single/opf/valid/prefixes.opf
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="../../../../../../main/resources/com/adobe/epubcheck/schema/30/epub-nav-30.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="uid"
prefix="foaf: http://xmlns.com/foaf/spec/
dbp: http://dbpedia.org/ontology/">
Expand All @@ -8,7 +9,6 @@
<dc:language>la</dc:language>
<dc:date>2011-09-01</dc:date>
<meta property="dcterms:modified">2011-09-01T17:18:00Z</meta>
<meta property="meta-auth">Auth</meta>
<meta property="media:narrator">test</meta>
<meta property="foaf:test">test</meta>
<link rel="marc21xml-record foaf:ddd" href="pub/meta/nor-wood-marc21.xml"/>
Expand Down
1 change: 0 additions & 1 deletion src/test/resources/30/single/opf/valid/scheme-001.opf
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
<dc:date>2011-09-01</dc:date>
<meta property="identifier-type" scheme="onix:codelist5">06</meta>
<meta property="dcterms:modified">2011-09-01T17:18:00Z</meta>
<meta property="meta-auth">Auth</meta>
<meta property="foaf:test">test</meta>
<link rel="marc21xml-record foaf:ddd" href="pub/meta/nor-wood-marc21.xml"/>
</metadata>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"elapsedTime" : 144,
"nFatal" : 0,
"nError" : 5,
"nWarning" : 0,
"nWarning" : 1,
"nUsage" : 5
},
"publication" : {
Expand Down Expand Up @@ -525,6 +525,18 @@
"context" : null
} ],
"suggestion" : null
}, {
"ID" : "RSC-017",
"severity" : "WARNING",
"message" : "Warning while parsing file: Use of the bindings element is deprecated",
"additionalLocations" : 0,
"locations" : [ {
"path" : "OPS/content.opf",
"line" : 28,
"column" : 13,
"context" : null
} ],
"suggestion" : null
}, {
"ID" : "SCP-002",
"severity" : "USAGE",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
<meta refines="#creator" property="file-as">Doe, John</meta>
<dc:creator id="creator02">Jane Doe</dc:creator>
<meta refines="#creator02" property="role" scheme="marc:relators">ill</meta>
<meta refines="#creator02" property="display-seq">2</meta>

<dc:identifier id="pub-id">urn:uuid:c1541da9-2d2f-4483-8df0-e38c27d3c50d</dc:identifier>
<dc:identifier id="isbn-id">urn:isbn:978-3-16-148410-0</dc:identifier>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,10 @@
"id" : "ePubCheck.NoManifestRef:OPS/content.opf",
"fileName" : "OPS/content.opf",
"media_type" : null,
"compressedSize" : 855,
"uncompressedSize" : 2104,
"compressedSize" : 837,
"uncompressedSize" : 2041,
"compressionMethod" : "Deflated",
"checkSum" : "5bcf52781e0cb1f525899ada182f4cc569293948438c6adea2fa5614c8a64ce",
"checkSum" : "cc4353d73d62d851b4b686701fc63a8957b5453c9972942168bbf9bebe08dd0",
"isSpineItem" : false,
"spineIndex" : null,
"isLinear" : false,
Expand Down

0 comments on commit 1f12512

Please sign in to comment.