public void restoreXml(XmlPullParser parser, PatternFactory pfactory) throws IOException {
		markOffset = 0;
		ArrayList<PostRule> postrulelist = new ArrayList<PostRule>();
		ArrayList<MatchAction> actionlist = new ArrayList<MatchAction>();
		XmlElement el = parser.start("pattern");
		String markstring = el.getAttribute("mark");
		if (markstring != null) {
			markOffset = SpecXmlUtils.decodeInt(markstring);
		}
		int moff = restoreXmlData(parser);			// Restore data portion of the tag
		if (moff >= 0) {
			markOffset = moff;
		}
		if (pfactory != null) {
			restoreXmlAttributes(postrulelist, actionlist, parser, pfactory);
		}
		parser.end();
		actions = new MatchAction[actionlist.size()];
		actionlist.toArray(actions);
		postrule = new PostRule[postrulelist.size()];
		postrulelist.toArray(postrule);

	}
Restore the PostRule and the MatchAction tags
@param parser is the parser at the start of tags
@param pfactory is the factory for the PostRule and MatchAction objects
@throws IOException
Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/Pattern.java