Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Formats > ePub

Notices

Reply
 
Thread Tools Search this Thread
Old Yesterday, 02:34 PM   #256
JSWolf
Resident Curmudgeon
JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.
 
JSWolf's Avatar
 
Posts: 84,649
Karma: 153744859
Join Date: Nov 2006
Location: Roslindale, Massachusetts
Device: Kobo Libra 2, Kobo Aura H2O, PRS-650, PRS-T1, nook STR, PW3
I've found yet some more differences between epubveri and epubcheck.

I change ePub type from 2 to 3 and then got these.

Here is the OPF.
Code:
<?xml version='1.0' encoding='utf-8'?>
<package xmlns="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="bookid">
  <metadata>
    <dc:identifier id="bookid">urn:asin:B0DWKRJQSH</dc:identifier>
    <dc:title>The Metal Woman</dc:title>
    <dc:creator opf:role="aut">Frank J. Cavill</dc:creator>
    <dc:language>en</dc:language>
    <dc:publisher>Pedro Urvi</dc:publisher>
    <dc:date opf:event="publication">2025-04-24</dc:date>
    <meta name="cover" content="image_rsrc51H.jpg"/>
  </metadata>
  <manifest>
    <item href="cover.xhtml" id="c0.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter07.xhtml" id="c136.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter08.xhtml" id="c179.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter09.xhtml" id="c1A1.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter10.xhtml" id="c1F2.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter11.xhtml" id="c1ME.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter12.xhtml" id="c1T5.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter13.xhtml" id="c1X3.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter14.xhtml" id="c210.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter15.xhtml" id="c25D.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter16.xhtml" id="c29F.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter17.xhtml" id="c2DR.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter18.xhtml" id="c2J8.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter19.xhtml" id="c2R4.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter20.xhtml" id="c2X6.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter21.xhtml" id="c322.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter22.xhtml" id="c32S.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter23.xhtml" id="c36R.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter24.xhtml" id="c3AE.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter25.xhtml" id="c3DV.xhtml" media-type="application/xhtml+xml"/>
    <item href="prologue.xhtml" id="c3F.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter26.xhtml" id="c3HU.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter27.xhtml" id="c3PH.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter28.xhtml" id="c3XR.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter29.xhtml" id="c42T.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter30.xhtml" id="c461.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter31.xhtml" id="c4A0.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter32.xhtml" id="c4F0.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter33.xhtml" id="c4M0.xhtml" media-type="application/xhtml+xml"/>
    <item href="acknowledgements.xhtml" id="c4VE.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter01.xhtml" id="c5T.xhtml" media-type="application/xhtml+xml"/>
    <item href="titlepage.xhtml" id="c9.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter02.xhtml" id="cBP.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter03.xhtml" id="cGJ.xhtml" media-type="application/xhtml+xml"/>
    <item href="copyright.xhtml" id="cM.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter04.xhtml" id="cMY.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter05.xhtml" id="cSP.xhtml" media-type="application/xhtml+xml"/>
    <item href="chapter06.xhtml" id="cY4.xhtml" media-type="application/xhtml+xml"/>
    <item href="cover.jpg" id="image_rsrc51H.jpg" media-type="image/jpeg"/>
    <item href="stylesheet.css" id="stylesheet.css" media-type="text/css"/>
    <item href="toc.ncx" id="toc.ncx" media-type="application/x-dtbncx+xml"/>
  </manifest>
  <spine toc="toc.ncx">
    <itemref idref="c0.xhtml"/>
    <itemref idref="c9.xhtml"/>
    <itemref idref="cM.xhtml"/>
    <itemref idref="c3F.xhtml"/>
    <itemref idref="c5T.xhtml"/>
    <itemref idref="cBP.xhtml"/>
    <itemref idref="cGJ.xhtml"/>
    <itemref idref="cMY.xhtml"/>
    <itemref idref="cSP.xhtml"/>
    <itemref idref="cY4.xhtml"/>
    <itemref idref="c136.xhtml"/>
    <itemref idref="c179.xhtml"/>
    <itemref idref="c1A1.xhtml"/>
    <itemref idref="c1F2.xhtml"/>
    <itemref idref="c1ME.xhtml"/>
    <itemref idref="c1T5.xhtml"/>
    <itemref idref="c1X3.xhtml"/>
    <itemref idref="c210.xhtml"/>
    <itemref idref="c25D.xhtml"/>
    <itemref idref="c29F.xhtml"/>
    <itemref idref="c2DR.xhtml"/>
    <itemref idref="c2J8.xhtml"/>
    <itemref idref="c2R4.xhtml"/>
    <itemref idref="c2X6.xhtml"/>
    <itemref idref="c322.xhtml"/>
    <itemref idref="c32S.xhtml"/>
    <itemref idref="c36R.xhtml"/>
    <itemref idref="c3AE.xhtml"/>
    <itemref idref="c3DV.xhtml"/>
    <itemref idref="c3HU.xhtml"/>
    <itemref idref="c3PH.xhtml"/>
    <itemref idref="c3XR.xhtml"/>
    <itemref idref="c42T.xhtml"/>
    <itemref idref="c461.xhtml"/>
    <itemref idref="c4A0.xhtml"/>
    <itemref idref="c4F0.xhtml"/>
    <itemref idref="c4M0.xhtml"/>
    <itemref idref="c4VE.xhtml"/>
  </spine>
  <guide>
    <reference type="start" title="Start" href="cover.xhtml"/>
  </guide>
