public override void WriteStartAttribute( string prefix, string localName, string ns ) {
Debug.Assert( localName != null && localName.Length != 0 && prefix != null && ns != null );
if ( ns.Length == 0 ) {
Debug.Assert( prefix.Length == 0 );
if ( trackTextContent && inTextContent != false ) { ChangeTextContentMark( false ); }
if ( base.attrEndPos == bufPos ) {
base.bufChars[bufPos++] = (char) ' ';
}
base.RawText( localName );
if ( ( currentElementProperties & ( ElementProperties.BOOL_PARENT | ElementProperties.URI_PARENT | ElementProperties.NAME_PARENT ) ) != 0 ) {
currentAttributeProperties = (AttributeProperties)attributePropertySearch.FindCaseInsensitiveString( localName ) &
(AttributeProperties)currentElementProperties;
if ( ( currentAttributeProperties & AttributeProperties.BOOLEAN ) != 0 ) {
base.inAttributeValue = true;
return;
}
}
else {
currentAttributeProperties = AttributeProperties.DEFAULT;
}
base.bufChars[bufPos++] = (char) '=';
base.bufChars[bufPos++] = (char) '"';
}
else {
base.WriteStartAttribute( prefix, localName, ns );
currentAttributeProperties = AttributeProperties.DEFAULT;
}
base.inAttributeValue = true;
}