Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EPUB CFI references cannot refer to content within all content documents in an EPUB3 package #226

Closed
GoogleCodeExporter opened this issue Mar 24, 2015 · 15 comments
Labels
Priority-Critical Spec-CFI The issue affects the EPUB Canonical Fragment Identifiers specification (not maintained)

Comments

@GoogleCodeExporter
Copy link

EPUB CFI references cannot refer to content within all content documents in an 
EPUB3 package, because (unlike EPUB2), EPUB3 does not require all content 
documents to be referenced in the spine.

http://idpf.org/epub/30/spec/epub30-publications.html#sec-spine-elem

All content documents are not required in the spine: "...The spine represents 
an ordered subset of the Publication Resources listed in the manifest, with 
content items not being referenced being ancillary to those that do..."

EPUB3 CFI seems to only allow content documents to be referenced if they appear 
in the spine, however:

http://idpf.org/epub/linking/cfi/epub-cfi.html#sec-path-child-ref

"...For a Standard EPUB CFI, the leading step in the CFI must start with a 
slash (/) followed by an even number that references the spine child element of 
the Package Document's root package element..."

While the above spine constraint isn't explicit for the Intra-Publication case: 

"...For an Intra-Publication EPUB CFI, the first step must start with a slash 
followed by a node number that references a position in Package Document 
starting from the root package element..."

, this apparent looseness doesn't seem to help, when you consider that only the 
following types of references can be followed with CFIs:

http://idpf.org/epub/linking/cfi/epub-cfi.html#sec-path-indirection

Only the following references are honored (I added the numbers for clarity):

1)For itemref in the Package Document spine, the reference is defined by the 
href attribute of the corresponding item element in the manifest (i.e., that 
the itemref's idref attribute references).

2)For [HTML5] iframe and embed elements, references are defined by the src 
attribute

3)For the [HTML5] object element, the reference is defined by the data attribute

4)For [SVG] image and use elements, references are defined by the xlink:href 
attribute

A CFI always needs to start at a package document (from above); only #1 
provides a means of transitioning from a package document to a content 
document.  Per the text above, it seems #1 only applies to spine itemrefs.  So, 
if a content document does not have a spine itemref, then a CFI cannot refer 
into it.

For this reason (as well as the reasons in issue 225 " Deterministic reading 
order of all content not possible in some cases with EPUB3"), it seems EPUB3 
should be changed to require all content documents to be referenced in the 
spine.


Original issue reported on code.google.com by [email protected] on 8 Jun 2012 at 5:42

@GoogleCodeExporter GoogleCodeExporter added auto-migrated Priority-Critical Spec-CFI The issue affects the EPUB Canonical Fragment Identifiers specification (not maintained) labels Mar 24, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority-Critical Spec-CFI The issue affects the EPUB Canonical Fragment Identifiers specification (not maintained)
Projects
None yet
Development

No branches or pull requests

1 participant