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.
See appendix for information about this element in OASIS document type shells.
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>