<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 can 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 can 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 issue 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 can emit a warning about the absence of processable content. - The base processing for
<object>
might 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.
Content models
See appendix for information about this element in OASIS document type shells.
Inheritance
- topic/foreign
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>
MathML Example within an <object>
element
<p>... as in the formula <object> <desc>4 + x</desc> <mathml> <m:math display="block"> <m:mrow> <m:mo>sum</m:mo> <m:mn>4</m:mn> <m:mo>+</m:mo> <m:mi>x</m:mi> </m:mrow> </m:math> </mathml> </object>. </p>
Attributes
The following attributes are available on this element: Universal attribute group and outputclass.