Previous 1 2 Next 25 Replies Latest reply: Dec 20, 2012 6:00 AM by tkchung
ralphiedee Level 2 (335 points)

I have an Apple Fixed layout book, after trying to upload via ITunes Producer I was first getting Error 5107 ( No Landmarks error )


I then got the correct info , removed the guide tags from the .ncx and replaced with my files


Now after trying to upload via ITunes Producer I get Error 9000 unable to parse .opf


Did I read the instructions for Landmarks wrong?


Here is an example from the 5.1 guide


<nav epub:type="landmarks">


<li><a href="coverpg.xhtml" epub:type="cover">Cover</a></li>

<li><a href="titlepg.xhtml" epub:type="titlepage">Title Page</a></li>

<li><a href="chapter.xhtml" epub:type="bodymatter">Start</a></li>

<li><a href="bibliog.xhtml" epub:type="bibliography">Bibliography</a></li>




Below is my code


<nav epub:type="landmarks">


<li><a href="cover.html" epub:type="cover">Cover</a></li>

<li><a href="page1.html" epub:type="page1">Page 1</a></li>

<li><a href="page2.html" epub:type="page2">Page 2</a></li>

<li><a href="page3.html" epub:type="page3">Page 3</a></li>

<li><a href="page4.html" epub:type="page4">Page 4</a></li>

<li><a href="page5.html" epub:type="page5">Page 5</a></li>

<li><a href="page6.html" epub:type="page6">Page 6</a></li>

<li><a href="page7.html" epub:type="page7">Page 7</a></li>

<li><a href="page8.html" epub:type="page8">Page 8</a></li>

<li><a href="page9.html" epub:type="page9">Page 9</a></li>

<li><a href="page10.html" epub:type="page10">Page 10</a></li>

<li><a href="page11.html" epub:type="page11">Page 11</a></li>

<li><a href="page12.html" epub:type="page12">Page 12</a></li>

<li><a href="page13.html" epub:type="page13">Page 13</a></li>

<li><a href="page14.html" epub:type="page14">Page 14</a></li>

<li><a href="page15.html" epub:type="page15">Page 15</a></li>

<li><a href="page16.html" epub:type="page16">Page 16</a></li>

<li><a href="page17.html" epub:type="page17">Page 17</a></li>

<li><a href="page18.html" epub:type="page18">Page 18</a></li>

<li><a href="page19.html" epub:type="page19">Page 19</a></li>

<li><a href="page20.html" epub:type="page20">Page 20</a></li>

<li><a href="page21.html" epub:type="page21">Page 21</a></li>

<li><a href="page22.html" epub:type="page22">Page 22</a></li>

<li><a href="page23.html" epub:type="page23">Page 23</a></li>

<li><a href="page24.html" epub:type="page24">Page 24</a></li>

<li><a href="page25.html" epub:type="page25">Page 25</a></li>

<li><a href="page26.html" epub:type="page26">Page 26</a></li>

<li><a href="page27.html" epub:type="page27">Page 27</a></li>



<li><a href="page28.html" epub:type="page28">Page 28</a></li>

<li><a href="page29.html" epub:type="page29">Page 29</a></li>

<li><a href="page30.html" epub:type="page30">Page 30</a></li>

<li><a href="page31.html" epub:type="page31">Page 31</a></li>

<li><a href="page32.html" epub:type="page32">Page 32</a></li>

<li><a href="page33.html" epub:type="page33">Page 33</a></li>

<li><a href="page34.html" epub:type="page34">Page 34</a></li>

<li><a href="page35.html" epub:type="page35">Page 35</a></li>

<li><a href="page36.html" epub:type="page36">Page 36</a></li>

<li><a href="page37.html" epub:type="page37">Page 37</a></li>

<li><a href="page38.html" epub:type="page38">Page 38</a></li>

<li><a href="page39.html" epub:type="page39">Page 39</a></li>

<li><a href="page40.html" epub:type="page40">Page 40</a></li>

<li><a href="page41.html" epub:type="page41">Page 41</a></li>

<li><a href="page42.html" epub:type="page42">Page 42</a></li>

<li><a href="page43.html" epub:type="page43">Page 43</a></li>

<li><a href="page44.html" epub:type="page44">Page 44</a></li>

<li><a href="page45.html" epub:type="page45">Page 45</a></li>



<li><a href="page46.html" epub:type="page46">Page 46</a></li>

