private void processFragmentRange(ProgramFragment frag, XmlPullParser parser)
			throws AddressFormatException, NotFoundException {

		XmlElement element = parser.next();

		while (!monitor.isCancelled()) {
			String elementName = element.getName();
			if (elementName.equals("ADDRESS_RANGE")) {
				if (element.isStart()) {
					String startStr = element.getAttribute("START");
					String endStr = element.getAttribute("END");

					Address start = XmlProgramUtilities.parseAddress(factory, startStr);
					Address end = XmlProgramUtilities.parseAddress(factory, endStr);

					if (start == null || end == null) {
						throw new AddressFormatException("Incompatible Fragment Address Range: [" +
							startStr + "," + endStr + "]");
					}

					frag.move(start, end);
				}
				element = parser.next();
			}
			else {
				return;
			}
		}

	}
Write out the XML for the program trees.
@param writer writer for XML
@param addrs the addresses
@param m monitor that can be canceled should be written
@throws CancelledException if cancelled
Ghidra/Features/Base/src/main/java/ghidra/app/util/xml/ProgramTreeXmlMgr.java