class BaseXmlFlowParser implements FlowParser {

	private final Set<String> CHAIN_NAME_SET = new HashSet<>();

	public void parse(String content) throws Exception {
		parse(ListUtil.toList(content));
	}

	@Override
	public void parse(List<String> contentList) throws Exception {<FILL_FUNCTION_BODY>}

	/**
	 * 解析一个 chain 的过程
	 * @param chain chain
	 */
	public abstract void parseOneChain(Element chain);

}

		if (CollectionUtil.isEmpty(contentList)) {
			return;
		}
		List<Document> documentList = ListUtil.toList();
		for (String content : contentList) {
			Document document = DocumentHelper.parseText(content);
			documentList.add(document);
		}

		ParserHelper.parseNodeDocument(documentList);
		ParserHelper.parseChainDocument(documentList, CHAIN_NAME_SET, this::parseOneChain);
	
<no_super_class>