TextXML Format

Sponge uses a predefined form of XML called “TextXML” to denote the coloring and styling of text. A description of the elements and attributes are as follows:

Element Attribute Description
a (anchor) href anchor element; Indicates that this text will open the link in the href attribute when clicked.
b (bold)   Bolds the text.
c (color) n Applies a color indicated by the n (name) attribute to the text.
i (italics)   Italicizes the text.
o (obfuscated)   Obfuscates the text (replaces the characters with random characters that change continuously).
s (strikethrough)   Strikes through the text.
span onClick, onHover Generic holder element that can have click and/or hover actions indicated by the onClick and onHover attributes, respectively
tr (translation) key Indicates a text translation
u (underline)   Underlines the text.

For example, the text “Hello World!”, formatted with the color red and an underline would have the following representation in the TextXML format:

<c n="red">
    <u>Hello World!</u>
</c>

This output can be produced using the following code:

import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.format.TextColors;
import org.spongepowered.api.text.format.TextStyles;
import org.spongepowered.api.text.serializer.TextSerializers;

Text text = Text.of(TextColors.RED, TextStyles.UNDERLINE, "Hello World!");
String xmlText = TextSerializers.TEXT_XML.serialize(text);