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的内容中出现了:&,<,>
所以才分别用:&,<,>,去替换的。