/// <summary> /// Writes out a start tag of the element and all the attributes of the element. /// </summary> /// <param name="elementObject">The OpenXmlElement object to be writen.</param> public override void WriteStartElement(OpenXmlElement elementObject) { if (elementObject == null) { throw new ArgumentNullException("elementObject"); } if (elementObject is OpenXmlMiscNode) { throw new ArgumentOutOfRangeException("elementObject"); } this.ThrowIfObjectDisposed(); this._xmlWriter.WriteStartElement(elementObject.Prefix, elementObject.LocalName, elementObject.NamespaceUri); if (elementObject.HasAttributes) { // write attributes foreach (OpenXmlAttribute attribute in elementObject.GetAttributes()) { this._xmlWriter.WriteAttributeString(attribute.Prefix, attribute.LocalName, attribute.NamespaceUri, attribute.Value); } } if (IsOpenXmlLeafTextElement(elementObject)) { this._isLeafTextElementStart = true; } else { this._isLeafTextElementStart = false; } }