RE: Mathematical and Scientific Notations

1. Introduction
Described are some ideas about extending MathML to include XSLT functionality for transforming input semantic content into output presentational content.  An element, <notation>, is described and illustrations and examples are provided.  The functionality described herein can accompany the current version of the mathematical markup language or can supplement a next version.  Additionally, a sketch of an XSLT-enhanced XInclude is provided (see Appendix A).
1.1 XSL Transforms
XSLT describes transformations, rules for transforming source trees into resultant trees [XSLT10, XSLT20, XSLT21].  XSLT utilizes the syntax of its target language, XML, and can be viewed as a Turing-complete template processor.  For processing semantic content into presentational content, including from  mathematical semantic content to MathML presentational content, XSLT is often utilized.  XSLT-based approaches can facilitate modularity, configurability, notational conventions and the specialized notational practices of mathematical and scientific subfields.
1.2 XInclude
The XInclude specification describes a mechanism for merging XML documents, facilitating modularity [XINCLUDE10].
2. Syntax
2.1 The <notation> Element
2.1.1 Attributes
The class Attribute
The syntax of this attribute's value is a set of space-separated tokens.
The style Attribute
The syntax of this attribute's value is as defined by the CSS Styling Attribute Syntax specification [CSSATTR].
The present Attribute
The syntax of this attribute's value is as per that of the HTTP request header Accept [HTTP11, RFC4229].
The src Attribute
The syntax of this attribute's value is as per a URI [RFC3986].
The type Attribute
The syntax of this attribute's value is as per a MIME type [RFC2046].
The charset Attribute
The value must be a valid character encoding name [IANACHARSET].
The lang Attribute
The syntax of this attribute's value must be a valid BCP 47 language tag [BCP47].
The media Attribute
The syntax of this attribute's value is as per a valid media query [MQ].
The transform Attribute
The syntax of this attribute's value is as per a URI [RFC3986].
2.2 The <presentation> Element
2.3 The <data> Element
The <data> element combines aspects of MathML's <annotation> and <annotation-xml> elements [MATHML3] with HTML's <link> and <source> elements [HTML5].  The <data> element has two contexts, semantic and presentational; a <data> element in in a <notation> element is in a semantic context unless within a <presentation> element.
2.3.1 Attributes
The src Attribute
The syntax of this attribute's value is as per a URI [RFC3986].
The type Attribute
The syntax of this attribute's value is as per a MIME type [RFC2046].
The charset Attribute
The syntax of this attributes' value must be a valid character encoding name [IANACHARSET].
The lang Attribute
The syntax of this attribute's value must be a valid BCP 47 language tag [BCP47].
The media Attribute
The syntax of this attribute's value is as per a valid media query [MQ].
The q Attribute
The syntax of this attribute's value is a floating-point number ranging from 0 to 1.  The default value is q=1.  The attribute is valid on <data> elements in a presentational context [HTTP11, RFC4229].
The transform Attribute
The syntax of this attribute's value is as per a URI [RFC3986].
The input Attribute
The input attribute can reference semantic context <data> elements by id.
2.4 The <with-param> Element
Resembles XSLT's <with-param> element [XSLT10, XSLT20, XSLT21].
2.4.1 Attributes
The name Attribute
The syntax of this attribute's value is an XML qualified name [XMLNS].
The as Attribute
The syntax of this attribute's value is an XPath sequence type [XPATH10, XPATH20, XPATH30].
The tunnel Attribute
The syntax of this attribute's value is "yes" or "no" with a default value of "no".
The src Attribute
The syntax of this attribute's value is a URI [RFC3986].
2.5 The <with-extension> Element
2.5.1 Attributes
The name Attribute
The syntax of this attribute's value is an XML qualified name [XMLNS].
The as Attribute
The syntax of this attribute's value is an XPath sequence type [XPATH10, XPATH20, XPATH30].
The oncall Attribute
The syntax of this attribute's value is that of an event handler.
2.6 The <param> Element
Resembles XSLT's <param> element [XSLT10, XSLT20, XSLT21].
2.6.1 Attributes
The name Attribute
The syntax of this attribute's value is an XML qualified name [XMLNS].
The as Attribute
The syntax of this attribute's value is an XPath sequence type [XPATH10, XPATH20, XPATH30].
The required Attribute
The syntax of this attribute's value is "yes" or "no" with a default value of "no".
The tunnel Attribute
The syntax of this attribute's value is "yes" or "no" with a default value of "no".
The src Attribute
The syntax of this attribute's value is a URI [RFC3986].
3. Discussion
3.1 Client-Side XSL Transformations
In a presentational context, <data> elements can reference XSLT resources by means of their transform attributes.  The described <notation> system utilizes XSLT to transform mathematical and scientific semantic content into presentational content to be rendered by UA's.
While processing models resembling an XSLT-enhanced XInclude [XINCLUDE10] are possible (see Appendix A), the processing model described herein is one where <data> elements in both presentational and semantic contexts, their attribute values, contained text, XML content or referenced resources are utilized to arrive at resultant content which, in the output <notation> element, is rendered by a UA.
3.2 The Document Object Model and Cascading Stylesheets
The utilized, obtained, processed or otherwise resultant content, in the output <notation> element, is a part of the DOM structure of the resultant document and can be styled accordingly.  Attributes such as id, class and style are preserved between input and output <notation> elements.  An extension to the DOM is possible for traversing from the resultant or output <notation> node to the input <notation> node's XML DOM contents.
3.3 Multimedia Content
When multimedia resources are referenced in input <notation> elements in HTML5 scenarios [HTML5], for resultant <notation> elements, "image/svg+xml" can map to an <svg> element, other "image/..." types can map to an an <img> element, "audio/..." types can map to an <audio> element, and "video/..." types can map to a <video> element.
3.4 UA Tables
Two UA Tables are described herein.  The following two tables provide for convenient and succinct syntax for document authors by providing situational default attribute values.
3.4.1. UA Table 1: Default Output Content Type for Input Content Types
UA Table 1 describes for content-related MIME types, default output or presentational MIME types.  For example, for mathematics-related content types (e.g. "application/mathml-content+xml", "application/openmath+xml") the default output MIME type could be "application/mathml-presentation+xml", which facilitates layout scenarios including mathematics in sentences while interoperable with cascading stylesheets.  Table 1 describes default output content types for various input content types.
3.4.2. UA Table 2: UA Default XSLT Resources for Input and Output Content Type Pairs
UA Table 2 maps pairs of content types map to UA default XSLT resources.  While the transform attribute on the <data> element allows authors to specify XSLT resources, UA's can include default XSLT resources for pairs of input and output content types.
3.5 Client-Side XSL Transformations, Tunneling Parameters and HTTP Semantics
When processing XSLT for <notation> elements, and possibly for other XSLT from HTML scenarios, tunneling parameters can be passed to XSLT processing utilizing HTTP semantics [HTTP11] with HTTP vocabulary in RDF 1.0 [HTTP-RDF].
A <notation> element's present attribute value or otherwise a string assembled from presentational context <data> elements' type and q attributes (see Illustration B.4) can be passed to XSLT as a tunneling parameter named http://www.w3.org/2011/http-headers#accept .
Similarly, the charset attribute or the text encoding of the document containing the <notation> element can be passed as a tunneling parameter named http://www.w3.org/2011/http-headers#accept-charset .
The values from lang attributes [BCP47] on, or from the document context of, presentational context <data> elements can be combined into a string value for a tunneling parameter named http://www.w3.org/2011/http-headers#accept-language .  The language value of the document context of the <notation> element can also be utilized to provide the http://www.w3.org/2011/http-headers#accept-language parameter value to XSLT.
The values from the media attributes, media queries [MQ], on <data> elements in a presentational context, or from the UA context, can be assembled together and passed as a tunneling parameter named http://www.w3.org/2011/http-headers#accept-features [RFC2295, RFC4229].
Media types [RFC2046], character sets [IANACHARSET], languages [BCP47], and features (including media query related [MQ]) are described as the four dimensions of HTTP content negotiation [RFC2295].
3.6 Content Negotiation
3.6.1 The <data> Element and Content Negotiation
The attributes type, charset, lang, and media correspond with the four dimensions of HTTP content negotiation.  Multiple <data> elements, in a presentational context, resemble the contents of an HTTP Alternates response header [RFC2295] (http://www.w3.org/2011/http-headers#alternates).  However, the <data> elements described herein have the additional expressiveness for inline text or XML content and, in presentational contexts, can describe XSLT transformations upon the contents of semantic context <data> elements by means of the transform and input attributes.  While media queries are a subset of feature-based content negotiation, an attribute features can also extend the <notation> and <data> elements.
3.6.2 Client-Side XSL Transformations and Content Negotiation
Content negotiation topics include scenarios between UA's and external resources, UA's and XSLT processors, between XSLT processors, and possibly between XSLT processors and external resources.
3.7 Client-Side XSL Transformations, Scripting and Extension Functions
The <with-extension> and <param> elements describe a means of providing JavaScript functions to XSLT.   With regard to to XSLT processors, the availability of and interoperability with UA API's such as DOM, CSSOM, and XMLHttpRequest is topical.
3.8 JavaScript API
A JavaScript API can exist to provide functionality resembling XSLTHttpRequest, resembling and encapsulating the XMLHttpRequest API.  The XSLTProcessor API could version to include indicating JavaScript-interoperable extension objects.
3.9 The HTML <link> Element
With a link relation type, e.g. "notation", XSLT can be referenced by <link> elements [HTML5] into the processing context of document <notation> elements (see Example C.10).
Furthermore, alternate notations can be indicated with <link> elements having a rel attribute value such as "alternate notation" (see Example C.11).
3.10 Parallel Markup
3.10.1 Parallel Markup and XML Elements
MathML3 includes an annotational parallel markup system [MATHML3].  In the system described herein, parallel markup can be achieved and a means of navigating from resultant presentational DOM nodes to input content nodes is described in Section 3.2 .
3.10.2 Parallel Markup and Multiple XML Elements
While notational elements, in general, are expressive, it often occurs that semantic structures can interrelate sets of such elements.  Examples include mathematical proofs in hypertext documents.  To indicate such semantic structures in documents, some existing techniques include RDFa [RDFA-CORE], the use of xref attributes between resources, and solutions where external XML resources can relate XML elements from multiple resources, for example SMIL [SMIL30].
3.10.3 Multipart MIME
Regarding parallel markup and content types of various simultaneous formats, the MIME type "multipart/alternative" describes where contents are multiple versions or variants of the same data [RFC2046].
3.11 Clipboarding, Drag and Drop and Interprocess Communication
3.11.1 Notations and Interprocess Communication
As the input <notation> element contents are available to JavaScript (see Section 3.2), by means of that content, the rows of Table 2 (see Section 3.4), and custom notations (see Section 3.9), a UA can determine which formats it can place onto a DataTransfer for a <notation> item.  By adding a function, setDataProvider, to DataTransfer, computation can be deferred until paste or drop recipients request the data in particular data formats.  With such techniques, UA's can place all possible formats onto a DataTransfer for clipboarding, drag and drop and interprocess communication.
Client-side XSLT functionality with XML document fragments is topical as are client-side XSLT and DOM selections and ranges (see also Section 3.10.2).
3.11.2 Document Object Models and DataTransfer Interfaces
It occurs that interfaces in document object models for elements with parallel markup can include functionality from or make use of interfacees like DataTransfer [CLIPAPI].
Existing DataTransfer or IDataObject interfaces support the type attribute and while, at times, the charset attribute has been included on MIME types as a parameter, it is possible to extend an interface like DataTransfer to additionally support the charset, lang, and media attributes, or to otherwise encapsulate data motion scenarios resembling HTTP content negotiation.
3.12 Advanced Mathematical and Scientific Presentational Markup Scenarios
With the XSLT processing of semantic content into presentational content as a supported scenario, it is possible that presentational markup can come to include even more advanced features and CSS interoperability that might have been otherwise cumbersome for manual markup authoring scenarios.
3.13 Multimodal Mathematical and Scientific Input
Means can be devised to obtain InkML [INKML] and SRGS/SISR [SRGS10, SISR10] content from notational contexts (see Sections 3.4 and 3.9) and/or semantic content; document authors should be able to include and users to make use of such content.
3.14 Natural Language Generation and Synthesis
Synthesis processors can utilize the MIME type "application/ssml+xml" and/or the media query of "speech" to obtain SSML [SSML] from <notation> elements (see Sections 3.4 and 3.9 and Examples C.7 and C.8).
4. Conclusion
The current version of the MathML syntax [MATHML3] utilizes an annotational system for parallel markup for both presentational and semantic content (see Section 3.10).  Adding XSLT interoperability to such a syntax enhances the difference between semantics and presentation, input and output, and effectively charts a course through the Pillars of Hercules.  While a <notation> syntax as described herein could accompany the current version of MathML's <math>, <semantics>, <annotation> and <annotation-xml> elements, if the MathML syntax were to version to include an element such as the <data> element, and did so in a manner so as to replace the <annotation> and <annotation-xml> elements, and, as the <math> element has thus far had a default presentational context, if the MathML <semantics> element were reinterpreted so as to create a semantic context inside of a <math> element, syntactic possibilities could resemble:

<notation>
  <presentation>
    <data type="application/mathml-presentation+xml">...</data>
  </presentation>
  <data type="application/mathml-content+xml">...</data>
</notation>


<math>
  <data type="application/mathml-presentation+xml">...</data>
  <semantics>
    <data type="application/mathml-content+xml">...</data>
  </semantics>
</math>

Furthermore, with the default content type for such a <math> element as "application/mathml-presentation+xml", such a syntax would be backwards compatible with traditional mathematical presentational markup scenarios.
5. References
5.1 Normative References

[BCP47] Tags for Identifying Languages; Matching of Language Tags. A. Phillips, M. Davis. IETF.
[CSSATTR] CSS Styling Attribute Syntax. T. Çelik, E. Etemad. W3C.
[HTML5] HTML5. Ian Hickson, David Hyatt. W3C.
[HTTP11] Hypertext Transfer Protocol — HTTP/1.1. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee. IETF.
[HTTP-RDF] HTTP Vocabulary in RDF 1.0. J. Koch, C. Velasco, P. Ackermann. W3C.
[IANACHARSET] Character Sets.  IANA.
[MATHML3] Mathematical Markup Language (MathML). D. Carlisle, P. Ion, R. Miner, N. Poppelier. W3C.
[MIMESNIFF] MIME Sniffing. A. Barth, I. Hickson. WHATWG.
[MQ] Media Queries. H. Lie, T. Çelik, D. Glazman, A. van Kesteren. W3C.
[RFC2046] Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types. N. Freed, N. Borenstein. IETF.
[RFC2295] Transparent Content Negotiation in HTTP. K. Holtman, A. Mutz. IETF.
[RFC3986] Uniform Resource Identifier (URI): Generic Syntax. T. Berners-Lee, R. Fielding, L. Masinter. IETF.
[RFC4229] HTTP Header Field Registrations. M. Nottingham, J. Mogul. IETF.
[XML10] Extensible Markup Language (XML) 1.0 (Fifth Edition). T. Bray, J. Paoli, C. Sperberg-McQueen. W3C.
[XML11] Extensible Markup Language (XML) 1.1 (Second Edition). T. Bray, J. Paoli, C. Sperberg-McQueen. W3C.
[XMLNS] Namespaces in XML. T. Bray, D. Hollander, A. Layman, R. Tobin. W3C.
[XPATH10] XML Path Language (XPath) 1.0. J. Clark, S. DeRose. W3C.
[XPATH20] XML Path Language (XPath) 2.0. D. Chamberlin, A. Berglund, S. Boag. W3C.
[XPATH30] XML Path Language (XPath) 3.0. J. Robie, D. Chamberlin, M. Dyck, J. Snelson. W3C.
[XSLT10] XSL Transformations (XSLT) Version 1.0. J. Clark. W3C.
[XSLT20] XSL Transformations (XSLT) Version 2.0. M. Kay. W3C.
[XSLT21] XSL Transformations (XSLT) Version 2.1. M. Kay. W3C.

5.2 Informative References

[CLIPAPI] Clipboard API and Events. H. Steen. W3C.
[DOM4] DOM4. A. van Kesteren, A. Gregor, et al. W3C.
[EPUB3] EPUB3. M. Gylling, G. Conboy, B. Duga, B. McCoy. IDPF.
[GRDDL] Gleaning Resource Descriptions from Dialects of Languages (GRDDL). D. Connolly. W3C.
[INKML] Ink Markup Language (InkML). Y. Chee, M. Froumentin, S. Watt. W3C.
[OMDOC12] OMDoc - An Open Markup Format for Mathematical Documents Version 1.2. Michael Kohlhase.
[OPENMATH20] The OpenMath Standard Version 2.0. S. Buswell, O. Caprotti, D. Carlisle, M. Dewar, M. Gaëtano and M. Kohlhase. The OpenMath Society.
[RDFA-CORE] RDFa Core 1.1: Syntax and Processing Rules for Embedding RDF through Attributes. B. Adida, M. Birbeck, S. McCarron, I. Herman. W3C. 
[SISR10] Semantic Interpretation for Speech Recognition. L. Van Tichelen, D. Burke. W3C.
[SMIL30] Synchronized Multimedia Integration Language (SMIL 3.0). D. Bulterman, J. Jansen, P. Cesar, et al. W3C.
[SRGS10] Speech Recognition Grammar Specification 1.0. A. Hunt, S. McGlashan. W3C.
[SSML11] Speech Synthesis Markup Language (SSML) 1.1. D.  Burnett, Z. Shuang. W3C.
[XHR2] XMLHttpRequest Level 2. A. van Kesteren. W3C.
[XINCLUDE10] XML Inclusions (XInclude) Version 1.0 (Second Edition). J. Marsh, D. Orchard, D. Veillard. W3C.
[XPROC] XProc: An XML Pipeline Language. N. Walsh. W3C. 

Appendix A. An XSLT-Enhanced XInclude
As described in Section 3.1, one of several approaches for an XSLT-Enhanced XInclude [XINCLUDE10] is sketched.
A.1 The <include> element
A.1.1 Attributes
The src Attribute
The href attribute is refactored to src to resemble the syntactic conventions above.  The syntax of this attribute's value is as per a URI [RFC3986].
The type Attribute
The syntax of this attribute's value is as per a MIME type [RFC2046].
The transform Attribute
The syntax of this attribute's value is as per a URI [RFC3986].
The xpath Attribute
The syntax of this attribute's value is an XPath expression [XPATH10, XPATH20, XPATH30].
A.2 The <fallback> Element
A.3 The <with-param> Element
See Section 2.4
A.4 The <with-extension> Element
See Section 2.5
A.5 The <param> Element
See Section 2.6
A.6. Discussion
Syntactic possibilities for an XSLT-enhanced XInclude also include the use of elements resembling <data> elements as described herein.
Appendix B. Illustrations
Utilizing UA Tables 1 and 2 (see Section 3.4) for the default values of some attributes, and UA default XSLT resources, the expressiveness of the <notation> system is illustrated.
In the following illustrations, the syntax "ua/default" intends to indicate the value in UA Table 1 for the corresponding input content type.  The syntax "uadefault.xslt", "uadefault1.xslt" and "uadefault2.xslt" intends to indicate the UA default XSLT resources, contextually, from UA Table 2.
In the following illustrations, an example HTTP server returns, in its HTTP response content type headers, "application/mathml-content+xml" for files of type ".mmlc" and "application/openmath+xml" for files of type ".om".
Illustration B.1


<notation>
  <presentation>
    <data type="ua/default" transform="uadefault.xslt" input="#content1" />
  </presentation>
  <data id="content1" type="application/mathml-content+xml">...</data>
</notation>


<notation>
  <presentation>
    <data type="ua/default" transform="uadefault.xslt" />
  </presentation>
  <data type="application/mathml-content+xml">...</data>
</notation>


<notation>
  <data type="application/mathml-content+xml">...</data>
</notation>


<notation type="application/mathml-content+xml">...</notation>


<notation>...</notation>


Illustration B.2


<notation>
  <presentation>
    <data type="ua/default" transform="uadefault.xslt" input="#content1" />
  </presentation>
  <data id="content1" type="application/mathml-content+xml" src="file.mmlc"/>
</notation>


<notation>
  <presentation>
    <data type="ua/default" transform="uadefault.xslt" />
  </presentation>
  <data type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation>
  <data type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation type="application/mathml-content+xml" src="file.mmlc" />


<notation src="file.mmlc" />


Illustration B.3


<notation>
  <presentation>
    <data type="ua/default" transform="custom.xslt" input="#content1" />
  </presentation>
  <data id="content1" type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation>
  <presentation>
    <data type="ua/default" transform="custom.xslt" />
  </presentation>
  <data type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation present="ua/default" transform="custom.xslt">
  <data type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation present="ua/default" transform="custom.xslt" type="application/mathml-content+xml" src="file.mmlc" />


<notation present="ua/default" transform="custom.xslt" src="file.mmlc" />


<notation transform="custom.xslt" src="file.mmlc" />


Illustration B.4


<notation>
  <presentation>
    <data type="application/mathml-presentation+xml" q="0.9" transform="uadefault1.xslt" input="#content1"/>
    <data type="image/svg+xml" q="0.2" transform="uadefault2.xslt" input="#content1" />
  </presentation>
  <data id="content1" type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation>
  <presentation>
    <data type="application/mathml-presentation+xml" q="0.9" transform="uadefault1.xslt" />
    <data type="image/svg+xml" q="0.2" transform="uadefault2.xslt" />
  </presentation>
  <data type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation>
  <presentation>
    <data type="application/mathml-presentation+xml" q="0.9" />
    <data type="image/svg+xml" q="0.2" />
  </presentation>
  <data type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation present="application/mathml-presentation+xml;q=0.9, image/svg+xml;q=0.2">
  <data type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation present="application/mathml-presentation+xml;q=0.9, image/svg+xml;q=0.2" type="application/mathml-content+xml" src="file.mmlc" />


<notation present="application/mathml-presentation+xml;q=0.9, image/svg+xml;q=0.2" src="file.mmlc" />


Illustration B.5


<notation>
  <presentation>
    <data type="ua/default" transform="custom.xslt" input="#content1">
      <with-param name="namespace:param1" as="xs:string">text</with-param>
      <with-param name="namespace:param2" as="schema:type">
        <xml>
          <xml />
        </xml>
      </with-param>
    </data>
  </presentation>
  <data id="content1" type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation>
  <presentation>
    <data type="ua/default" transform="custom.xslt">
      <with-param name="namespace:param1" as="xs:string">text</with-param>
      <with-param name="namespace:param2" as="schema:type">
        <xml>
          <xml />
        </xml>
      </with-param>
    </data>
  </presentation>
  <data type="application/mathml-content+xml" src="file.mmlc" />
</notation>


<notation>
  <presentation>
    <data transform="custom.xslt">
      <with-param name="namespace:param1" as="xs:string">text</with-param>
      <with-param name="namespace:param2" as="schema:type">
        <xml>
          <xml />
        </xml>
      </with-param>
    </data>
  </presentation>
  <data src="file.mmlc" />
</notation>


<notation transform="custom.xslt" src="file.mmlc">
  <with-param name="namespace:param1" as="xs:string">text</with-param>
  <with-param name="namespace:param2" as="schema:type">
    <xml>
      <xml />
    </xml>
  </with-param>
</notation>


Appendix C. Examples
Example C.1
<notation src="file.om" />
Example C.2
<notation transform="custom.xslt" src="file.om" />
Example C.3

<notation>
  <presentation>
    <data type="application/mathml-presentation+xml" src="file.mmlp" />
  </presentation>
</notation>

Example C.4

<notation>
  <presentation>
    <data type="model/x3d+xml" src="file.x3d" media="screen" />
    <data type="image/png" src="file.png" media="print" />
  </presentation>
</notation>

Example C.5

<notation>
  <presentation>
    <data type="model/x3d+xml" transform="3d.xslt" media="screen" />
    <data type="image/svg+xml" transform="svg.xslt" media="print" />
  </presentation>
  <data type="application/...+xml" src="..." />
</notation>

Example C.6

<notation>
  <presentation>
    <data type="image/svg+xml" q="0.9" transform="feynman-diagram.xslt" />
    <data type="image/png" q="0.2" src="file.png" />
  </presentation>
  <data type="application/...+xml">...</data>
</notation>

Example C.7

<notation>
  <presentation>
    <data type="application/mathml-presentation+xml" media="screen, print" />
    <data type="application/ssml+xml" transform="synthesize.xslt" lang="en" media="speech">
      <with-param name="namespace:param1" as="xs:string">text</with-param>
    </data>
  </presentation>
  <data type="application/openmath+xml">...</data>
</notation>

Example C.8

<notation>
  <presentation>
    <data type="application/mathml-presentation+xml" media="screen, print" />
    <data type="application/ssml+xml" transform="synthesize.xslt" lang="en" media="speech">
      <with-param name="namespace:param1" as="xs:string">text</with-param>
      <with-extension name="namespace:function" as="xs:string" oncall="jsfun(event)">
        <param name="namespace:functionparam1" as="xs:string" required="yes" />
      </extension>
    </data>
  </presentation>
  <data type="application/openmath+xml">...</data>
</notation>

Example C.9

<html>
  <head>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" id="x1"> 
      ...
    </xsl:stylesheet>
  </head>
  <body>
    <notation transform="#x1" src="file.om" />
  </body>
</html>

Example C.10

<html>
  <head>
    <link rel="notation" type="application/xslt+xml" href="custom.xslt" />
  </head>
  <body>
    <notation src="file.om" />
  </body>
</html>

Example C.11

<html>
  <head>
    <link rel="notation" type="application/xslt+xml" href="custom1.xslt" title="title1" />
    <link rel="alternate notation" type="application/xslt+xml" href="custom2.xslt" title="title2" />
  </head>
  <body>
    <notation src="file.om" />
  </body>
</html>
 		 	   		  

Received on Sunday, 27 May 2012 12:55:35 UTC