public void saveXml(Writer fwrite) throws IOException {
		fwrite.append("<description");
		fwrite.append(" layout_version=\"").append(Integer.toString(LAYOUT_VERSION)).append('\"');
		if (major != 0) {
			fwrite.append(" major=\"").append(Short.toString(major)).append('\"');
			fwrite.append(" minor=\"").append(Short.toString(minor)).append('\"');
		}
		if (settings != 0) {
			fwrite.append(" settings=\"0x").append(Integer.toHexString(settings)).append('\"');
		}
		fwrite.append(">\n");
		ExecutableRecord curexe = null;
		for (FunctionDescription fdesc : funcrec) {
			if ((curexe == null) || (0 != fdesc.getExecutableRecord().compareTo(curexe))) {
				if (curexe != null) {
					fwrite.append("</execlist>\n");
				}
				curexe = fdesc.getExecutableRecord();
				fwrite.append("<execlist>\n");
				curexe.saveXml(fwrite);
			}
			fdesc.sortCallgraph();
			fdesc.saveXml(fwrite);
		}
		if (curexe != null) {
			fwrite.append("</execlist>\n");
		}
		fwrite.append("</description>\n");
	}
Serialize the entire container to an XML stream
@param fwrite is the stream to write to
@throws IOException if there are problems writing to the stream
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/DescriptionManager.java