EPUBCheck OPF-004: atributo de prefixo malformado
Atualizado:
EPUBCheck OPF-004 é uma mensagem de aviso: “Invalid prefix declaration: leading or trailing whitespace is not allowed.” O atributo prefixo no elemento do pacote não está escrito na sintaxe que EPUB requer. Esse atributo mapeia prefixos curtos (como ibooks) para URIs de vocabulário, e EPUBCheck relata cada tipo de erro de sintaxe com sua própria variante de OPF-004.
A mensagem oficial
Invalid prefix declaration: leading or trailing whitespace is not allowed.
- Severidade padrão
- Aviso. O EPUB ainda é válido, mas algo provavelmente causará problemas em alguns aplicativos de leitura. EPUBCheck sai com 0, a menos que você passe --failonwarnings.
- versão EPUBCheck
- 5.4.0
Causas típicas
- OPF-004: espaços ou quebras de linha no início ou no final do valor do atributo; OPF-004a: um prefixo vazio, dois pontos sem nome antes dele.
- OPF-004b: um nome de prefixo que não é um nome XML válido (NCName), por exemplo, um que começa com um dígito ou contém uma barra; OPF-004c: um espaço entre o nome e seu dois-pontos, como em "ibooks : http://…".
- OPF-004d: sem espaço entre os dois-pontos e o URI, como em "ibooks:http://…"; OPF-004e: uma tabulação, quebra de linha ou outro espaço em branco ilegal entre o prefixo e o URI.
- OPF-004f: mapeamentos separados por algo além de espaços em branco simples, ou juntos.
Como consertar isso
- Encontre o atributo prefix no elemento package do arquivo .opf.
- Escreva cada mapeamento como o nome do prefixo, dois pontos, um espaço e a URI de vocabulário, e separe os mapeamentos com espaço em branco, por exemplo
prefix="ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/ foaf: http://xmlns.com/foaf/spec/". - Remova espaços em branco no início e no final do valor, dê a cada mapeamento um nome que comece com uma letra (apenas letras, dígitos, hífens e sublinhados), e coloque os dois pontos logo após o nome.
- Prefixos reservados como dcterms, rendition e schema não precisam de declaração, então você pode frequentemente excluir o atributo completamente se ele apenas mapear esses.
Quando não é isso
Se a sintaxe está correta, mas um prefixo não tem URI ou tem uma inválida, isso é OPF-005 ou OPF-006.
Também relatado como
OPF-004a(erro): Invalid prefix declaration: found empty prefix.OPF-004b(erro): Invalid prefix "%1$s": must be a valid non-colonized name (aka "NCName").OPF-004c(erro): Invalid prefix declaration: prefix "%1$s" must be immediately followed by a colon character (":").OPF-004d(erro): Invalid prefix declaration: prefix "%1$s" must be separated by its URI with a space.OPF-004e(aviso): Invalid prefix declaration: found illegal whitespace between prefix and URI.OPF-004f(aviso): Invalid prefix declaration: found illegal whitespace between prefix mappings.
Termos usados aqui
Outras mensagens de OPF
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 "…".
Fontes
Texto da mensagem e severidade de EPUBCheck 5.4.0 (W3C, BSD-3-Clause). Explicação por EpubCC.