@SafeVarargs
	static <T> Writer<T> elem(
		final String name,
		final Writer<? super T>... children
	) {
		requireNonNull(name);
		requireNonNull(children);

		return (xml, data) -> {
			if (data != null) {
				xml.writeStartElement(name);
				for (Writer<? super T> child : children) {
					child.write(xml, data);
				}
				xml.writeEndElement();
			}
		};
	}
Create a new {@code Writer}, which writes an XML element with the given
name and writes the given children into it.

@param name the root element name
@param children the XML child elements
@param <T> the writer base type
@return a new writer instance
@throws NullPointerException if one of the arguments is {@code null}
jenetics.xml/src/main/java/io/jenetics/xml/stream/Writer.java