Мы используем DocBook XSLT для преобразования таблиц CALS в HTML для вывода в Интернете. Некоторые из наших таблиц CALS содержат разметку HTML, в частности списки. Я не уверен, что это нормально, но наш механизм форматирования печати (PDF), который получает таблицы CALS в качестве входных данных, обрабатывает это.
Однако, когда таблицы CALS преобразуются в HTML, разметка списка с тегами отображается в виде строк, а вложенность списка сохраняется в промежутках (странно!).
Обновление: Я подозреваю, что я что-то не так делаю в своем приложении XSLT DocBook, которое предназначено для преобразования таблиц при простом копировании всего другого содержимого из документа со смешанным типом содержимого. Вот воспроизводимый пример:
CALS input:
<section>
<table>
<tgroup cols="1">
<colspec colname="col1"/>
<tbody>
<row>
<entry>
<ol list-style-type="lower-alpha" period-paren="paren">
<li>This is a nested list:<ol list-style-type="number" period-paren="paren">
<li>I'm a list item.</li>
<li>I'm another list item!</li>
</ol></li>
<li>Yet another nested list:<ol list-style-type="number" period-paren="paren">
<li>YALI</li>
<li>YAYALI</li>
</ol></li>
</ol>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
XSLT:
<xsl:stylesheet version="2.0"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="docbook-xsl-1.75.2/xhtml/docbook.xsl"/>
<xsl:template match="/ | /*">
<xsl:apply-templates mode="initial"/>
</xsl:template>
<xsl:template match="table" mode="initial">
<xsl:apply-templates select="." mode="#default"/>
</xsl:template>
<xsl:template match="@*|node()" mode="initial">
<xsl:copy>
<xsl:apply-templates select="@*|node()" mode="#current"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Выход:
<section><div class="table" xmlns="http://www.w3.org/1999/xhtml">
<a id="n5dd3b973684deaa" xmlns:saxon="http://icl.com/saxon"></a><p class="title"><b></b></p>
<div class="table-contents">
<table border="1"><tbody><tr><td>
<span style="color: red"><ol>
<span style="color: red"><li>This is a nested list:<span style="color: red"><ol>
<span style="color: red"><li>I'm a list item.</li></span>
<span style="color: red"><li>I'm another list item!</li></span>
</ol></span></li></span>
<span style="color: red"><li>Yet another nested list:<span style="color: red"><ol>
<span style="color: red"><li>YALI</li></span>
<span style="color: red"><li>YAYALI</li></span>
</ol></span></li></span>
</ol></span>
</td></tr></tbody></table>
</div></div>
<br class="table-break" xmlns="http://www.w3.org/1999/xhtml"/>
</section>