<?xml version="1.0" encoding="UTF-8"?>
<!--
/=====================================================================\
| LaTeXML-misc.rnc |
| RelaxNG model for LaTeXML generated documents |
|=====================================================================|
| Part of LaTeXML: |
| Public domain software, produced as part of work done by the |
| United States Government & not subject to copyright in the US. |
|=====================================================================|
| Bruce Miller <bruce.miller@nist.gov> #_# |
\=========================================================ooo==U==ooo=/
-->
<define name="Misc.class" combine="choice">
<a:documentation> Miscellaneous (Misc) elements are (typically) visible
elements which don't have clear inline or block character;
they can appear in both inline and block contexts.</a:documentation>
<choice>
<ref name="inline-block"/>
<ref name="verbatim"/>
<ref name="break"/>
<ref name="graphics"/>
<ref name="svg"/>
<ref name="rawhtml"/>
<ref name="rawliteral"/>
<ref name="ERROR"/>
</choice>
</define>
<!-- ====================================================================== -->
<define name="inline-block">
<element name="inline-block">
<a:documentation>An inline block. Actually, can appear in inline or block mode, but
typesets its contents as a block.</a:documentation>
<ref name="inline-block_attributes"/>
<ref name="inline-block_model"/>
</element>
</define>
<define name="inline-block_attributes">
<a:documentation>Attributes for \elementref{inline-block}.</a:documentation>
<ref name="Common.attributes"/>
<ref name="ID.attributes"/>
<ref name="Positionable.attributes"/>
<ref name="Transformable.attributes"/>
<ref name="Backgroundable.attributes"/>
</define>
<define name="inline-block_model">
<a:documentation>Content model for \elementref{inline-block}.</a:documentation>
<ref name="Block.model"/>
</define>
<!-- ====================================================================== -->
<define name="verbatim">
<element name="verbatim">
<a:documentation>Verbatim content</a:documentation>
<ref name="verbatim_attributes"/>
<ref name="verbatim_model"/>
</element>
</define>
<define name="verbatim_attributes">
<a:documentation>Attributes for \elementref{verbatim}.</a:documentation>
<ref name="Common.attributes"/>
<ref name="ID.attributes"/>
<ref name="Fontable.attributes"/>
<ref name="Colorable.attributes"/>
<ref name="Backgroundable.attributes"/>
</define>
<define name="verbatim_model">
<a:documentation>Content model for \elementref{verbatim}.</a:documentation>
<ref name="Inline.model"/>
</define>
<!-- ====================================================================== -->
<define name="break">
<element name="break">
<a:documentation>A forced line break.</a:documentation>
<ref name="break_attributes"/>
<ref name="break_model"/>
</element>
</define>
<define name="break_attributes">
<a:documentation>Attributes for \elementref{break}.</a:documentation>
<ref name="Common.attributes"/>
</define>
<define name="break_model">
<a:documentation>Content model for \elementref{break}.</a:documentation>
<empty/>
</define>
<!-- ====================================================================== -->
<define name="graphics">
<element name="graphics">
<a:documentation>A graphical insertion of an external file.</a:documentation>
<ref name="graphics_attributes"/>
<ref name="graphics_model"/>
</element>
</define>
<define name="graphics_attributes">
<a:documentation>Attributes for \elementref{graphics}.</a:documentation>
<ref name="Common.attributes"/>
<ref name="ID.attributes"/>
<ref name="Imageable.attributes"/>
<optional>
<attribute name="graphic">
<a:documentation>the path to the graphics file. This is the (often minimally specified) path
to a graphics file omitting the type extension. Once resolved to a specific
image file, the \attr{imagesrc} (from Imageable.attributes) is used.</a:documentation>
</attribute>
</optional>
<optional>
<attribute name="candidates">
<a:documentation>a comma separated list of candidate graphics files that could be used to
for \attr{graphic}. A post-processor or application may choose from these,
or may make its own selection or synthesis to implement the graphic for a given target.</a:documentation>
</attribute>
</optional>
<optional>
<attribute name="options">
<a:documentation>an encoding of the scaling and positioning options
to be used in processing the graphic.</a:documentation>
</attribute>
</optional>
</define>
<define name="graphics_model">
<a:documentation>Content model for \elementref{graphics}.</a:documentation>
<empty/>
</define>
<!-- ====================================================================== -->
<define name="svgForeign.attributes">
<zeroOrMore>
<attribute>
<anyName>
<except>
<nsName ns=""/>
</except>
</anyName>
</attribute>
</zeroOrMore>
</define>
<define name="svg">
<grammar>
<a:documentation>An SVG (Scalable Vector Graphics) object
[eventually must adapt to put LaTeXML objects in foreignObject]</a:documentation>
<define name="common.attrs.aria">
<empty/>
</define>
<define name="common.attrs.aria.implicit.group">
<empty/>
</define>
<define name="common.attrs.aria.implicit.img">
<empty/>
</define>
<define name="common.attrs.aria.implicit.link">
<empty/>
</define>
<define name="SVG.Core.extra.attrib" combine="interleave">
<parentRef name="svgForeign.attributes"/>
</define>
<include href="urn:x-LaTeXML:RelaxNG:svg:svg11.rng">
<define name="SVG.foreignObject.content">
<parentRef name="Inline.model"/>
</define>
<define name="SVG.desc.content">
<parentRef name="Flow.model"/>
</define>
</include>
</grammar>
</define>
<!-- ====================================================================== -->
<define name="htmlElement">
<element>
<zeroOrMore>
<choice>
<attribute>
<anyName/>
</attribute>
<text/>
<ref name="htmlElement"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="rawhtml">
<element name="rawhtml">
<a:documentation>A container for arbitrary markup in the xhtml namespace
(not currently validated against any particular html schema)</a:documentation>
<zeroOrMore>
<ref name="htmlElement"/>
</zeroOrMore>
</element>
</define>
<!-- ====================================================================== -->
<define name="rawliteral">
<element name="rawliteral">
<a:documentation>A container for even more arbitrary directives like jsp, php, etc
Doesn't create an element, but an open angle bracket followed by \attr{open}
then the text content, followed by a close angle bracket followed by \attr{close}.</a:documentation>
<optional>
<attribute name="open"/>
</optional>
<optional>
<attribute name="close"/>
</optional>
<text/>
</element>
</define>
<!-- ====================================================================== -->
<define name="ERROR">
<element name="ERROR">
<a:documentation>error object for undefined control sequences, or whatever</a:documentation>
<ref name="ERROR_attributes"/>
<ref name="ERROR_model"/>
</element>
</define>
<define name="ERROR_attributes">
<a:documentation>Attributes for \elementref{ERROR}.</a:documentation>
<ref name="Common.attributes"/>
<ref name="ID.attributes"/>
</define>
<define name="ERROR_model">
<a:documentation>Content model for \elementref{ERROR}.</a:documentation>
<zeroOrMore>
<text/>
</zeroOrMore>
</define>
</grammar>
<!-- ====================================================================== -->