adapter->resetDirtyStructure(); adapter->resetDirtyAttribute();
  update_MathML_semantics_Element(const typename Model::Element& el) const  {    typename Model::ElementIterator iter(el, MATHML_NS_URI);    if (iter.more())      if (typename Model::Element e = iter.element())	if (Model::getNodeName(Model::asNode(e)) != "annotation"	    && Model::getNodeName(Model::asNode(e)) != "annotation-xml")	  if (SmartPtr<MathMLElement> elem = getMathMLElementNoCreate(iter.element()))	    return elem;	  else	    iter.next();    while (typename Model::Element e = iter.element())      {	if (Model::getNodeName(Model::asNode(e)) == "annotation-xml")	  {	    String encoding = Model::getAttribute(e, "encoding");	    if (encoding == "MathML-Presentation")	      return getMathMLElement(typename Model::ElementIterator(e, MATHML_NS_URI).element());	    else if (encoding == "BoxML")	      {		// this element can probably be associated with the model element		SmartPtr<MathMLBoxMLAdapter> adapter = getElement<MathMLBoxMLAdapterBuilder>(el);		adapter->setChild(getBoxMLElement(typename Model::ElementIterator(e, BOXML_NS_URI).element()));		return adapter;	      }	  }	iter.next();      }    return createMathMLDummyElement();  }