<li><a href="page47.html" epub:type="page47">Page 47</a></li>

<li><a href="page48.html" epub:type="page48">Page 48</a></li>

<li><a href="page49.html" epub:type="page49">Page 49</a></li>

<li><a href="page50.html" epub:type="page50">Page 50</a></li>

<li><a href="page51.html" epub:type="page51">Page 51</a></li>

<li><a href="page52.html" epub:type="page52">Page 52</a></li>

<li><a href="page53.html" epub:type="page53">Page 53</a></li>

<li><a href="page54.html" epub:type="page54">Page 54</a></li>

<li><a href="page55.html" epub:type="page55">Page 55</a></li>

<li><a href="page56.html" epub:type="page56">Page 56</a></li>

<li><a href="page57.html" epub:type="page57">Page 57</a></li>

<li><a href="page58.html" epub:type="page58">Page 58</a></li>

<li><a href="page59.html" epub:type="page59">Page 59</a></li>

<li><a href="page60.html" epub:type="page60">Page 60</a></li>



<li><a href="page61.html" epub:type="page61">Page 61</a></li>

<li><a href="page62.html" epub:type="page62">Page 62</a></li>

<li><a href="page63.html" epub:type="page63">Page 63</a></li>

<li><a href="page64.html" epub:type="page64">Page 64</a></li>

<li><a href="page65.html" epub:type="page65">Page 65</a></li>



<li><a href="page66.html" epub:type="page66">Page 66</a></li>

<li><a href="page67.html" epub:type="page67">Page 67</a></li>

<li><a href="page68.html" epub:type="page68">Page 68</a></li>

<li><a href="page69.html" epub:type="page69">Page 69</a></li>

<li><a href="page70.html" epub:type="page70">Page 70</a></li>

<li><a href="page71.html" epub:type="page71">Page 71</a></li>

<li><a href="page72.html" epub:type="page72">Page 72</a></li>

<li><a href="page73.html" epub:type="page73">Page 73</a></li>

<li><a href="page74.html" epub:type="page74">Page 74</a></li>

<li><a href="page75.html" epub:type="page75">Page 75</a></li>

<li><a href="page76.html" epub:type="page76">Page 76</a></li>

<li><a href="page77.html" epub:type="page77">Page 77</a></li>

<li><a href="page78.html" epub:type="page78">Page 78</a></li>

<li><a href="page79.html" epub:type="page79">Page 79</a></li>

<li><a href="page80.html" epub:type="page80">Page 80</a></li>

<li><a href="page81.html" epub:type="page81">Page 81</a></li>

<li><a href="page82.html" epub:type="page82">Page 82</a></li>

<li><a href="page83.html" epub:type="page83">Page 83</a></li>

<li><a href="page84.html" epub:type="page84">Page 84</a></li>

<li><a href="page85.html" epub:type="page85">Page 85</a></li>

<li><a href="page86.html" epub:type="page86">Page 86</a></li>



Did I miss something here?



