A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.

To request an account, ask an autoconfirmed user on IRC (such as one of these permanent autoconfirmed members).

Difference between revisions of "New Vocabularies Solution"

From WHATWG Wiki
Jump to: navigation, search
(move annotation-xml, works per hsivonen, and seems slightly cleaner)
Line 28: Line 28:
 
*# parse error
 
*# parse error
  
* start tag if current node is <mi>, <mo>, <mn>, <ms>, <mtext> in mathml  
+
* start tag if current node is <mi>, <mo>, <mn>, <ms>, <mtext>, <annotation-xml> in mathml  
 
* start tag if current node is <foreignobject>, <desc>, <title> in svg
 
* start tag if current node is <foreignobject>, <desc>, <title> in svg
 
* start tag if current node is in the html namespace
 
* start tag if current node is in the html namespace
* start tag with tag name "svg" if current node is <annotation-xml> in mathml
 
 
* end tag
 
* end tag
 
*# treat as in the secondary mode
 
*# treat as in the secondary mode

Revision as of 21:29, 3 April 2008

resetting appropriately:

  • if node is in a namespace other than html, "in namespace"

tokeniser:

  • tokeniser changes so that when insertion mode is "in namespace", support CDATA blocks.
  • tokeniser keeps track of /> endings.
  • we add all the MathML entities to the entity list.

"in body":

  • "math" element:
    1. insert math element in mathml namespace
    2. switch to "in namespace", with secondary mode set to whatever insertion mode used to be
    3. if the tag had a closing slash, imply a closing tag with the same tag name
  • "svg" element
    1. insert svg element in svg namespace
    2. switch to "in namespace", with secondary mode set to whatever insertion mode used to be
    3. if the tag had a closing slash, imply a closing tag with the same tag name

"in namespace":

  • comment
    1. insert comment
  • text:
    1. insert text
  • doctype
    1. parse error
  • start tag if current node is <mi>, <mo>, <mn>, <ms>, <mtext>, <annotation-xml> in mathml
  • start tag if current node is <foreignobject>, <desc>, <title> in svg
  • start tag if current node is in the html namespace
  • end tag
    1. treat as in the secondary mode
    2. if the insertion mode is still "in namespace", but there is no namespaced element in scope, switch to the secondary mode
  • start tag for one of: (html elements)
    1. parse error
    2. pop nodes until the current node is in the html namespace
    3. switch to the secondary mode
    4. reprocess token
  • other start tag
    1. if namespace is svg, apply case fixups
    2. insert element for token, in same namespace as current node
    3. if the tag had a closing slash, imply a closing tag with the same tag name


MathML error handling in text/html

Require the following behaviour, since MathML requires the host language to define error handling:

  • An element with the wrong number or type of children must render as an error indicator. (list cases)
  • a sequence of one or more text nodes containing non-inter-element-whitespace must be treated as <mtext>

Interaction of MathML and CSS ('display')

...