Language reference : Base architecture : Specialization elements : foreign
   
foreign
The <foreign> element allows the introduction of non-DITA content, for example, MathML, SVG, or Rich Text Format (RTF). The <foreign> element or a specialization may contain more than one type of non-DITA content or a mix of DITA and non-DITA content. Specialization of the <foreign> element generally is implemented as a domain, but architects looking for more control over the content may implement foreign vocabularies as structural specializations.
Processors should attempt to display <foreign> content unless otherwise instructed. If the processor cannot render the content, it may emit a warning.
The enabler of the foreign vocabulary must provide the processing and override the base processing for <foreign>.
If <foreign> contains more than one alternative content element, they should all be processed. In the case of <desc> they should be concatenated in a similar way to <section>, but with no title (analogous to <div> in HTML).
If alternate content is desired, specialize the <desc> element to contain it. This specialization of <desc> should be used within the element specialized from <foreign>. Such alternate content must of course be valid wherever the <foreign> specialization is valid.
If no <desc>, <object>, or <image> element is found within an instance of the <foreign> element, the base processing mayemit a warning about the absence of processable content.
The base processing for <object> may emit the content of <foreign> as a file at the location specified by the data attribute of the <object> element. The <object> element should have a data attribute or a <foreign> sub-element but not both. In the event that an <object> element contains both a data attribute and an <foreign> sub-element the processing system should ignore one of them.
Contains
Note: These models represent only the default document types distributed by OASIS. Actual content models will differ with each new document type.
Doctype
Content model
topic, map, concept, ditabase, glossary, glossentry, glossgroup, reference, task, bookmap, classifyMap, subjectScheme, machineryTask, learningAssessment, learningBookmap, learningContent, learningMap, learningOverview, learningPlan, learningSummary
ANY
Contained by
Doctype
Content model
topic (base)
map (base), classifyMap, learningMap
topic (technical content)
map (technical content)
concept
ditabase
glossary, glossentry, glossgroup
reference
task (strict), task (general)
bookmap
subjectScheme
machineryTask
learningAssessment, learningOverview, learningSummary
learningBookmap
learningContent
learningPlan
Inheritance
- topic/foreign
Example 188. SVG Example within a <p> element
<p>... as in the formula
<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>
Example 189. MathML Example within an <object> element
<p>... as in the formula
<object>
<desc>4 + x</desc>
<mathML>
<mml:math display="block">
<mml:mrow>
<mml:mo>&sum;</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:math>
</mathML>
<object>.
</p>
Attributes
Name
Description
Data Type
Default Value
Required?
univ-atts attribute group (includes select-atts, id-atts, and localization-atts groups)
A set of related attributes, described in univ-atts attribute group
global-atts attribute group (xtrf, xtrc)
A set of related attributes, described in global-atts attribute group
class, outputclass
Common attributes described in Other common DITA attributes