At work we're using xmllint to syntax check TYPO3 Fluid template files. Sometimes microdata attributes like itemscope are used which don't have a value - and xmllint bails out because <div itemscope> is not well-formed:
$ xmllint --noout file.html file.html: 26: parser error: Specification mandate value for attribute itemscope
What now?
Specifications!
The microdata specification's itemscope section says:
The itemscope attribute is a boolean attribute.
A boolean attribute may actually have values:
If the attribute is present, its value must either be the empty string or a value that is an ASCII case-insensitive match for the attribute's canonical name, with no leading or trailing whitespace.
Solution
So both the following variants are correct:
<div itemscope="">...</div>
<div itemscope="itemscope">...</div>