The XML datatype supports writing XML to Strings, output streams or writers.

Writing to a String:

import static org.camunda.spin.Spin.XML;
import org.camunda.spin.xml.SpinXmlElement;

// Create XML element
SpinXmlElement element = XML("<root id=\"test\"/>");

String xml = element.toString();

String value = element.attr("id").value();

Writing to an Output Stream:

import static org.camunda.spin.Spin.XML;
import org.camunda.spin.xml.SpinXmlElement;
import org.camunda.spin.xml.SpinXmlAttribute;

// Create XML element
SpinXmlElement element = XML("<root id=\"test\"/>");

try {

  // Define Output Stream
  OutputStream outputStream = System.out;

  // Wrap Output Stream in Writer
  OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);

  // Write element to stream writer
  element.writeToWriter(outputStreamWriter);

  // Get attribute from element
  SpinXmlAttribute attr = element.attr("id");

  // Write attribute value to stream writer
  attr.writeToWriter(outputStreamWriter);

  // End Output Stream
  outputStreamWriter.write("\n");

  // Close Output Stream and Writer
  outputStreamWriter.close();

} catch (IOException e) {
  // Handle exception if needed
}

Write to Writer

import static org.camunda.spin.Spin.XML;
import org.camunda.spin.xml.SpinXmlElement;
import org.camunda.spin.xml.SpinXmlAttribute;

// Create XML element
SpinXmlElement element = XML("<root id=\"test\"/>");

// Create String Writer
StringWriter writer = new StringWriter();

// Write element to Writer
element.writeToWriter(writer);

// Get attribute from element
SpinXmlAttribute attr = element.attr("id");

// Write attribute value to Writer
attr.writeToWriter(writer);

On this Page: