Buscar artefactos indexados por XML

Para buscar el contenido indexado por reglas de índice de búsqueda XML, defina su texto de búsqueda de la siguiente forma elementName[attributeName='attributeValue']. Añada este texto de búsqueda como un campo de consulta de atributo a su RAMAssetQueryBuilder. El resultado de las coincidencias XML concretas se puede recuperar por medio del ArtifactSearchResults resultante. Formatos de ejemplo para búsqueda dentro de datos XML.
  • Buscar sin un elemento: attributeName='attributeValue'
  • Buscar varios atributos definidos en un único elemento: elementName[attributeName1='attributeValue1' attributeName2='attributeValue2]
  • Buscar una vía de acceso completa: elementPath1/elementPath2[attributeName='attributeValue']
  • Buscar texto dentro de un elemento: elementName[text()='textValue']
  • El carácter comodín se podría utilizar también cuando busque documentos XML: elementName[attributeName='attribute*']
				 //Realizar búsqueda en el contenido indexado XML
		 		 RAMAssetQueryBuilder query = new RAMAssetQueryBuilder(session);
				 
		 		 //Asegurarse de que la búsqueda en los artefactos está activa
		 		 query.setSearchModes(SearchQuery.SEARCH_WITHIN_ARTIFACTS_FLAG);
		 		 
		 		 //Texto de búsqueda de índice XML en el formato elementName[attributeName='attributeValue']
		 		 String searchText = "wsdl:definitions[targetNamespace='*example*']";
		 		 query.addQueryField(query.QUERY_FIELD_ATTRIBUTE, searchText);
		 		 
		 		 //Realizar búsqueda
		 		 SearchResult result = session.getAssets(query);
		 		 
		 		 //Obtener lista de coincidencias de activo
		 		 AssetSearchResult[] results = result.getAssetSearchResults();
		 		 
		 		 for(int i = 0; i < results.length; i++){
		 		 		 // Para una coincidencia de activos, obtener la lista de coincidencias de artefacto
		 		 		 ArtifactSearchResult[] artifactMatches = results[i].getMatchingArtifacts();
		 		 		 
		 		 		 for(int j = 0; j < artifactMatches.length; j++){
		 		 		 		 // Para una coincidencia de artefactos, obtener las coincidencias de índice XML
		 		 		 		 String[] xmlIndexMatches = artifactMatches[j].getMatches();
		 		 		 		 
		 		 		 		 for(int k = 0; k < xmlIndexMatches.length; k++){
		 		 		 		 		 System.out.println("Match = " + xmlIndexMatches[k]);
		 		 		 		 }
		 		 		 }
				 }

Comentarios