parsing
Parsing
This is a braindump, this page will need cleaning-up, take everything with a grain of salt at the moment.
For now, start with reading hcard-parsing as that has more detail and has been more throughly reviewed and implemented.
By Element
This is a matrix of element and type. This should be describe under what circumstances each value and where that value comes from. The list of elements has been taken from http://www.w3.org/TR/html4/index/elements.html
See semantic xhtml for a definitive list of elements.
data types
(this probably needs a better name) There are two types in microformats, protocol types and strings. Strings could be integers, such as ratings, strings, such as a note, or datetimes, such as dtstart. Protocol types are UIDs, URLs, email addresses, (sometimes Telephones and faxes)
If there is a comma list, then this is in order of availability. For instance, the ABBR element is @title,node-value. IF the @title is present then it is used, if not the stack is popped and node-value is looked at, if there is no node-value, then the value is NULL.
| protocol | string | |
| A | @href,node-value | node-value |
| ABBR | @title,node-value | @title,node-value |
| ACRONYM | @title,node-value | @title,node-value |
| ADDRESS | node-value | node-value |
| APPLET | ??? | ???(node-value) |
| AREA | @href,node-value | node-value |
| B | node-value | node-value |
| BASE (valid?) | @href | |
| BASEFONT (valid?) | ||
| BDO (valid?) | ||
| BIG | node-value | node-value |
| BLOCKQUOTE | @cite?,node-value | node-value |
| BODY | node-value | node-value |
| BR (valid?) | ||
| BUTTON | @value? | @value? |
| CAPTION | node-value | node-value |
| CENTER | node-value | node-value |
| CITE | node-value | node-value |
| CODE | node-value | node-value |
| COL | node-value | node-value |
| COLGROUP | node-value | node-value |
| DD | node-value | node-value |
| DEL | @cite,node-value | node-value |
| DFN | node-value | node-value |
| DIR | node-value | node-value |
| DIV | node-value | node-value |
| DL | node-value | node-value |
| DT | node-value | node-value |
| EM | node-value | node-value |
| FIELDSET | node-value | node-value |
| FONT | node-value | node-value |
| FORM | @action?,node-value | node-value |
| FRAME | @src?,node-value | node-value |
| FRAMESET | node-value | node-value |
| H1 | node-value | node-value |
| H2 | node-value | node-value |
| H3 | node-value | node-value |
| H4 | node-value | node-value |
| H5 | node-value | node-value |
| H6 | node-value | node-value |
| HEAD (valid?) | node-value | node-value |
| HR (valid?) | node-value | node-value |
| HTML (valid?) | node-value | node-value |
| I | node-value | node-value |
| IFRAME | @src? | node-value |
| IMG | @src | @alt |
| INPUT | @value? | @value? |
| INS | @cite,node-value | node-value |
| ISINDEX (valid?) | ||
| KBD | node-value | node-value |
| LABEL | node-value | node-value |
| LEGEND | node-value | node-value |
| LI | node-value | node-value |
| LINK (valid?) | ||
| MAP | node-value | node-value |
| MENU (valid?) | ||
| META (valid?) | ||
| NOFRAMES | node-value | node-value |
| NOSCRIPT | node-value | node-value |
| OBJECT | @data,node-value | node-value |
| OL | node-value | node-value |
| OPTGROUP (valid?) | node-value | node-value |
| OPTION | node-value | node-value |
| P | node-value | node-value |
| PARAM (?) | node-value | node-value |
| PRE | node-value | node-value |
| Q | node-value | node-value |
| S | node-value | node-value |
| SAMP | node-value | node-value |
| SCRIPT | node-value | node-value |
| SELECT (valid?) | node-value | node-value |
| SMALL | node-value | node-value |
| SPAN | node-value | node-value |
| STRIKE | node-value | node-value |
| STRONG | node-value | node-value |
| STYLE (valid?) | node-value | node-value |
| SUB | node-value | node-value |
| SUP | node-value | node-value |
| TABLE(valid?) | node-value | node-value |
| TBODY | node-value | node-value |
| TD | node-value | node-value |
| TEXTAREA | node-value | node-value |
| TFOOT | node-value | node-value |
| TH | node-value | node-value |
| THEAD | node-value | node-value |
| TITLE | node-value | node-value |
| TR | node-value | node-value |
| TT | node-value | node-value |
| U | node-value | node-value |
| UL | node-value | node-value |
| VAR | node-value | node-value |