internal override void WriteEndElement( string prefix, string localName, string ns ) {
bool isBlockWs;
Debug.Assert( localName != null && localName.Length != 0 && prefix != null && ns != null );
indentLevel--;
// If this element has block whitespace properties,
isBlockWs = ( base.currentElementProperties & ElementProperties.BLOCK_WS ) != 0;
if ( isBlockWs ) {
// And if the last node to be output had block whitespace properties,
// And if content was output within this element,
if ( endBlockPos == base.bufPos && base.contentPos != base.bufPos ) {
// Then indent
WriteIndent();
}
}
base.WriteEndElement(prefix, localName, ns);
// Reset contentPos in case of empty elements
base.contentPos = 0;
// Mark end of element in buffer for element's with block whitespace properties
if ( isBlockWs ) {
endBlockPos = base.bufPos;
}
}