EPUBCheck OPF-004: felaktig prefixattribut
Uppdaterad:
EPUBCheck OPF-004 är ett varningsmeddelande: “Invalid prefix declaration: leading or trailing whitespace is not allowed.” Prefixattributet på paketelementet är inte skrivet i den syntax som EPUB kräver. Det attributet kopplar korta prefix (såsom ibooks) till ordbok URI:er, och EPUBCheck rapporterar varje typ av syntaxfel med sin egen variant av OPF-004.
Det officiella meddelandet
Invalid prefix declaration: leading or trailing whitespace is not allowed.
- Standardsvårighetsgrad
- Varning. EPUB är fortfarande giltig, men något kan troligen orsaka problem i vissa läsappar. EPUBCheck avslutas med 0 om du inte passerar --failonwarnings.
- EPUBCheck version
- 5.4.0
Typiska orsaker
- OPF-004: mellanslag eller radbrytningar i början eller slutet av attributvärdet; OPF-004a: ett tomt prefix, ett kolon utan något namn före det.
- OPF-004b: ett prefixnamn som inte är ett giltigt XML-namn (NCName), till exempel ett som börjar med en siffra eller innehåller en snedstreck; OPF-004c: ett mellanrum mellan namnet och dess kolontecken, som i "ibooks : http://…".
- OPF-004d: inget mellanrum mellan kolontecknet och URI, som i "ibooks:http://…"; OPF-004e: en tab, radbrytning eller annat olagligt blanksteg mellan prefixet och URI.
- OPF-004f: kartläggningar separerade av något annat än vanligt mellanslag, eller ihoptussade.
Hur man åtgärdar det
- Hitta prefixattributet på paketelementet i .opf-filen.
- Skriv varje mappning som prefixnamn, ett kolon, ett mellanslag och ordlistans URI, och separera mappningar med vitt utrymme, till exempel
prefix="ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/ foaf: http://xmlns.com/foaf/spec/". - Ta bort vita utrymmen i början och slutet av värdet, ge varje mappning ett namn som börjar med en bokstav (endast bokstäver, siffror, bindestreck och understrykningar), och lägg kolon direkt efter namnet.
- Reserverade prefix som dcterms, rendition och schema behöver ingen deklaration, så du kan ofta ta bort attributet helt om det bara mappar dessa.
När det inte är detta
Om syntaxen är rätt men ett prefix saknar URI eller har en ogiltig, är det OPF-005 eller OPF-006.
Även rapporterat som
OPF-004a(fel): Invalid prefix declaration: found empty prefix.OPF-004b(fel): Invalid prefix "%1$s": must be a valid non-colonized name (aka "NCName").OPF-004c(fel): Invalid prefix declaration: prefix "%1$s" must be immediately followed by a colon character (":").OPF-004d(fel): Invalid prefix declaration: prefix "%1$s" must be separated by its URI with a space.OPF-004e(varning): Invalid prefix declaration: found illegal whitespace between prefix and URI.OPF-004f(varning): Invalid prefix declaration: found illegal whitespace between prefix mappings.
Villkor som används här
Andra OPF meddelanden
OPF-003Item "…" exists in the EPUB, but is not declared in the OPF manifest.OPF-005Invalid prefix declaration: URI for prefix "…" doesn’t exist.OPF-002The OPF file "…" was not found in the EPUB.OPF-006Invalid prefix declaration: URI "…" is not a valid URI.OPF-001There was an error when parsing the EPUB version: ….OPF-007Re-declaration of reserved prefix "…".
Källor
Meddelandetext och allvarlighetsgrad från EPUBCheck 5.4.0 (W3C, BSD-3-Clause). Förklaring av EpubCC.