Loading ...
Sorry, an error occurred while loading the content.

Re: [ebook-community] Frustration with OEBPS to LIT, DTD Namespace error

Expand Messages
  • Jon Noring
    [Cross-posted to the MS_Reader Yahoo Group for archival there.] Scythic posted to The eBook Community (TeBC) about his problems with ... Well, the problem is
    Message 1 of 1 , Nov 15, 2003
    • 0 Attachment
      [Cross-posted to the MS_Reader Yahoo Group for archival there.]


      Scythic posted to The eBook Community (TeBC) about his problems with
      converting OEBPS 1.0.1 Publications to LIT:

      > I'm looking for help with the following error:
      >
      > ERROR: Use of default namespace declaration attribute in DTD not
      > supported.
      >
      > [snip]
      >
      > ... Much to my dismay, it appears that the "upgrade" to internet
      > explorer 6 has broken my ability to create even a simple LIT file
      > from the samples I have been able to find, much less my own .opf.
      >
      > I am trying to construct a LIT from Jon's sample publication from
      > earlier this year, Wuthering Heights...


      Well, the problem is that litgen.dll, the core engine for producing
      LIT files, uses IE's MSXML. Unfortunately, the latest version of
      MSXML for IE6 is fussy with respect to mixed namespaces during
      validation. This is not the fault of OEBPS at all, but how Microsoft
      has recently chosen to handle document validation with mixed namespace
      declarations in DTDs.

      The solution that works for me (and I run the latest IE6) is to
      include the required namespace declarations in both the OEBPS
      Documents and the OEBPS Package document.

      Here's a "template" you may try out for all your OEBPS Documents:

      **********************************************************************
      <?xml version="1.0"?>
      <!DOCTYPE html
      PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.0.1 Document//EN"
      "http://openebook.org/dtds/oeb-1.0.1/oebdoc101.dtd">
      <html xml:lang="en-US"
      xmlns="http://openebook.org/namespaces/oeb-document/1.0/">
      <head>
      <title>(insert document title here)</title>
      <link rel="stylesheet" href="yourstyles.css" type="text/x-oeb1-css" />
      <meta content="text/x-oeb1-document" />
      </head>
      <body>
      ...
      **********************************************************************

      Notice in the <html> tag the addition of xmlns pointing to the OEBPS
      document namespace, which for OEBPS 1.0.1 is *not* XHTML (but it is
      XHTML for OEBPS 1.2, but then the litgen.dll only processes OEBPS
      1.0.1 Publications -- it does not recognize OEBPS 1.2.)


      For the OEBPS Package, use:

      **********************************************************************
      <?xml version="1.0"?>
      <!DOCTYPE package
      PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.0.1 Package//EN"
      "http://openebook.org/dtds/oeb-1.0.1/oebpkg101.dtd">
      <package unique-identifier="youruniqidwhateveritis"
      xmlns="http://openebook.org/namespaces/oeb-package/1.0/">
      <metadata>
      <dc-metadata
      xmlns:dc="http://purl.org/dc/elements/1.0/"
      xmlns:oebpackage="http://openebook.org/namespaces/oeb-package/1.0/">
      ...
      **********************************************************************

      Notice you have to add three required namespace declarations for
      the OEBPS 1.0.1 Package document. It's a mess, granted, but note
      that in the OEBPS 1.0.1 Package DTD these namespaces are included.
      You might still get some error or warning messages from litgen, but
      so long as it spits out a LIT file you are fine.


      If this doesn't cure your problem, get back to me in private email.


      Regarding the Wuthering Heights example, I probably need to upgrade
      that to add the namespace declarations in the document itself, as
      shown above. Let me know how it works out.

      Jon Noring
    Your message has been successfully submitted and would be delivered to recipients shortly.