最新消息:20210917 已从crifan.com换到crifan.org

【已解决】docbook编译html出错:Element xlink in namespace ‘http://docbook.org/ns/docbook’ encountered in para, but no template matches.

Docbook crifan 1897浏览 0评论

【问题】

写了个docbook,去编译为html期间,出错:

Resolve: pubID crl.ent sysID https://www.crifan.org/files/res/docbook/entity/crl.ent
Found public match crl.ent
Making portrait pages on A4 paper (210mmx297mm)
Element xlink in namespace 'http://docbook.org/ns/docbook' encountered in para, but no template matches.
Element xlink in namespace 'http://docbook.org/ns/docbook' encountered in para, but no template matches.
Element xlink in namespace 'http://docbook.org/ns/docbook' encountered in para, but no template matches.
Catalogs cleanup
Free catalog entry crl.ent
Free catalog entry /home/develop/docbook/tools_root/docbook-xsl-ns-1.77.1/

如图:

Element xlink in namespace docbook encountered in para but no template matches

即:

Element xlink in namespace ‘http://docbook.org/ns/docbook’ encountered in para, but no template matches.

【解决过程】

1.参考之前自己的:

【已解决】docbook中使用xsltproc出错:Element xxx in namespace xxx encountered in book, but no template matches

去找找,哪里包含了xlink,但是没有包含对应的

‘http://docbook.org/ns/docbook’

的。

2.好像发现问题了:

之前自己的docbook中,关于链接,都是用的是link,比如:

<para>详见:<link xl:href="https://www.crifan.org/csharp_get_current_right_click_treenode/">【已解决】如何获得C#中右击弹出菜单时对应的当前所右击那个TreeNode</link></para>

而此处,我不小心,把link弄成了xlink:

<para>相关旧帖:<xlink xl:href="https://www.crifan.org/gnu_binutils_tools/">GNU binutils工具使用</xlink></para>

所以,此处,有三行的报错:

Element xlink in namespace 'http://docbook.org/ns/docbook' encountered in para, but no template matches.
Element xlink in namespace 'http://docbook.org/ns/docbook' encountered in para, but no template matches.
Element xlink in namespace 'http://docbook.org/ns/docbook' encountered in para, but no template matches.

对应着,docbook源码中的,三处的xlink:

<para>相关旧帖:<xlink xl:href="https://www.crifan.org/gnu_binutils_tools/">GNU binutils工具使用</xlink></para>
<para>相关旧帖:<xlink xl:href="https://www.crifan.org/summary_about_toolchain_cross_compiler/">【整理】关于Toolchain,cross toolchain,cross compiler</xlink></para>
<para>参考官网<xlink xl:href="http://www.gnu.org/software/binutils/">GNU Binutils</xlink>的解释,可以解释为:</para>

3.所以,去把三处的xlink,都改为link:

<para>相关旧帖:<link xl:href="https://www.crifan.org/gnu_binutils_tools/">GNU binutils工具使用</link></para>
<para>相关旧帖:<link xl:href="https://www.crifan.org/summary_about_toolchain_cross_compiler/">【整理】关于Toolchain,cross toolchain,cross compiler</link></para>
<para>参考官网<link xl:href="http://www.gnu.org/software/binutils/">GNU Binutils</link>的解释,可以解释为:</para>

如图:

all three xlink to link

再去编译,即可解决此问题,就没了此错误了:

no error about namespace

 

【总结】

docbook编译html期间出现:

Element xlink in namespace ‘http://docbook.org/ns/docbook’ encountered in para, but no template matches.

的错误,

原因是:

docbook的xml源码中,对于链接,在para中用了xlink

而xlink,是link中的属性的前缀,不能直接在此处用的。

解决办法是:

把上面的xlink,改为link,就可以正常存在于para中了。

比如,把:

<para>相关旧帖:<xlink xl:href="https://www.crifan.org/gnu_binutils_tools/">GNU binutils工具使用</xlink></para>

改为:

<para>相关旧帖:<link xl:href="https://www.crifan.org/gnu_binutils_tools/">GNU binutils工具使用</link></para>

即可。

 

注:

关于xlink和link的区别,详见:

【整理】Docbook中的xlink和link的区别和联系

转载请注明:在路上 » 【已解决】docbook编译html出错:Element xlink in namespace ‘http://docbook.org/ns/docbook’ encountered in para, but no template matches.

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
92 queries in 0.213 seconds, using 23.62MB memory