SyntaxFactory Class

Builds XML nodes, tokens, and trivia.

public static class SyntaxFactory

Remarks

A node built here is not part of any document, so its span starts at zero. Putting it into a tree with SyntaxNodeExtensions.ReplaceNode gives it a real position, without re-reading any text.

Example

var node = SyntaxFactory.XmlEmptyElement("package", [SyntaxFactory.XmlAttribute("version", "1.0.0")]);
var document = SyntaxFactory.XmlDocument(node);
Assert.Equal("<package version=\"1.0.0\" />", document.ToFullString());

Properties

NameDescription
CarriageReturnLineFeedA Windows line break.
LineFeedA Unix line break.
SpaceA single space.
TabA single tab.

CarriageReturnLineFeed

SyntaxFactory.cs

A Windows line break.

public static SyntaxTrivia CarriageReturnLineFeed { get; }

Property value

SyntaxTrivia

A Unix line break.

public static SyntaxTrivia LineFeed { get; }

Property value

SyntaxTrivia

A single space.

public static SyntaxTrivia Space { get; }

Property value

SyntaxTrivia

A single tab.

public static SyntaxTrivia Tab { get; }

Property value

SyntaxTrivia

Methods

NameDescription
AttributeValue(string, char)Creates an attribute value token, escaping what has to be escaped inside quote.
EndOfLine(string)
Identifier(string)Creates a name token.
MissingToken(SyntaxKind)Creates a zero-width token standing in for one a document does not have.
Token(SyntaxKind)Creates a token of kind, spelled the only way that kind can be.
Token(SyntaxKind, string)Creates a token of kind spelled text.
Trivia(SyntaxKind, string)
Whitespace(string)
XmlAttribute(SyntaxToken, SyntaxToken, SyntaxToken, SyntaxToken, SyntaxToken)
XmlAttribute(string, string)
XmlCDataSection(SyntaxToken, SyntaxToken, SyntaxToken)
XmlCDataSection(string)
XmlComment(SyntaxToken, SyntaxToken, SyntaxToken)
XmlComment(string)
XmlDeclaration(SyntaxToken, SyntaxList<XmlAttributeSyntax>, SyntaxToken)
XmlDeclaration(string, string?, string?)
XmlDocument(SyntaxList<XmlNodeSyntax>, SyntaxToken)
XmlDocument(XmlNodeSyntax[])
XmlDocumentType(SyntaxToken, SyntaxToken, SyntaxToken, SyntaxToken)
XmlDocumentType(string, string?)
XmlElement(XmlElementStartTagSyntax, SyntaxList<XmlNodeSyntax>, XmlElementEndTagSyntax?)
XmlElement(string, XmlNodeSyntax[])Creates an element with a start tag, content, and a matching end tag.
XmlElement(string, IEnumerable<XmlAttributeSyntax>, IEnumerable<XmlNodeSyntax>)Creates an element with a start tag, content, and a matching end tag.
XmlElementEndTag(SyntaxToken, SyntaxToken, SyntaxTokenList, SyntaxToken)
XmlElementEndTag(string)
XmlElementStartTag(SyntaxToken, SyntaxToken, SyntaxList<XmlAttributeSyntax>, SyntaxToken)
XmlElementStartTag(string, IEnumerable<XmlAttributeSyntax>)
XmlEmptyElement(SyntaxToken, SyntaxToken, SyntaxList<XmlAttributeSyntax>, SyntaxToken)
XmlEmptyElement(string)
XmlEmptyElement(string, IEnumerable<XmlAttributeSyntax>)
XmlProcessingInstruction(SyntaxToken, SyntaxToken, SyntaxToken, SyntaxToken)
XmlProcessingInstruction(string, string?)
XmlSkippedText(SyntaxTokenList)
XmlSkippedText(string)
XmlText(SyntaxToken)
XmlText(string)

AttributeValue(string, char)

SyntaxFactory.cs

Creates an attribute value token, escaping what has to be escaped inside quote.

public static SyntaxToken AttributeValue(string value, char quote = '"')

Parameters

value string
quote char

Returns

SyntaxToken

Exceptions

ArgumentNullException
value is null.

EndOfLine(string)

SyntaxFactory.cs
public static SyntaxTrivia EndOfLine(string text)

Parameters

text string

Returns

SyntaxTrivia

Exceptions

ArgumentNullException
text is null.

Identifier(string)

