Gruppo cniSearchElementInNamespace

Ricerca un elemento corrispondente ai criteri specificati. La ricerca viene eseguita iniziando dall'elemento di sintassi specificato nell'argomento dell'elemento ed ognuna delle quattro funzioni effettua una ricerca in una diversa direzione nella struttura al albero:
  1. cniSearchFirstChildInNamespace ricerca gli elementi child immediati dell'elemento iniziale dal primo child, finché non viene rilevata una corrispondenza oppure viene raggiunta la fine della catena di elementi child.
  2. cniSearchLastChildInNamespace ricerca gli elementi child immediati dell'elemento iniziale dall'ultimo child, finché non viene rilevata una corrispondenza oppure viene raggiunta la fine della catena di elementi child.
  3. cniSearchNextSiblingInNamespace effettua la ricerca dall'elemento iniziale all'elemento associato successivo finché non viene rilevata una corrispondenza oppure viene raggiunta la fine della catena di elementi associati.
  4. cniSearchPreviousSiblingInNamespace effettua la ricerca dall'elemento iniziale all'elemento associato precedente finché non viene rilevata una corrispondenza oppure viene raggiunto l'inizio della catena di elementi associati.

Viene utilizzata per la ricerca di un messaggio che appartiene ad un dominio spazio dei nomi.

Sintassi

void cniSearchFirstChildInNamespace(
int*      returnCode,
CciElement*     targetElement,
	CciCompareMode mode,
	const CciChar* nameSpace,
	const CciChar* name,
	CciElementType type)		

void cniSearchLastChildInNamespace(
int*      returnCode,
CciElement*     targetElement,
	CciCompareMode mode,
	const CciChar* nameSpace,
	const CciChar* name,
	CciElementType type)		

void cniSearchNextSiblingInNamespace(
int*      returnCode,
CciElement*     targetElement,
	CciCompareMode mode,
	const CciChar* nameSpace,
	const CciChar* name,
	CciElementType type)		

void cniSearchPreviousSiblingInNamespace(
int*      returnCode,
CciElement*     targetElement,
	CciCompareMode mode,
CciElementType  type,
	const CciChar* nameSpace,
	const CciChar* name)		

Parametri

returnCode
Il codice di ritorno dalla funzione (output). Se si specifica un puntatore NULL significa che il nodo non intende gestire gli errori. Se l'input è diverso da NULL, l'output indica lo stato positivo della chiamata. Eventuali eccezioni generate durante l'esecuzione di questa chiamata, vengono generate nuovamente nel nodo successivo a monte del flusso. Per informazioni dettagliate relative all'eccezione, richiamare cciGetLastExceptionData. Il codice di ritorno dalla funzione (output).
I codici di ritorno possibili sono:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
targetElement
L'indirizzo dell'oggetto elemento di sintassi da cui viene avviata la ricerca (input).
mode
La modalità di ricerca da utilizzare (input). Indica la combinazione di spazio dei nomi, nome e tipo dell'elemento di cui eseguire la ricerca. I valori possibili sono:
  • CCI_COMPARE_MODE_SPACE
  • CCI_COMPARE_MODE_SPACE_FULL_TYPE
  • CCI_COMPARE_MODE_SPACE_GENERIC_TYPE
  • CCI_COMPARE_MODE_SPACE_SPECIFIC_TYPE
  • CCI_COMPARE_MODE_SPACE_NAME
  • CCI_COMPARE_MODE_SPACE_NAME_FULL_TYPE
  • CCI_COMPARE_MODE_SPACE_NAME_GENERIC_TYPE
  • CCI_COMPARE_MODE_SPACE_NAME_SPECIFIC_TYPE
  • CCI_COMPARE_MODE_NULL
Quando la modalità di confronto non implica una corrispondenza relativa dello spazio dei nomi, questi vengono presi tutti in considerazione per la ricerca. Tale modalità operativa si differenzia da quella del gruppo cniSearchElement, in cui la ricerca veniva eseguita solo in relazione allo spazio dei nomi di stringhe vuote. Quando si specifica una delle modalità riportate in precedenza, impostare il parametro nameSpace su stringa vuota.
type
Il tipo di elemento da ricercare (input). Viene utilizzato solo se la modalità di ricerca implica una corrispondenza sul tipo.
nameSpace
Lo spazio dei nomi da ricercare (input). Viene utilizzato solo se la modalità di ricerca implica una corrispondenza sullo spazio dei nomi.
name
Il nome da ricercare (input). Viene utilizzato solo se la modalità di ricerca implica una corrispondenza sul nome.

Valori di restituzione

Nessuno. Se si verifica un errore, il parametro returnCode indica il motivo dell'errore.

Esempio

 mode=CCI_COMPARE_MODE_SPACE ;
 ...

   if (forward) {
      firstChild = cniSearchFirstChildInNamespace(&rc, element, mode, space, 0,0);
    }else{
      firstChild = cniSearchLastChildInNamespace(&rc, element, mode, space, 0,0);

    }

    if (firstChild) {
      depth++;
      traceElement(firstChild,forward,space);
      depth--;
    }
    currentElement = firstChild;
    do{

      if (forward) {
        nextSibling = cniSearchNextSiblingInNamespace(&rc, currentElement,mode,space,0,0);
      }else{
        nextSibling = cniSearchPreviousSiblingInNamespace(&rc, currentElement,mode,space,0,0);
      }
      if (nextSibling) {
        traceElement(nextSibling,forward,space);
        currentElement=nextSibling;
      }

    }while (nextSibling) ;
    
  }
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
as07744_