private List<SqlFragment> buildDynamicTag(Node node) {

			List<SqlFragment> contents = new ArrayList<SqlFragment>();

			NodeList children = node.getChildNodes();

			for (int i = 0; i < children.getLength(); i++) {
				Node child = children.item(i);

				String nodeName = child.getNodeName();

				if (child.getNodeType() == Node.CDATA_SECTION_NODE
						|| child.getNodeType() == Node.TEXT_NODE) {

					String sql = child.getTextContent();

					TextFragment textFragment = new TextFragment(sql);

					contents.add(textFragment);

				} else if (child.getNodeType() == Node.ELEMENT_NODE) {
					
					TagHandler tagHandler = this.nodeHandlers.get(nodeName.toLowerCase());
					
					if(tagHandler != null ){
						tagHandler.handleNode(child, contents);
					}

				}
			}

			return contents;
		}