private static void WriteBoundElementTo(DataPointer dp, XmlWriter w)
{
Debug.Assert(dp.NodeType == XmlNodeType.Element);
w.WriteStartElement(dp.Prefix, dp.LocalName, dp.NamespaceURI);
int cAttr = dp.AttributeCount;
if (cAttr > 0)
{
for (int iAttr = 0; iAttr < cAttr; iAttr++)
{
dp.MoveToAttribute(iAttr);
WriteTo(dp, w);
dp.MoveToOwnerElement();
}
}
WriteBoundElementContentTo(dp, w);
// Force long end tag when the elem is not empty, even if there are no children.
if (dp.IsEmptyElement)
{
w.WriteEndElement();
}
else
{
w.WriteFullEndElement();
}
}