@Override
 public HttpClientResponse bodyHandler(final Handler<Buffer> bodyHandler) {
   BodyHandler handler = new BodyHandler();
   handler(handler);
   endHandler(v -> handler.notifyHandler(bodyHandler));
   return this;
 }
 @Override
 public void handleAttributes(Attributes attrs) throws SAXException {
   super.handleAttributes(attrs);
   OutlineBuilder bld = (OutlineBuilder) getBodyBuilder();
   bld.clear();
   bld.setCategory(getOptionalStringValue(attrs, Outline.ATTR_CATEGORY));
   bld.setCreated(getOptionalDate(attrs, Outline.ATTR_CREATED));
   bld.setDescription(getOptionalStringValue(attrs, Outline.ATTR_DESCRIPTION));
   bld.setHtmlUrl(getOptionalURI(attrs, Outline.ATTR_HTML_URL));
   bld.setBreakpoint(getOptionalBooleanValue(attrs, Outline.ATTR_IS_BREAKPOINT, false));
   bld.setComment(getOptionalBooleanValue(attrs, Outline.ATTR_IS_COMMENT, false));
   bld.setLanguage(getOptionalStringValue(attrs, Outline.ATTR_LANGUAGE));
   bld.setText(getStringValue(attrs, Outline.ATTR_TEXT));
   bld.setTitle(getOptionalStringValue(attrs, Outline.ATTR_TITLE));
   bld.setTypeString(getOptionalStringValue(attrs, Outline.ATTR_TYPE));
   bld.setUrl(getOptionalURI(attrs, Outline.ATTR_URL));
   bld.setVersion(getOptionalStringValue(attrs, Outline.ATTR_VERSION));
   bld.setXmlUrl(getOptionalURI(attrs, Outline.ATTR_XML_URL));
 }