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);