XML 语法
标记
XML 使用 < >
来定义标记
所有的 XML 标记必须结束。<para>
必须有一个与之配对的</para>
;或者使用空标记,例如<para/>
XML 标记大小写敏感。<para>
和<PARA>
是两个不同的标记;在 Docbook 中,所有的标记都是小写的
标记必须正确的嵌套,不允许相互嵌套
<section><para></section></para> 错误
<section><para></para></section> 正确
元素
XML 使用开始标记和结束标记来定义元素。例如<para>段落</para>
;或者使用空标记,例如<xref linkend="ln"/>
元素可以带有一个或多个属性,也可以不带属性。属性值必须加引号,例如<para id="p1">
处理指令
使用<? ?>
括起来,例如:<?linebreak?>
插入一个断行符参见
文件头部
<?xml version='1.0' encoding="UTF-8"?>
<!DOCTYPE article
PUBLIC "-//OASIS//DTD DocBook XML V4.5/zh_cn" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
处理指令 | |
XML 的版本是1.0 | |
文档的编码是 UTF-8 | |
开始声明 DTD(文档类型定义) | |
声明文档的根元素是 article | |
公共标识 | |
系统标识 |
实体
给内容指定一个名称,通过名称引用。引用时以&
起始,;
结束。
这样定义一个实体
<!ENTITY x "XML">
输入&x;
,XML 会用 XML
替换它
以上是内部实体,可以通过定义外部实体来引用外部文档
<!ENTITY docbook SYSTEM "docbook.xml">
输入&docbook;
,会将docbook.xml
文件中的内容插入到当前位置
内部实体和外部实体都是普通实体,只能够在 DTD 中定义
<?xml version='1.0' encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5/zh_cn"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[
<!ENTITY x "XML">
<!ENTITY docbook SYSTEM "docbook.xml">
]>
这里声明 DTD 的方法是引用外部 DTD | |
自己定义的实体为内部 DTD |
- 内部 DTD 的定义优先于外部 DTD,如果你定义的实体外部 DTD 中已包含,引用时使用的是你自己的定义
有一些特殊字符不能直接插入 XML 中,例如<
、&
、空格字符
[50],使用<
、&
、
[51]输入这些字符
[50] 不管有多个空格,XML 都认为只有一个
[51] 它们预先定义在外部 DTD 中
参见/usr/share/xml/docbook/xml-dtd-4.5/ent/isonum.ent