La spécialisation des éléments <<foreign>> ou <<unknown>> est une extension ouverte de l'architecture DITA permettant à ceux qui adoptent DITA d'incorporer des vocabulaires normalisés de contenu non textuel, nouveaux ou existants, tels que MathML et SVG, comme des objets de type en-ligne.
Il existe trois méthodes par lesquelles un adoptant DITA peut incorporer du contenu étranger dans DITA :
foreign> ou <unknown> comme une spécialisation de domaine ;foreign> ou <unknown> comme partie d'une spécialisation de structure ;foreign> ou <unknown>.La spécialisation de <foreign> ou de <unknown> devrait normalement s'implémenter
comme un domaine, mais ceux qui cherchent un contrôle accrû sur le contenu peuvent implémenter le vocabulaire étranger dans le cadre
d'une spécialisation de structure.
L'imbrication du contenu dans un élément <foreign> ou <unknown> non spécialisé,
en raison du modèle de contenu ANY, offre le moins de contrôle sur le contenu et gêne l'interopérabilité.
L'attribut class a une utilisation spécifique dans DITA. Il identifie le module de spécialisation
du type d'élément ainsi que les types des éléments ancêtres et les modules de spécialisation auxquels ils appartiennent.
Chaque élément DITA doit avoir un attribut class. Puisque les éléments définis au sein du
vocabulaire étranger ne sont pas des éléments DITA, il n'y a pas d'obligation pour ces éléments d'avoir un
attribut de classe d'architecture. Les éléments qui spécialisent les éléments <foreign> ou <unknown>,
donc des éléments DITA, doivent obligatoirement avoir un attribut class.
Pour des informations plus spécifiques sur la spécialisation des définitions DTD, cf. la section 5.8.4. Modularisation dans les définitions DTD
<!-- declaration for the specialized wrapper -->
<!ENTITY % svg "svg">
<!-- included SVG document type -->
<!ENTITY % SVG.prefix "svg" >
<!ENTITY % svg-qname.mod
PUBLIC "-//W3C//ENTITIES SVG 1.1 Qualified Name//EN"
"svg-qname.mod" >
<!-- definition for the specialized wrapper -->
<!ELEMENT svg ((%SVG.svg.qname;)>
<!ATTLIST svg %global-atts;
class CDATA "+ topic/foreign svg-d/svg "
>
<p>This is an ellipse.
<svg>
<svg:svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<ellipse cx="300" cy="150" rx="200" ry="80"
style="fill:rgb(200,100,50);
stroke:rgb(0,0,100);stroke-width:2"/>
</svg:svg>
</svg>.
</p>
Pour des informations plus spécifiques sur la spécialisation des schémas XML, cf. la section 5.8.5. Modularisation dans les schémas.
<!-- importing MathML document type -->
<xs:import namespace="http://www.w3.org/1998/Math/MathML" schemaLocation="mathml2.xsd">
<!-- definition for the specialized wrapper -->
<xs:element name="mathML" type="mathML.class" />
<xs:complexType name="mathML.class">
<xs:choice>
<xs:element ref="mml:math" />
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
<xs:attribute ref="class" default="+ topic/foreign mathML/mathML"/>
</xs:complexType>
<!-- definition for each element extended by the domain -->
<xs:group name="ma-d-foreign">
<xs:choice>
<xs:element ref="mathML" />
</xs:choice>
</xs:group>
<!-- definition for the named model groups -->
<xs:group name="foreign">
<xs:choice>
<xs:group ref="foreign"/>
<xs:group ref="ma-d-foreign"/>
</xs:choice>
</xs:group>
foreign> spécialisé avec un élément <object> utilisant MathML.
<p>... as in the formula
<object>
<desc>4 + x</desc>
<mathML>
<mml:math display="block">
<mml:mrow>
<mml:mo>∑</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:math>
</mathML>
<object>.
</p>
Section parente 5. Spécialisation DITA
5.3. Spécialisation de structure contre spécialisation de domaine
5.5. Extensibilité des données
Retour au sommaire.
OASIS DITA Version 1.1 Architectural Specification — OASIS Standard, 1 August 2007
Copyright © OASIS Open 2005, 2007. All Rights Reserved.