public void parseChildrenToResultSet( String appName, Element root, String parentName,
			String sortField ) {
		Report.trace( "bezzotechcosign", "Entering parseChildrenToResultSet, passed in parameter(s):" +
				"\n\tappName: " + appName + "\n\troot:\n\tparentName: " + parentName, null );
		Element parent = ( Element )root.getElementsByTagName( parentName ).item( 0 );
		MyComparator mc = new MyComparator();
		mc.setSortNodeName( sortField );
		sortChildNodes( parent, false, 1, mc );
		NodeList children = parent.getChildNodes();
		if( children.getLength() > 0 ) {
			DataResultSet rset = null;
			for( int i = 0; i < children.getLength(); i++ ) {
				Node node = children.item( i );
				if( node.getNodeType() == Node.ELEMENT_NODE ) {
					Element child = ( Element )node;
					NodeList gchildren = child.getChildNodes();
					if( rset == null ) {
						// Build result set from XML fields
						Vector < String > fieldList = new Vector < String > ();
						for( int j = 0; j < gchildren.getLength(); j++ ) {
							Node gnode = gchildren.item( j );
							if( gnode.getNodeType() == Node.ELEMENT_NODE ) {
								Element gchild = ( Element )gnode;
								fieldList.add( j, gchild.getTagName() );
							}
						}
						rset = new DataResultSet( fieldList );
					}
					Vector row = rset.createEmptyRow();
					for( int k = 0; k < gchildren.getLength(); k++ ) {
						Node gnode = gchildren.item( k );
						if( gnode.getNodeType() == Node.ELEMENT_NODE ) {
							Element gchild = ( Element )gnode;
							String rowName = gchild.getTagName();
							int colIndex = rset.getFieldInfoIndex( rowName );
							String rowValue = gchild.getTextContent();
							row.setElementAt( rowValue, colIndex );
						}
					}
					rset.insertRowAt( row, i );
				}
			}
			if( rset != null )
				m_binder.addResultSet( parentName, rset );
		}
	}