prolog中不允许使用maven docbook插件内容

时间:2012-03-24 02:21:41

标签: xml xslt maven docbook

我正在使用maven docbook插件(com.agilejava.docbkx),我正在使用自定义xsl文件来覆盖某些属性,它看起来像:

<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:attribute-set name="section.title.properties">
    <xsl:attribute name="font-family">Times</xsl:attribute>
  </xsl:attribute-set>
</xsl:stylesheet>

当我运行maven插件时,我收到以下错误

Embedded error: org.xml.sax.SAXParseException: Content is not allowed in prolog.

我在Windows上运行,我尝试在记事本,Notepad ++,Eclipse和Cygwin中创建该文件,但错误。有谁知道为什么?

3 个答案:

答案 0 :(得分:1)

导入主docbook样式表后:

<xsl:import href="urn:docbkx:stylesheet"/>

一切都很好。

urn:docbkx:stylesheet可视为符号链接。 urn:docbkx:stylesheet实际导入的内容取决于您在pom.xml中指定的自定义(html,xhtml等)。如果您要使用xhtml / chunk.xsl自定义,请先在<xhtmlCustomization>中指定配置pom.xml。然后在您的XSL中指定它,

<xsl:import href="urn:docbkx:stylesheet/chunk.xsl"/> 

在这种情况下,插件将获取chunk.xsl张xhtml样式表。有关详细信息以及所需的完整配置,请参阅How to Use docbkx-tools as Maven DocBook plugin博客文章。

答案 1 :(得分:0)

在文档开头的开始标记之前检查样式表中是否有任何字符(包括空格):

<?xml ...

这被称为xml prolog,建议使用,但W3C不要求。 (另一种解决方案是完全删除它。)

另外,请不要忘记检查构建中的其他XML文件(也许它是有问题的Maven POM文件......)

答案 2 :(得分:0)

如果您已经从在Web浏览器中打开的XML中复制并粘贴,那么您可能已经完成了我已经完成的工作,即复制并粘贴+和 - 小部件以扩展和收缩xml片段。

这会在您的副本中加载“ - ”和“+”字符,并使验证器失败。