Value Excerption Pattern
The value excerption pattern is derived from value-excerpting in hCard. As such, it is already somewhat supported in parsers. However, the precise parsing behaviour is not yet finalised, so the pattern should be used only with extreme caution, and with the awareness that the editing of more precise parsing rules could impact your pages.
Sometimes, only a part of an element's content is used as the value of a microformat property. This may occur when a property has optional sub-properties, such as
tel in hCard 1.0. Other times, the most logical, semantic element for the property class name may include other content.
For these purposes, the special class name
value is used to excerpt out the relevant element content.
Here is an hCard fragment for marking up a home phone number:
<span class="tel"> <span class="type">Home</span>: <span class="value">+1.415.555.1212</span> </span>
In this case, the value of
Another example, this time using
price in hListing draft:
<span class="price"> I want to sell for <span class="value">£15</span> </span>
In this case,
price will parse as
£15, rather than as the entire sentence.
Another example, using
dtstart in hCalendar 1.0:
<span class="dtstart"> Friday 25th May, 6pm <span class="value">2008-05-25T18:00:00+0100</span> </span>
Whilst the entire string ‘Friday 25th May […]’ is semantically the date, it's the ISO 8601 encoded form alone which must be consumed by a microformats parser, so the
value class isolates it.
Parsing rules need defining fully. As a starting point, it works roughly like this.
- Where an element with a microformat property class name has an descendant with class name
value, parsers should read the inner-text of the
valueelement only, ignoring other text node descendants.
- Where multiple descendants have a class name of
value, they should be concatenated.
Knowledge of other microformats must not be a prerequisite of parsing a microformat using the value-excerption-pattern.
- Clarify white-space behaviour when concatenating value nodes.
- Clarify depth of parsing. Currently any descendent is parsed, which causes issues if a property using the value-excerption-pattern is nested within another property.
- e.g. hCalendar 1.0 defines
organiser, which may be an hCard 1.0, which may have a
telproperty containing a sub-property
value. Under these parsing rules, the entire
organiserfield would be parsed as the telephone number.
- Would this still work if parsing value were restricted just to children, rather than all descendants? BenWard 06:53, 22 May 2008 (PDT)