public void restoreXml(XmlPullParser parser, LSHVectorFactory vectorFactory)
			throws LSHException {
		major = 0;
		minor = 0;
		settings = 0;
		int layout_version = 0;
		XmlElement el = parser.start("description");
		if (el.hasAttribute("layout_version")) {
			layout_version = SpecXmlUtils.decodeInt(el.getAttribute("layout_version"));
		}
		if (layout_version < LAYOUT_VERSION) {
			throw new LSHException("Old XML layout is no longer supported");
		}
		if (layout_version > LAYOUT_VERSION) {
			throw new LSHException("XML layout for newer version of BSIM");
		}
		if (el.hasAttribute("major")) {
			major = (short) SpecXmlUtils.decodeInt(el.getAttribute("major"));
			minor = (short) SpecXmlUtils.decodeInt(el.getAttribute("minor"));
		}
		if (el.hasAttribute("settings")) {
			settings = SpecXmlUtils.decodeInt(el.getAttribute("settings"));
		}
		while (parser.peek().isStart()) {
			parser.start("execlist");
			ExecutableRecord erec = ExecutableRecord.restoreXml(parser, this);
			while (parser.peek().isStart()) {
				FunctionDescription.restoreXml(parser, vectorFactory, this, erec);
			}
			parser.end();
		}
		parser.end();
	}
Reconstruct a container by deserializing an XML stream
@param parser is the XML parser
@param vectorFactory is the factory to use for building feature vectors
@throws LSHException if there are inconsistencies in the XML
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/DescriptionManager.java