</package>
epubveri output:
Code:
OEBPS/content.opf	9	14	ERROR RSC-005: attribute "opf:event" is not allowed here
OEBPS/content.opf	6	17	ERROR RSC-005: attribute "opf:role" is not allowed here
OEBPS/content.opf	13	3	ERROR RSC-005: EPUB 3 requires a navigation document (a manifest item with properties="nav")
epubcheck output:
Code:
content.opf Line:13 Col:13 ERROR(RSC-005): Error while parsing file: Exactly one manifest item must declare the "nav" property (number of "nav" items: 0).
content.opf Line:9 Col:38 ERROR(RSC-005): Error while parsing file: attribute "opf:event" not allowed here; expected attribute "id"
content.opf Line:6 Col:32 ERROR(RSC-005): Error while parsing file: attribute "opf:role" not allowed here; expected attribute "dir", "id" or "xml:lang"
Now changing back to ePub 2, I got the following differences.

epubveri output:
Code:
OEBPS/content.opf	11	5	ERROR RSC-005: element "meta" is missing a required attribute
OEBPS/content.opf	11	11	ERROR RSC-005: attribute "property" is not allowed here
epubcheck output:
Code:
content.opf Line:11 Col:63 ERROR(RSC-005): Error while parsing file: attribute "property" not allowed here; expected attribute "content", "id", "name", "scheme" or "xml:lang"
content.opf Line:11 Col:63 ERROR(RSC-005): Error while parsing file: element "meta" missing required attributes "content" and "name"
content.opf Line:11 Col:83 ERROR(RSC-005): Error while parsing file: text not allowed here; expected the element end-tag

Last edited by JSWolf; Yesterday at 02:46 PM.
JSWolf is offline   Reply With Quote
Old Yesterday, 04:00 PM   #257
Kayadelenium
Zealot
Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!Kayadelenium rocks like Gibraltar!
 
Kayadelenium's Avatar
 
Posts: 100
Karma: 100000
Join Date: Jul 2026
Location: Planet Earth
Device: Kobo Forma
Thanks for this. I rebuilt both books from your OPF and ran the two tools side by side.

The short answer first, because I'd rather say it plainly than bury it: in both cases we report the same errors as epubcheck, with the same IDs on the same lines, and the same number of them. Nothing is missed and nothing is invented. What differs is the column and the wording — and one of those was worth fixing.

The message that didn't say enough. You're right that this is close to useless:

Code:
element "meta" is missing a required attribute
epubcheck names them, and now so do we:

Code:
element "meta" is missing required attributes "content" and "name"
The commonest case isn't meta at all — it's an img with no alt. On my 405-book test library that message occurs 3,434 times, and until now not one of them mentioned alt. It also means a tool reading our JSON can act on the finding instead of parsing English. Both are in the next release.

The third epubcheck line in your EPUB 2 output. "text not allowed here" — we do implement that one. What you're seeing is deliberate: once an element has already failed on its attributes, we don't go on to report its content as well. Give the same meta valid attributes and stray text and we report it:

Code:
ERROR RSC-005: stray text is not allowed directly in "meta"; wrap it in an element
So epubcheck reports both, we report the first. Our RSC-005 count is lower than epubcheck's on purpose, so one mistake reads as one problem. If you'd rather see every consequence of a defect listed, that's a fair argument and I'd like to hear it — it's a choice, not a limitation.

The columns. We point at where a construct starts, epubcheck at where it ends. For opf:role on line 6 we say column 17, where the attribute begins; epubcheck says 32, just past it. Same for the nav one — line 12 either way, column 3 against 13. Neither is wrong, and ours is the position an editor would put a cursor at. I'm not planning to change it, but you were diffing columns, so you should know it's a decision rather than an accident.

The nav wording differs too — we say a navigation document is required, epubcheck says exactly one manifest item must declare the "nav" property. Same ID, same line, same defect, and I think both are clear enough to leave alone.

One caveat on all of the above: your manifest and spine were elided in the post, so I rebuilt them minimally. If the real file produces anything beyond the lines you quoted, send it and I'll look at the actual book rather than my reconstruction.
Kayadelenium is offline   Reply With Quote
Advert
Old Yesterday, 04:03 PM   #258
JSWolf
Resident Curmudgeon
JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.
 
JSWolf's Avatar
 
Posts: 84,649
Karma: 153744859
Join Date: Nov 2006
Location: Roslindale, Massachusetts
Device: Kobo Libra 2, Kobo Aura H2O, PRS-650, PRS-T1, nook STR, PW3
All the errors were just in the OPF. No other errors outside of the OPF.
JSWolf is offline   Reply With Quote
Reply


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
EPUBCheck v4.2.6 jhowell ePub 0 06-30-2021 03:49 PM
EPUBCheck v4.2.5 jhowell ePub 0 03-23-2021 09:45 AM
EPUBCheck v4.2.4 jhowell ePub 3 06-24-2020 09:51 AM
EPUBCheck v4.1.1 Doitsu ePub 2 03-18-2019 10:39 AM
Web-based epubcheck upgraded to epubcheck 1.0.5 kjk ePub 4 02-09-2010 09:53 PM


All times are GMT -4. The time now is 01:07 AM.


MobileRead.com is a privately owned, operated and funded community.