XML-indexierte Artefakte suchen

Um den mithilfe von XML-Suchindexregeln indexierten Inhalt zu durchsuchen, definieren Sie den Suchtext im Format Elementname[Attributname='Attributwert']. Fügen Sie diesen Suchtext als Attributabfragefeld für Ihr Objekt RAMAssetQueryBuilder hinzu. Die Ergebnisse bis herunter zu den spezifischen XML-Übereinstimmungen können über die resultierende Klasse ArtifactSearchResults abgerufen werden. Beispielformate für die Suche in XML-Daten:
  • Suche ohne ein Element: Attributname='Attributwert'
  • Suche nach mehreren Attributen, die in einem einzigen Element definiert sind: Elementname[Attributname1='Attributwert1' Attributname2='Attributwert2]
  • Suche nach einem vollständigen Pfad: Elementpfad1/Elementpfad2[Attributname='Attributwert']
  • Suche nach Text in einem Element: Elementname[Text()='Textwert']
  • Das Platzhalterzeichen kann auch bei der Suche nach XML-Dokumenten verwendet werden: Elementname[Attributname='Attribut*']
				 //Suche in XML-indexiertem Inhalt ausführen
		 		 RAMAssetQueryBuilder query = new RAMAssetQueryBuilder(session);
				 
		 		 //Sicherstellen, dass Suche in Artefakten aktiviert ist
		 		 query.setSearchModes(SearchQuery.SEARCH_WITHIN_ARTIFACTS_FLAG);
		 		 
		 		 //XML-Indexsuchtext im Format Elementname[Attributname='Attributwert']
		 		 String searchText = "wsdl:definitions[targetNamespace='*example*']";
		 		 query.addQueryField(query.QUERY_FIELD_ATTRIBUTE, searchText);
		 		 
		 		 //Suche ausführen
		 		 SearchResult result = session.getAssets(query);
		 		 
		 		 //Liste der Assetübereinstimmungen abrufen
		 		 AssetSearchResult[] results = result.getAssetSearchResults();
		 		 
		 		 for(int i = 0; i < results.length; i++){
		 		 		 //Für einen Assetabgleich die Liste der Artefaktübereinstimmungen abrufen
		 		 		 ArtifactSearchResult[] artifactMatches = results[i].getMatchingArtifacts();
		 		 		 
		 		 		 for(int j = 0; j < artifactMatches.length; j++){
		 		 		 		 //Für einen Artefaktabgleich die XML-Indexübereinstimmungen abrufen
		 		 		 		 String[] xmlIndexMatches = artifactMatches[j].getMatches();
		 		 		 		 
		 		 		 		 for(int k = 0; k < xmlIndexMatches.length; k++){
		 		 		 		 		 System.out.println("Match = " + xmlIndexMatches[k]);
		 		 		 		 }
		 		 		 }
				 }

Feedback