SyntaxFactory.cs

Creates a name token.

public static SyntaxToken Identifier(string name)

Parameters

name string

Returns

SyntaxToken

Exceptions

ArgumentNullException
name is null.

MissingToken(SyntaxKind)

SyntaxFactory.cs

Creates a zero-width token standing in for one a document does not have.

public static SyntaxToken MissingToken(SyntaxKind kind)

Parameters

kind SyntaxKind

Returns

SyntaxToken

Token overloads

Token(SyntaxKind)

SyntaxFactory.cs

Creates a token of kind, spelled the only way that kind can be.

public static SyntaxToken Token(SyntaxKind kind)
Parameters
kind SyntaxKind
Returns

SyntaxToken

Token(SyntaxKind, string)

SyntaxFactory.cs

Creates a token of kind spelled text.

public static SyntaxToken Token(SyntaxKind kind, string text)
Parameters
kind SyntaxKind
text string
Returns

SyntaxToken

Exceptions
ArgumentNullException
text is null.

Trivia(SyntaxKind, string)

SyntaxFactory.cs
public static SyntaxTrivia Trivia(SyntaxKind kind, string text)

Parameters

kind SyntaxKind
text string

Returns

SyntaxTrivia

Exceptions

ArgumentNullException
text is null.

Whitespace(string)

SyntaxFactory.cs
public static SyntaxTrivia Whitespace(string text)

Parameters

text string

Returns

SyntaxTrivia

Exceptions

ArgumentNullException
text is null.

XmlAttribute overloads

XmlAttribute(SyntaxToken, SyntaxToken, SyntaxToken, SyntaxToken, SyntaxToken)

SyntaxFactory.cs
public static XmlAttributeSyntax XmlAttribute(SyntaxToken nameToken, SyntaxToken equalsToken, SyntaxToken startQuoteToken, SyntaxToken valueToken, SyntaxToken endQuoteToken)
Parameters
nameToken SyntaxToken
equalsToken SyntaxToken
startQuoteToken SyntaxToken
valueToken SyntaxToken
endQuoteToken SyntaxToken
Returns

XmlAttributeSyntax

No documentation is available.

XmlAttribute(string, string)

SyntaxFactory.cs
public static XmlAttributeSyntax XmlAttribute(string name, string value)
Parameters
name string
value string
Returns

XmlAttributeSyntax

Exceptions
ArgumentNullException
name or value is null.

XmlCDataSection overloads

XmlCDataSection(SyntaxToken, SyntaxToken, SyntaxToken)

SyntaxFactory.cs
public static XmlCDataSectionSyntax XmlCDataSection(SyntaxToken startCDataToken, SyntaxToken textToken, SyntaxToken endCDataToken)
Parameters
startCDataToken SyntaxToken
textToken SyntaxToken
endCDataToken SyntaxToken
Returns

XmlCDataSectionSyntax

No documentation is available.

XmlCDataSection(string)

SyntaxFactory.cs
public static XmlCDataSectionSyntax XmlCDataSection(string text)
Parameters
text string
Returns

XmlCDataSectionSyntax

Exceptions
ArgumentNullException
text is null.

XmlComment overloads

XmlComment(SyntaxToken, SyntaxToken, SyntaxToken)

SyntaxFactory.cs
public static XmlCommentSyntax XmlComment(SyntaxToken startCommentToken, SyntaxToken textToken, SyntaxToken endCommentToken)
Parameters
startCommentToken SyntaxToken
textToken SyntaxToken
endCommentToken SyntaxToken
Returns

XmlCommentSyntax

No documentation is available.

XmlComment(string)

SyntaxFactory.cs
public static XmlCommentSyntax XmlComment(string text)
Parameters
text string
Returns

XmlCommentSyntax

Exceptions
ArgumentNullException
text is null.

XmlDeclaration overloads

XmlDeclaration(SyntaxToken, SyntaxList<XmlAttributeSyntax>, SyntaxToken)

SyntaxFactory.cs
public static XmlDeclarationSyntax XmlDeclaration(SyntaxToken startDeclarationToken, SyntaxList<XmlAttributeSyntax> attributes, SyntaxToken endDeclarationToken)
Parameters
startDeclarationToken SyntaxToken
attributes SyntaxList<XmlAttributeSyntax>
endDeclarationToken SyntaxToken
Returns

XmlDeclarationSyntax

No documentation is available.

XmlDeclaration(string, string?, string?)