Mac Pro, Mac OS X (10.7.2), Mac Pro 8 Core
  • tkchung Level 1 (0 points)

    Hi ralphiedee, I've been having the same problem here, been trying to figure out what's wrong all day. Note the sample ePub I cut from the original does not exhibit any problem.

  • tkchung Level 1 (0 points)

    Hi ralphiedee,


    Ok, I found a workaround that may help, at least it solved my problem.  Since I had cut a sample from the original that I knew was working, I copied the contents from my original opf into a new version of the sample's opf. Klunky workaround, I know, but it did the job and allowed me to finally upload to the store with no more "Error 9000, unable to parse" errors.


    Hope this helps?


  • ralphiedee Level 2 (335 points)

    where is the sample?


    Or does anyone have a sample fixed layout epub ( just the .opf file which has a proper Landmarks code?)



  • tkchung Level 1 (0 points)

    Hi ralphiedee,


    When I say sample, I mean the preview version of the ePub that you need to create for fixed layout books with read aloud content which is what mine is.  Because the error message "unable to parse opf file" doesn't hint at what the actual problem is in the opf, the best way I could tackle that was to create a small ePub from the original, one that I knew would work, and build it back up to the original, adding in small groups of pages at a time, and testing as I went, to see if the error came up again.  Luckily this worked for me.


    Before you do all this, best make sure your ePub validates ok using epubcheck:


    Hope this helps.




  • ralphiedee Level 2 (335 points)

    Thanks for the reply but I'm a bit confused here. Are you referring to taking what I already did, edit down to a few pages and go from there? or is there a sample of an Epub which has the landmark code that validates ?



  • tkchung Level 1 (0 points)

    Hi ralphiedee,


    Yep, I'm referring to taking what you already did, make a copy of that and edit it down to a few pages, and start troubleshooting from that.  This is to address the "unable to parse the opf file" error.


    Regarding landmarks, your <manifest> section in your opf should refer to a table of contents file e.g.


    <item id="toc" href="toc.xhtml" properties="nav" media-type="application/xhtml+xml"/>


    and the toc.xhtml should contain the landmarks code.  Your list of landmarks is meant for ereaders to allow easy navigation to important or highlighted sections of the book, so it does not need to contain all the pages of your book.  For example, this is all I have for the landmarks section in my toc.xhtml for my 57-page book:

    <nav epub:type="landmarks">


                                            <li><a href="pg_cover.xhtml" epub:type="cover">Cover</a></li>

                                            <li><a href="pg_fm01.xhtml" epub:type="frontmatter">Copyright &amp; Acknowledgements</a></li>

                                            <li><a href="pg_fm02.xhtml" epub:type="titlepage">Inside Cover</a></li>

                                            <li><a href="pg00l.xhtml" epub:type="bodymatter">Start</a></li>




    Lastly, for epub:type attribute, there are standard types you should be referring to, which can be found here:




  • ralphiedee Level 2 (335 points)

    OK here is what I did. Condensed the new file into 3 pages, tried to upload and got the same error. I looked closely at your sample and I see the cover has an xhtml file where mine does not.


    Yet when I tried to upload the original full epub I only got a 5107 Landmarks error and not a 9000. This could be for various reasons as this epub was given to me by someone so I did not create it.


    Here is my condensed code ( from the manfest <> downwhich produced a 9000 error



    <item id="pg01" href="page01.xhtml" media-type="application/xhtml+xml"/>

    <item id="pg02" href="page02.xhtml" media-type="application/xhtml+xml"/>

    <item id="pg03" href="page03.xhtml" media-type="application/xhtml+xml"/>


      <item id="cover-jpg" href="images/Kindlefront_cover_1562x2500.jpg" media-type="image/jpeg"/>

    <item id="pg01-jpg" href="images/pg1_2.jpg" media-type="image/jpeg"/>

    <item id="pg02-jpg" href="images/pg3_4.jpg" media-type="image/jpeg"/>

    <item id="pg03-jpg" href="images/pg5_6.jpg" media-type="image/jpeg"/>


    <item id="css" href="style.css" media-type="text/css"/>




    <spine toc="ncx">

    <itemref idref="pg01"/>

    <itemref idref="pg02"/>

    <itemref idref="pg03"/>




    <nav epub:type="landmarks">



    <li><a href="page01.xhtml" epub:type="bodymatter">Start</a></li>







    ****** If you notice, there is no xhtml page for the cover and I used the "bodymatter" tag for the first page


    right off the bat do you se any problem here?





  • tkchung Level 1 (0 points)

    Hi RD,


    First, I would take out the nav section from the opf.  As mentioned, this needs to go into a separate table of contents file, i.e. either a .ncx or a .xhtml file, depending on what version of epub you are creating.


    I notice you have <spine toc="ncx">, this means you should have a node with id="ncx" which is a reference to a table of contents file.  You would define this in your manifest section, like this:




    <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>




    toc.ncx is a separate file which will contain your navigation elements. 


    For epub 2.0, you should be using <guide> in your opf file instead of landmarks, which is very similar to landmarks in terms of its purpose.  e.g.




              <reference type="cover" title="Cover" href="page000.xhtml"/>

              <reference type="text"  title="Content" href="page003.xhtml"/>





    For epub 3.0, <guide> is replaced by <landmarks> but should be located in the toc file instead of the package file, as already mentioned.  I don't believe there's any harm in leaving in the <guide> section for epub 3.0 packages, as epubchecks would simply ignore it.


    The rest of your manifest content looks ok from what you've posted.


    I recommend checking out the epub fixed format sample from iTunes Connect.  It's located under the Deliver Your Content link when you log into your iTunes Connect account.  It's a great resource for building epub 3.0 file and shows exactly how a landmark code should be set up.





  • ralphiedee Level 2 (335 points)

    Tim thanks for the extra info and looking at the file for me, but I still do not understand this as the original epub file when unzipped never had a toc.ncx file. Just had a content.opf which contains the manifest, spine and guide codes.


    In previous fixed layouts for Apple I now see that they had toc.ncx files so I took one from a previous epub copied and pasted into the folder with the content.opf


    NOW, here is the code that needs to be corrected now I need to know what to add here.


    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>

    <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN"


    <ncx xmlns="" version="2005-1">


        <meta content="123456780-12345" name="dtb:uid"/>

        <meta content="0" name="dtb:depth"/>

        <meta content="0" name="dtb:totalPageCount"/>

        <meta content="0" name="dtb:maxPageNumber"/>



        <text>Title Of New Book</text>



        <navPoint id="navPoint-1" playOrder="1">




          <content src="Text/page01.html"/>









  • tkchung Level 1 (0 points)

    Hi RD,


    It sounds rather odd that the original epub had no .ncx file if the spine referenced one.  Did the original epub validate using epubcheck? I'm curious to know what version of epub the package referenced.


    Anyways, you won't need to reference every page in your epub as a navPoint, only the ones you feel are good bookmarks for the publication.  For example, suppose I use page01.xhtml and page03.xhtml as bookmarks, then the <navMap> would look something like this:



        <navPoint id="navPoint-1" playOrder="1">


            <text>This is the label for the start of my book.</text>


          <content src="page01.xhtml"/>


        <navPoint id="navPoint-2" playOrder="2">


            <text>This is the label for stop point 2.</text>


          <content src="page03.xhtml"/>




    Hope this helps?




  • ralphiedee Level 2 (335 points)

    Thx again Tim for all your help. Just to retrace my steps I just took the original epub and ran it theu EPubChecker and got the following result.

    ________________________________________________________________________________ ___

    Using the checking engine from:

    Epubcheck Version 1.0.5


    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(2): bad value for attribute "version"

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(2): attribute "lang" from namespace "" not allowed at this point; ignored

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(9): attribute "property" not allowed at this point; ignored

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(9): required attributes missing

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(9): text not allowed here

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(10): attribute "refines" not allowed at this point; ignored

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(10): attribute "property" not allowed at this point; ignored

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(10): required attributes missing

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(10): text not allowed here

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/content.opf(14): attribute "properties" not allowed at this point; ignored

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/html/toc.html(2) : unknown element "section" from namespace ""

    ERROR: /Users/tuneraider/Downloads/9780987333421_EPUBfixed.epub/OEBPS/html/toc.html(2) : unfinished element


    Check finished with warnings or errors!



    ePubChecker finished checking: 2012-12-18 09:19:51

    ________________________________________________________________________________ ____________________

    Now this epub when trying to upload to Apple via ITunes Producer gave me an Error 5107 'must supply a  "Landmarks"


    Now I'm confused because you first wrote that I need to add the Landmarks code inside the TOC.ncx file which I would have to create since the epub does not have one. But the last msg you then write to add a navmap even though Apple 's error is calling for a Landmarks file.




  • tkchung Level 1 (0 points)

    Hi RD,

    I'm not sure I would trust Epubchecker, since you say it points to version 1.0.5 and google's epubcheck is up to version 3.0 now.  I would stick with downloading the tool directly from google and running the tool from Terminal.


    Can you paste the top of your package file code here? It will say what version epub, ie 2 or 3, you are trying to make.  This is important because it relates to your landmarks.  If you're doing 2.0 you don't need a landmarks section but you should have a guide section.  Vice versa for 3.0.  .ncx files are used by 2.0.


    Again, referring to Apple's sample 3.0 ePub, you'll notice there is no .ncx file and no guide section, and instead there is a toc.xhtml with the landmarks code.




  • ralphiedee Level 2 (335 points)

    Tim, I'm so sorry for all this confusion. I now see that when I downloaded a fresh epub file ( which originally gave me the 5107 error I opened it and it DOES contain a toc.ncx file.


    Just to be sure and know it's a lot easier for me to send you a link to my server with the zip of the file which would be downloadable. You will be able to see yourself instead of this back and forth here.


    Can you provide a private email as I can do this right now for you.



  • tkchung Level 1 (0 points)

    Hi RD,


    Sure, is there a way to PM on here? Otherwise, DM me on twitter, @cruddog.




Previous 1 2 Next