protected String createPrototypeQueryString(JGDataset dataset_, int rowIndex_) throws Exception{
		JGDBXMLQueryManager sharedDBXMLManager_ = JGDBXMLQueryManager.sharedManager();
		
		//get original xml string
		Element copiedQueryElement_ = (Element)_queryElement.clone();
		
		//convert condition node to statement
		Iterator<String> conditionNames_ = sharedDBXMLManager_._conditionDefs.keySet().iterator();
		while(conditionNames_.hasNext()){
			String conditionKeyName_ = conditionNames_.next();
			JGDBXMLQueryConditionDef conditionDef_ = sharedDBXMLManager_.getConditionDef(conditionKeyName_);
			
			List<?> condElementList_ = copiedQueryElement_.getChildren(conditionKeyName_);
			
			while(condElementList_.size() > 0){
				Element condElement_ = (Element)condElementList_.get(0);
				int targetIndex_ = copiedQueryElement_.indexOf(condElement_);
				String conditionStatement_ = null;
				
				if(conditionDef_.acceptConditionStatement(condElement_, dataset_, rowIndex_)){
					conditionStatement_ = conditionDef_.getStatement(condElement_).trim();
				}
				
				copiedQueryElement_.removeContent(targetIndex_);
				if(conditionStatement_ != null){
					copiedQueryElement_.addContent(targetIndex_, new Text(conditionStatement_));
				}
			}
		}
		
		String queryStr_ = copiedQueryElement_.getValue();
		
		//replace other imported query data
		Pattern regexpImportPattern_ = Pattern.compile(JGDBKeyword.STR_REGEXP_IMPORT);
		Matcher regexpImportMatcher_ = regexpImportPattern_.matcher(queryStr_);

		while(regexpImportMatcher_.find()){
			String matchedStr_ = regexpImportMatcher_.group();
			String importKeyName_ = matchedStr_.substring(5, matchedStr_.length()-1);
			String[] convertedKeyNames_ = importKeyName_.split(",");
			JGDBXMLQuery importedXMLQuery_ = null;
			if(convertedKeyNames_.length >= 2){
				importedXMLQuery_ = JGDBXMLQueryManager.sharedManager().getQuery(convertedKeyNames_[0], convertedKeyNames_[1]);
			}else{
				importedXMLQuery_ = _parent.getQuery(importKeyName_);
			}
			
			if(importedXMLQuery_ == null){
				throw new Exception("imported query not found");
			}
			
			queryStr_ = queryStr_.replaceAll(JGDBKeyword.makeRegexpImport(importKeyName_), importedXMLQuery_.createPrototypeQueryString(dataset_, rowIndex_));
		}
		
		return queryStr_;
	}