@Override
	public void saveXml(Writer fwrite) throws IOException {
		fwrite.append('<').append(name).append(">\n");
		if ((md5sum != null) && (md5sum.length() != 0)) {
			fwrite.append("  <md5>").append(md5sum).append("</md5>\n");
		}
		else {
			fwrite.append("  <name>");
			if (name_exec != null) {
				SpecXmlUtils.xmlEscapeWriter(fwrite, name_exec);
			}
			fwrite.append("</name>\n");
			fwrite.append("  <arch>");
			if (arch != null) {
				SpecXmlUtils.xmlEscapeWriter(fwrite, arch);
			}
			fwrite.append("</arch>\n");
			fwrite.append("  <compiler>");
			if (name_compiler != null) {
				SpecXmlUtils.xmlEscapeWriter(fwrite, name_compiler);
			}
			fwrite.append("</compiler>\n");
		}
		for (int i = 0; i < functionKeys.size(); ++i) {
			functionKeys.get(i).saveXml(fwrite);
		}
		fwrite.append("</").append(name).append(">\n");
	}
Query based on a single executable and a specific list of functions names within the executable
The response will be the corresponding FunctionDescription records and a record for each child
of the specified functions
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/protocol/QueryChildren.java