SyntaxFactory.cs
public static XmlDeclarationSyntax XmlDeclaration(string version = "1.0", string? encoding = null, string? standalone = null)
Parameters
version string
encoding string?
standalone string?
Returns

XmlDeclarationSyntax

Exceptions
ArgumentNullException
version is null.

XmlDocument overloads

XmlDocument(SyntaxList<XmlNodeSyntax>, SyntaxToken)

SyntaxFactory.cs
public static XmlDocumentSyntax XmlDocument(SyntaxList<XmlNodeSyntax> nodes, SyntaxToken endOfFileToken)
Parameters
nodes SyntaxList<XmlNodeSyntax>
endOfFileToken SyntaxToken
Returns

XmlDocumentSyntax

No documentation is available.

XmlDocument(XmlNodeSyntax[])

SyntaxFactory.cs
public static XmlDocumentSyntax XmlDocument(params XmlNodeSyntax[] nodes)
Parameters
nodes XmlNodeSyntax[]
Returns

XmlDocumentSyntax

Exceptions
ArgumentNullException
nodes is null.

XmlDocumentType overloads

XmlDocumentType(SyntaxToken, SyntaxToken, SyntaxToken, SyntaxToken)

SyntaxFactory.cs
public static XmlDocumentTypeSyntax XmlDocumentType(SyntaxToken startDocumentTypeToken, SyntaxToken nameToken, SyntaxToken contentToken, SyntaxToken greaterThanToken)
Parameters
startDocumentTypeToken SyntaxToken
nameToken SyntaxToken
contentToken SyntaxToken
greaterThanToken SyntaxToken
Returns

XmlDocumentTypeSyntax

No documentation is available.

XmlDocumentType(string, string?)

SyntaxFactory.cs
public static XmlDocumentTypeSyntax XmlDocumentType(string name, string? value = null)
Parameters
name string
value string?
Returns

XmlDocumentTypeSyntax

Exceptions
ArgumentNullException
name is null.

XmlElement overloads

XmlElement(XmlElementStartTagSyntax, SyntaxList<XmlNodeSyntax>, XmlElementEndTagSyntax?)

SyntaxFactory.cs
public static XmlElementSyntax XmlElement(XmlElementStartTagSyntax startTag, SyntaxList<XmlNodeSyntax> content, XmlElementEndTagSyntax? endTag)

No documentation is available.

XmlElement(string, XmlNodeSyntax[])

SyntaxFactory.cs

Creates an element with a start tag, content, and a matching end tag.

public static XmlElementSyntax XmlElement(string name, params XmlNodeSyntax[] content)
Parameters
name string
content XmlNodeSyntax[]
Returns

XmlElementSyntax

Exceptions
ArgumentNullException
name or content is null.

XmlElement(string, IEnumerable<XmlAttributeSyntax>, IEnumerable<XmlNodeSyntax>)

SyntaxFactory.cs

Creates an element with a start tag, content, and a matching end tag.

public static XmlElementSyntax XmlElement(string name, IEnumerable<XmlAttributeSyntax> attributes, IEnumerable<XmlNodeSyntax> content)
Parameters
name string
attributes IEnumerable<XmlAttributeSyntax>
content IEnumerable<XmlNodeSyntax>
Returns

XmlElementSyntax

Exceptions
ArgumentNullException
name, attributes, or content is null.

XmlElementEndTag overloads

XmlElementEndTag(SyntaxToken, SyntaxToken, SyntaxTokenList, SyntaxToken)

SyntaxFactory.cs
public static XmlElementEndTagSyntax XmlElementEndTag(SyntaxToken lessThanSlashToken, SyntaxToken nameToken, SyntaxTokenList skippedTokens, SyntaxToken greaterThanToken)
Parameters
lessThanSlashToken SyntaxToken
nameToken SyntaxToken
skippedTokens SyntaxTokenList
greaterThanToken SyntaxToken
Returns

XmlElementEndTagSyntax

No documentation is available.

XmlElementEndTag(string)

SyntaxFactory.cs
public static XmlElementEndTagSyntax XmlElementEndTag(string name)
Parameters
name string
Returns

XmlElementEndTagSyntax

Exceptions
ArgumentNullException
name is null.

XmlElementStartTag overloads

XmlElementStartTag(SyntaxToken, SyntaxToken, SyntaxList<XmlAttributeSyntax>, SyntaxToken)

