在epubcheck中验证epub时出错

时间:2014-03-27 09:01:42

标签: ruby-on-rails xhtml epub epub3

在rails中生成book.epub并在epubcheck工具中验证book.epub。我遇到了很多错误,修正了除了以下错误之外的一切:

错误:/book.epub/section.xhtml(14,85):此处不允许使用属性“data-align”;预期属性“dir”,“id”,“lang”,“style”,“title”或“xml:lang”

错误:/book.epub/section.xhtml(15,8):此处不允许使用元素“br”;期望元素结束标记或元素“地址”,“blockquote”,“del”,“div”,“dl”,“h1”,“h2”,“h3”,“h4”,“h5”,“h6 “,”hr“,”ins“,”noscript“,”ns:svg“,”ol“,”p“,”pre“,”script“,”table“或”ul“(xmlns:ns =” http://www.w3.org/2000/svg“)

如果我在sigil编辑器中打开并保存文件,div或br相关错误就会得到解决。但我想解决它,而不是在任何编辑器中打开它。

下面的代码是xhtml:

的一部分
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
   <title>File 1: H1</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
   <link href="stylesheet.css" type="text/css" rel="stylesheet"/>
   <link href="page_styles.css" type="text/css" rel="stylesheet"/>
  </head>
  <body class="publitory">
    <h1 id="File_1_5008715178345834">H1</h1>
    <h2 id="File_1_1188526892007714">H2</h2>
    <h3 id="File_1_4556759710045751">H3</h3>
    <h4 id="File_1_6171405939859093">H4</h4>
    <h2 id="File_1_410970362765287">H2</h2>
    <p> 
      <div style="margin: 0px auto; width: 35%;" data-align="Middle" class="image_content">
        <img src="bookf779ea3e8163a8345602bc3e0c2ce04d9bffb24d.jpeg" width="100%" alt="Book Content Book Content Book Content Book Content Book Content Book Content Book Content Book Content "/>      
        <div class="caption" style="clear:both;">Book Content Book Content Book Content Book Content Book Content Book Content Book Content Book Content</div>             
      </div>
    </p>
    <p>
      <br/>
    </p>
    <h3 id="File_1_3792181513523657">H3</h3>
  </body>
</html>

帮我解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:2)

第二个错误似乎已经解决,但仍然不清楚问题是什么(<br/><br></br>在XHTML中是等效的。)

第一个错误只是由data-align属性引起的,该属性在XHTML 1.1中无效。它似乎用于标记一个元素,它应该通过CSS以某种方式与中间对齐。修复程序取决于CSS代码。您应该替换对齐的任何CSS规则以使用不同的选择器。最自然的方法是在元素中添加一个类:

  <div style="margin: 0px auto; width: 35%;" class="Middle image_content">

并通过选择器[data-align="Middle"]替换CSS代码中的.Middle选择器。