【问题】
之前自己已经写好的,docbook的xml文件,
用XMLmind XML Editor去加载,结果出现错误提示:
element "note" from namespace "http://docbook.org/ns/docbook" not allowed in this context
【解决过程】
1.尝试,把note:
<?xml version='1.0' encoding="utf-8"?> <note xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xl="http://www.w3.org/1999/xlink" xml:id="common_multi_format" > ... </note>
改为tip:
<?xml version='1.0' encoding="utf-8"?> <tip xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xl="http://www.w3.org/1999/xlink" xml:id="common_multi_format" > ... </tip>
结果还是类似错误:
element "tip" from namespace "http://docbook.org/ns/docbook" not allowed in this context
2.后来去看了下xml源代码,发现,此处的note的内容,是放在abstract之下的:
<abstract> <para>本文先简介了什么是Docbook,然后详细介绍了如何搭建中文的Docbook开发环境,再详细记录了Docbook开发过程中所遇到的各种注意事项和遇到的问题及解决办法,同时给出很多常见的Docbook中各种元素的示例代码,另外也记录了一些值得参考的Docbook相关的资料。</para> &entity_common_multi_format; </abstract>
引用的entity_common_multi_format是entity_common_multi_format.xml:
<?xml version='1.0' encoding="utf-8"?> <note xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xl="http://www.w3.org/1999/xlink" xml:id="common_multi_format" > ... </note>
所以就是,在abstract的子节点出现note或tip。
然后查了半天,最后参考:
abstract
而发现:
Children
The following elements occur in abstract:
anchor
,formalpara
,info
(db.titleforbidden.info),info
(db.titleonly.info),para
,simpara
,title
,titleabbrev
.
即,abstract的子节点中,不允许有note或tip。
3.所以去改为,其所运行的info:
<?xml version='1.0' encoding="utf-8"?> <info xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xl="http://www.w3.org/1999/xlink" xml:id="common_multi_format" > ... </info>
试试。结果还是不行,貌似是因为此处的info,是:
info
(db.info),info
(db.titleforbidden.info),info
(db.titleonly.info),info
(db.titleonlyreq.info),info
(db.titlereq.info).
而不是,那个单独的这种,比如单独的note:
4.所以,再想其他办法。
发现了,abstract下,可以正常支持para,para下面支持独立的note或tip。
所以可以改为:
<abstract> <para>本文先简介了什么是Docbook,然后详细介绍了如何搭建中文的Docbook开发环境,再详细记录了Docbook开发过程中所遇到的各种注意事项和遇到的问题及解决办法,同时给出很多常见的Docbook中各种元素的示例代码,另外也记录了一些值得参考的Docbook相关的资料。</para> <para>&entity_common_multi_format;</para> </abstract>
这样,para内部,不论是note还是tip,就都可以了。
就可以消除此错误了。
【总结】
docbook的语法规则,还是尽量要遵守的。。。
转载请注明:在路上 » 【已解决】用XMLmind XML Editor加载Docbook的xml出现错误提示:element "note" from namespace "http://docbook.org/ns/docbook" not allowed in this context