SyntaxFactory.cs
public static XmlElementStartTagSyntax XmlElementStartTag(SyntaxToken lessThanToken, SyntaxToken nameToken, SyntaxList<XmlAttributeSyntax> attributes, SyntaxToken greaterThanToken)
Parameters
lessThanToken SyntaxToken
nameToken SyntaxToken
attributes SyntaxList<XmlAttributeSyntax>
greaterThanToken SyntaxToken
Returns

XmlElementStartTagSyntax

No documentation is available.

XmlElementStartTag(string, IEnumerable<XmlAttributeSyntax>)

SyntaxFactory.cs
public static XmlElementStartTagSyntax XmlElementStartTag(string name, IEnumerable<XmlAttributeSyntax> attributes)
Parameters
name string
attributes IEnumerable<XmlAttributeSyntax>
Returns

XmlElementStartTagSyntax

Exceptions
ArgumentNullException
name or attributes is null.

XmlEmptyElement overloads

XmlEmptyElement(SyntaxToken, SyntaxToken, SyntaxList<XmlAttributeSyntax>, SyntaxToken)

SyntaxFactory.cs
public static XmlEmptyElementSyntax XmlEmptyElement(SyntaxToken lessThanToken, SyntaxToken nameToken, SyntaxList<XmlAttributeSyntax> attributes, SyntaxToken slashGreaterThanToken)
Parameters
lessThanToken SyntaxToken
nameToken SyntaxToken
attributes SyntaxList<XmlAttributeSyntax>
slashGreaterThanToken SyntaxToken
Returns

XmlEmptyElementSyntax

No documentation is available.

XmlEmptyElement(string)

SyntaxFactory.cs
public static XmlEmptyElementSyntax XmlEmptyElement(string name)
Parameters
name string
Returns

XmlEmptyElementSyntax

Exceptions
ArgumentNullException
name is null.

XmlEmptyElement(string, IEnumerable<XmlAttributeSyntax>)

SyntaxFactory.cs
public static XmlEmptyElementSyntax XmlEmptyElement(string name, IEnumerable<XmlAttributeSyntax> attributes)
Parameters
name string
attributes IEnumerable<XmlAttributeSyntax>
Returns

XmlEmptyElementSyntax

Exceptions
ArgumentNullException
name or attributes is null.

XmlProcessingInstruction overloads

XmlProcessingInstruction(SyntaxToken, SyntaxToken, SyntaxToken, SyntaxToken)

SyntaxFactory.cs
public static XmlProcessingInstructionSyntax XmlProcessingInstruction(SyntaxToken startProcessingInstructionToken, SyntaxToken nameToken, SyntaxToken dataToken, SyntaxToken endProcessingInstructionToken)
Parameters
startProcessingInstructionToken SyntaxToken
nameToken SyntaxToken
dataToken SyntaxToken
endProcessingInstructionToken SyntaxToken
Returns

XmlProcessingInstructionSyntax

No documentation is available.

XmlProcessingInstruction(string, string?)

SyntaxFactory.cs
public static XmlProcessingInstructionSyntax XmlProcessingInstruction(string target, string? data)
Parameters
target string
data string?
Returns

XmlProcessingInstructionSyntax

Exceptions
ArgumentNullException
target is null.

XmlSkippedText overloads

XmlSkippedText(SyntaxTokenList)

SyntaxFactory.cs
public static XmlSkippedTextSyntax XmlSkippedText(SyntaxTokenList tokens)
Parameters
tokens SyntaxTokenList
Returns

XmlSkippedTextSyntax

No documentation is available.

XmlSkippedText(string)

SyntaxFactory.cs
public static XmlSkippedTextSyntax XmlSkippedText(string text)
Parameters
text string
Returns

XmlSkippedTextSyntax

Exceptions
ArgumentNullException
text is null.

XmlText overloads

XmlText(SyntaxToken)

SyntaxFactory.cs
public static XmlTextSyntax XmlText(SyntaxToken textToken)
Parameters
textToken SyntaxToken
Returns

XmlTextSyntax

No documentation is available.

XmlText(string)

SyntaxFactory.cs
public static XmlTextSyntax XmlText(string text)
Parameters
text string
Returns

XmlTextSyntax

Exceptions
ArgumentNullException
text is null.
Remarks

text is written exactly as given, so a reference it holds stays a reference; the node's XmlTextSyntax.Value is what that text reads as.