docbook中用于代码和屏幕输出等内容,对应的是programlisting和screen
![]() |
XML中的实体和CDATA |
|---|---|
|
对于docbook中写programlisting和screen等方面的东西 会涉及到CDATA方面的事情,其和XML的中的实体有关。 对于XML的实体不了解的,可以去参考:XML中的实体引用 |
例 6.31. 举例:带CDATA的programinglist
<programlisting language="c">
<![CDATA[
for (setno = 0; setno < nr_sets; setno++, nmtd++) {
pr_debug("initialising set %d (%p, info %p)\n", setno, nmtd, info);
s3c2410_nand_init_chip(info, nmtd, sets);
nmtd->scan_res = nand_scan_ident(&nmtd->mtd,(sets) ? sets->nr_chips : 1);
if (nmtd->scan_res == 0) {
s3c2410_nand_update_chip(info, nmtd);
nand_scan_tail(&nmtd->mtd);
s3c2410_nand_add_partition(info, nmtd, sets);
}
if (sets != NULL)
sets++;
}
]]>
</programlisting>
上述,就是由于programlisting的内容中出现了&,<,>,才用<![CDATA[和]]>括起来的。
例 6.32. 举例:不带CDATA的programinglist
<programlisting language="c">
for (setno = 0; setno < nr_sets; setno++, nmtd++) {
pr_debug("initialising set %d (%p, info %p)\n", setno, nmtd, info);
s3c2410_nand_init_chip(info, nmtd, sets);
nmtd->scan_res = nand_scan_ident(&nmtd->mtd,(sets) ? sets->nr_chips : 1);
if (nmtd->scan_res == 0) {
s3c2410_nand_update_chip(info, nmtd);
nand_scan_tail(&nmtd->mtd);
s3c2410_nand_add_partition(info, nmtd, sets);
}
if (sets != NULL)
sets++;
}
</programlisting>
上述,就是由于programlisting的内容中出现了:&,<,>
所以才分别用:&,<,>,去替换的。