} doc.startAttribute(name);
} buffer.setLength(0);
  protected void saveEObjectSingle(EObject o, EStructuralFeature f)  {    EObject value = (EObject)helper.getValue(o, f);    if (value != null)    {      String name = helper.getQName(f);      String id = helper.getHREF(value);      if (id != null)      {        if (escapeURI != null)        {          id = escapeURI.convert(id);        }         doc.startAttribute(name);        if (!id.startsWith("#"))        {          EClass eClass = value.eClass();          EClass expectedType = (EClass) f.getEType();          if (eClass != expectedType && (saveTypeInfo || expectedType.isAbstract()))          {            doc.addAttributeContent(helper.getQName(eClass));            doc.addAttributeContent(" ");          }        }        doc.addAttributeContent(id);        doc.endAttribute();      }    }  }