XmlWriter.WriteStartElement Method (String, String, String)

When overridden in a derived class, writes the specified start tag and associates it with the given namespace and prefix.

Namespace:  System.Xml
Assemblies:   System.Xml (in System.Xml.dll)
  System.Xml.ReaderWriter (in System.Xml.ReaderWriter.dll)

Public MustOverride Sub WriteStartElement ( _
	prefix As String, _
	localName As String, _
	ns As String _


Type: System.String

The namespace prefix of the element.

Type: System.String

The local name of the element.

Type: System.String

The namespace URI to associate with the element.


The writer is closed.


There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.


An XmlWriter method was called before a previous asynchronous operation finished. In this case, InvalidOperationException is thrown with the message “An asynchronous operation is already in progress.”

For the asynchronous version of this method, see WriteStartElementAsync.

The following example writes out an XML fragment.

Option Strict
Option Explicit

Imports System
Imports System.IO
Imports System.Xml

Public Class Sample
    Private Shared m_Document As String = "sampledata.xml" 

    Public Shared Sub Main()
        Dim writer As XmlWriter = Nothing 


        Dim settings As XmlWriterSettings = new XmlWriterSettings()
        settings.Indent = true
        writer = XmlWriter.Create (m_Document, settings)

        writer.WriteComment("sample XML fragment")

        ' Write an element (this one is the root).

        ' Write the namespace declaration.
        writer.WriteAttributeString("xmlns", "bk", Nothing, "urn:samples")

        ' Write the genre attribute.
        writer.WriteAttributeString("genre", "novel")

        ' Write the title.
        writer.WriteString("The Handmaid's Tale")

        ' Write the price.
        writer.WriteElementString("price", "19.95")

        ' Lookup the prefix and write the ISBN element. 
        Dim prefix As String = writer.LookupPrefix("urn:samples")
        writer.WriteStartElement(prefix, "ISBN", "urn:samples")

        ' Write the style element (shows a different way to handle prefixes).
        writer.WriteElementString("style", "urn:samples", "hardcover")

        ' Write the close tag for the root element.

        ' Write the XML to file and close the writer.

            If Not (writer Is Nothing) Then
            End If 
        End Try 

    End Sub 'Main 
End Class 'Sample

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft