Grupo cniSearchElementInNamespace

Realiza la búsqueda de un elemento que coincida con los criterios especificados. La búsqueda se inicia en el elemento de sintaxis especificada en el argumento de elemento y cada una de las cuatro funciones proporciona una búsqueda en una dirección diferente del árbol:
  1. cniSearchFirstChildInNamespace realiza la búsqueda de los elementos hijo inmediatos del elemento de inicio a partir del primer hijo, hasta que se encuentra una coincidencia o hasta que se alcanza el final de la cadena de elementos hijo.
  2. cniSearchLastChildInNamespace realiza la búsqueda de los elementos hijo inmediatos del elemento de inicio a partir del último hijo, hasta que se encuentra una coincidencia o hasta que se alcanza el final de la cadena de elementos hijo.
  3. cniSearchNextSiblingInNamespace realiza la búsqueda del elemento de inicio a los hermanos siguientes, hasta que se encuentra una coincidencia o hasta que se alcanza el final de la cadena de hermanos.
  4. cniSearchPreviousSiblingInNamespace realiza la búsqueda del elemento de inicio a los hermanos anteriores, hasta que se encuentra una coincidencia o hasta que se alcanza el inicio de la cadena de hermanos.

Se utiliza al buscar un mensaje que pertenece a un dominio preparado para espacios de nombres.

Sintaxis

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)		

Parámetros

returnCode
Código de retorno de la función (salida). La especificación de un puntero NULL significa que el nodo no desea tratar los errores. Si la entrada no es NULL, la salida significa el estado de éxito de la llamada. Las excepciones emitidas durante la ejecución de esta llamada se vuelven a emitir en el nodo ascendente siguiente del flujo. Invoque cciGetLastExceptionData para obtener información detallada de la excepción. Código de retorno de la función (salida).
Los códigos de retorno posibles son:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
targetElement
Dirección del objeto de elemento de sintaxis desde el que se inicia la búsqueda (entrada).
mode
Modalidad de búsqueda que se debe utilizar (entrada). Indica qué combinación de espacio de nombres de elemento, nombre de elemento y tipo de elemento se debe buscar. Los valores posibles son:
  • 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
Cuando la modalidad de comparación no incluye una coincidencia en el espacio de nombres, se buscan todos los espacios de nombres. Este comportamiento es diferente del comportamiento del grupo cniSearchElement, donde sólo se busca el espacio de nombres de serie de caracteres vacío. Cuando especifique una de las modalidades anteriores, establezca el parámetro nameSpace en una serie de caracteres vacía.
type
Tipo de elemento que se debe buscar (entrada). Sólo se utiliza si la modalidad de búsqueda implica una coincidencia en el tipo.
nameSpace
Espacio de nombres que se debe buscar (entrada). Sólo se utiliza si la modalidad de búsqueda implica una coincidencia en el espacio de nombres.
name
Nombre que se debe buscar (entrada). Sólo se utiliza si la modalidad de búsqueda implica una coincidencia en el nombre.

Valores de retorno

Ninguno. Si se produce un error, el parámetro returnCode indica la razón del mismo.

Ejemplo

 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) ;
    
  }
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
as07744_