foreign>Pendant la généralisation, les éléments DITA sont modifiés en fonction de la valeur de l'attribut class pour utiliser le nom d'un élément ancêtre. On ne peut pas le faire avec le contenu d'un élément <foreign> spécialisé parce que les éléments contenus ne sont pas des éléments DITA et n'ont pas d'attributs class.
À la place, on devrait seulement généraliser l'élément <foreign> lui-même avec les règles normales.
Le contenu de l'élément <foreign> devrait être exporté vers un fichier séparé et replacé en ligne avec un
élément <object>. L'élément <object> devrait pointer vers le fichier généré en utilisant
son attribut data. La valeur de l'attribut type sur
l'élément <object> devrait être paramétrée à "DITA-foreign".
L'élément <object> est déjà permis dans l'élément <foreign>. S'il est présent
pendant la généralisation, il ne devrait pas être exporté vers le fichier séparé. L'élément <object> original
ne devrait pas être modifié sauf obligation des règles ordinaires de généralisation. Cet élément <object>
est utilisé pour le contenu alternatif dans les systèmes de publication qui ne peuvent pas afficher le contenu de <foreign>.
Un élément <foreign> peut contenir plusieurs éléments principaux, hormis le contenu alternatif.
Pour les recevoir, le contenu exporté devrait avoir un élément racine <foreign>.
Le nom du fichier exporté devrait commencer par « dita-generalized- » afin d'aider les utilisateurs à
reconnaître l'origine des fichiers générés. Il est recommandé pour le nom du fichier qu'il contienne également l'identificateur du thème,
le type de spécialisation et l'identificateur de l'élément ou un identificateur généré. Par exemple, le premier objet <mathml>
dans le thème "topicid" se nommerait "dita-generalized-topicid-mathml1.xml".
Par exemple, un document DITA peut contenir une spécialisation de <foreign> pour MathML.
Il pourrait ressembler à quelque chose comme :
<mathml class="+ topic/foreign mathml/mathml ">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>x</mi><mo>+</mo><mn>3</mn>
</math>
<object><desc>X plus three</desc></object>
</mathml>
Le conteneur <mathml>, qui est un élément DITA normal, devrait être généralisé en utilisant les règles normales.
L'élément math, qui n'est pas un élément DITA, sera exporté vers un autre fichier.
L'élément <object> restera :
<foreign class="+ topic/foreign mathml/mathml "> <object data="dita-generalized-topicid_mathml1.xml" type="DITA-foreign"/> <object><desc>X plus three</desc></object> </foreign>
Contenu du fichier « dita-generalized-topicid_mathml1.xml » :
<foreign class="+ topic/foreign mathml/mathml ">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>x</mi><mo>+</mo><mn>3</mn>
</math>
</foreign>
Un objet peut aussi contenir plusieurs éléments <object> :
<mathml class="+ topic/foreign mathml/mathml ">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>x</mi><mo>+</mo><mn>3</mn>
</math>
<object><desc>X plus three</desc></object>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>y</mi><mo>-</mo><mn>2</mn>
</math>
</mathml>
Le conteneur <mathml>, qui est un élément DITA normal, devrait être généralisé en utilisant
les règles normales. Un fichier devrait être généré pour chaque ensemble d'éléments liés par le conteneur et tous les éléments
<object> existants. Ici, deux fichiers seront générés, et deux nouveaux éléments <object>
ajoutés à la source :
<foreign class="+ topic/foreign mathml/mathml "> <object data="dita-generalized-topicid_mathml1.xml" type="DITA-foreign"/> <object><desc>X plus three</desc></object> <object data="dita-generalized-topicid_mathml2.xml" type="DITA-foreign"/> </foreign>
Contenu du fichier « dita-generalized-topicid_mathml1.xml » :
<foreign class="+ topic/foreign mathml/mathml ">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>x</mi><mo>+</mo><mn>3</mn>
</math>
</foreign>
Contenu du fichier « dita-generalized-topicid_mathml2.xml » :
<foreign class="+ topic/foreign mathml/mathml ">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>y</mi><mo>-</mo><mn>2</mn>
</math>
</foreign>
OASIS DITA Version 1.1 Architectural Specification — OASIS Standard, 1 August 2007
Copyright © OASIS Open 2005, 2007. All Rights Reserved.