Question

J'aime avoir un document XML DocBook qui a un contenu pour plusieurs publics cibles. Y at-il un filtre qui me permet de filtrer les choses nécessaires que pour les utilisateurs « avancés »?

L'attribut de niveau est inventé par moi pour exprimer ce que je pense.

 <?xml version="1.0"?>
 <book>  
   <title lang="en">Documentation</title>

   <chapter id="introduction" level="advanced">  
       <title>Introduction for advanced users</title>
   </chapter>

   <chapter id="introduction" level="basic">  
      <title>Introduction for basic users</title>
   </chapter>  

   <chapter id="ch1">
      <para level="basic">Just press the button</para>
      <para level="advanced">
           Go to preferences to set your
           needs and then start the process 
           by pressing the button.
      </para>
   </chapter>
</book>
Était-ce utile?

La solution

DocBook ne dispose pas d'un attribut level. Peut-être que vous vouliez dire userlevel ?

Si vous utilisez les feuilles de style DocBook XSL pour transformer vos documents, ils ont un support intégré pour le profilage (texte conditionnel). Pour l'utiliser, vous devez

  1. utiliser la version de profilage activée de la feuille de style (par exemple l'utilisation html/profile-docbook.xsl au lieu du html/docbook.xsl habituel), et

  2. spécifier les valeurs d'attributs que vous voulez sur le profil via un paramètre (par exemple, ensemble profile.userlevel à basic).

Chapitre 26 de Bob Stayton DocBook XSL: Le guide complet a tous les détails.

Autres conseils

Deux voies, du haut de ma tête:

  1. Ecrire un script rapide qui prend la level en tant que paramètre et, en utilisant XPath ou des expressions régulières, que seules les recrache XML que vous voulez.
  2. Ecrire une transformation XSLT qui recracher le XML que vous voulez.

(2) est plus propre, mais (1) est probablement plus rapide d'écrire.

scroll top