* @param locale the locale to be used to generate the fragment
* @return the document containing the fragment
*/
public static Document getWidgetFragment(Widget widget, Locale locale) throws SAXException {
DOMBuilder domBuilder = new DOMBuilder();
// Start document and "fi:fragment" root element
domBuilder.startDocument();
domBuilder.startPrefixMapping(Constants.INSTANCE_PREFIX, Constants.INSTANCE_NS);
// FIXME: why simply declaring the prefix isn't enough?
AttributesImpl attr = new AttributesImpl();
attr.addCDATAAttribute(NamespaceSupport.XMLNS, "fi:", "xmlns:fi", Constants.INSTANCE_NS);
domBuilder.startElement(Constants.INSTANCE_NS, "fragment", Constants.INSTANCE_PREFIX_COLON + "fragment", attr);
widget.generateSaxFragment(domBuilder, locale);
// End "fi:fragment" element and document
domBuilder.endElement(Constants.INSTANCE_NS, "fragment", Constants.INSTANCE_PREFIX_COLON + "fragment");
domBuilder.endPrefixMapping(Constants.INSTANCE_PREFIX);
domBuilder.endDocument();
// Return the document
return domBuilder.getDocument();
}