Pergunta

Eu gostaria de fazer certas linhas de uma tabela DocBook do conteúdo negrito com base em se o <section> particular tem um determinado atributo definido. Isso é fácil, adicionando uma declaração <xsl:if test="..."> ao DocBook XSL (fo linhas autotoc.xsl / 187-230 - isto é para saída para PDF usando XMLmind).

Eu estou querendo saber, porém, se é má prática para editar o DocBook XSLs próprios. Eu tenho outras personalizações em um XSL separada de meus próprios, a definição de parâmetros na sua maioria, mas não posso imaginar como eu iria introduzir esta lógica condicional - com base em qual linha do TOC está sendo processada - sem colocar algum tipo de código nos originais. Alguma ideia? Como você atualizar para uma versão mais recente DocBook XSL depois de fazer alterações?

Foi útil?

Solução

Import as folhas de estilo DocBook de seu próprio XSLT. Então, (re) definir o modelo Docbook que pretende "substituir".

Uma vez que seu modelo será o mais alto na árvore de importação, ele terá precedência.

Ao fazê-lo de que maneira você não tem que modificar qualquer um dos arquivos docbook XSLT núcleo. Isso fará com que as atualizações do Docbook folhas de estilo mais fácil no futuro.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:import href="xsl/fo/docbook.xsl"/>

<xsl:template match="template-that-you-need-to-redefine">
  ...
</xsl:template>

</xsl:stylesheet> 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top