Thanks for the quick response.
In some cases they are converted to iframes by the SDK once the DOM has been rendered. Since I still want to produce valid code, I figure they should be handled much the same as iframes are.
The Facebook syntax is as follows:
<fb:[function] attribute="value"></fb:[function]>
Where [function] is replaced by an a-z string. So yes, attributes are required.
More documentation is here:
JavaScript SDK: http://developers.facebook.com/docs/reference/javascript/
Social plugins: http://developers.facebook.com/plugins
Like buttons: http://developers.facebook.com/docs/reference/plugins/like
The Like button is a good example of the XFBML implementation. Yes, it's pretty awful when it comes to standards and what most would consider to be good, clean code.