SmartPtr<MathMLRowElement> outerRow = MathMLRowElement::create(getMathMLNamespaceContext());
SmartPtr<MathMLRowElement> outerRow = MathMLRowElement::create(this->getMathMLNamespaceContext());
  update_MathML_mfenced_Element(const typename Model::Element& el) const  {    String open = ToString(getAttributeValue(el, ATTRIBUTE_SIGNATURE(MathML, Fenced, open)));    String close = ToString(getAttributeValue(el, ATTRIBUTE_SIGNATURE(MathML, Fenced, close)));    String separators = ToString(getAttributeValue(el, ATTRIBUTE_SIGNATURE(MathML, Fenced, separators)));    std::vector<SmartPtr<MathMLElement> > content;    getChildMathMLElements(el, content);    SmartPtr<MathMLOperatorElement> openElem = MathMLOperatorElement::create(getMathMLNamespaceContext());    openElem->setSize(0);    openElem->append(open);    openElem->SetFence();    SmartPtr<MathMLOperatorElement> closeElem = MathMLOperatorElement::create(getMathMLNamespaceContext());    closeElem->setSize(0);    closeElem->append(close);    closeElem->SetFence();          std::vector< SmartPtr<MathMLElement> > outerRowContent;    outerRowContent.reserve(3);    outerRowContent.push_back(openElem);    if (content.size() == 1)      outerRowContent.push_back(content[0]);    else      {	std::vector< SmartPtr<MathMLElement> > innerRowContent;	if (content.size() > 0)	  innerRowContent.reserve(separators.empty() ? content.size() : (2 * content.size() - 1));	for (unsigned i = 0; i < content.size(); i++)	  {	    innerRowContent.push_back(content[i]);	    if (!separators.empty() && i + 1 < content.size())	      {		SmartPtr<MathMLOperatorElement> sep = MathMLOperatorElement::create(mathmlContext);		unsigned offset = (i < separators.length()) ? i : separators.length() - 1;		sep->setSize(0);		sep->append(separators.substr(offset, 1));		sep->SetSeparator();		innerRowContent.push_back(sep);	      }	  }	SmartPtr<MathMLRowElement> innerRow = MathMLRowElement::create(getMathMLNamespaceContext());	innerRow->swapContent(innerRowContent);	outerRowContent.push_back(innerRow);      }    outerRowContent.push_back(closeElem);    // this can probably remain attached to the model    SmartPtr<MathMLRowElement> outerRow = MathMLRowElement::create(getMathMLNamespaceContext());    outerRow->swapContent(outerRowContent);    return outerRow;  }