Grupo cniSearchElementInNamespace

Este mandato busca un elemento que coincida con el criterio especificado. La búsqueda se inicia en el elemento de sintaxis especificado en el argumento de elemento, y cada una de las cuatro funciones proporciona una búsqueda en una dirección distinta del árbol:
  1. La función cniSearchFirstChildInNamespace busca los elementos dependientes inmediatos del elemento de inicio desde el primer elemento dependiente hasta que se encuentra una coincidencia o se alcanza el final de la cadena del elemento dependiente.
  2. La función cniSearchLastChildInNamespace busca los elementos dependientes inmediatos del elemento de inicio desde el último elemento dependiente hasta que se encuentra una coincidencia o se alcanza el final de la cadena del elemento dependiente.
  3. La función cniSearchNextSiblingInNamespace busca desde el elemento de inicio hasta los elementos iguales posteriores, hasta que se encuentra una coincidencia o se alcanza el final de la cadena del elemento igual.
  4. La función cniSearchPreviousSiblingInNamespace busca desde el elemento de inicio hasta los elementos iguales anteriores, hasta que se encuentra una coincidencia o se alcanza el principio de la cadena del elemento igual.

Esta función se utiliza al realizar una búsqueda en 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 gestionar errores. Si la entrada no es NULL, la salida indica que el estado de la llamada es correcto. Las excepciones emitidas durante la ejecución de esta llamada vuelven a emitirse en el siguiente nodo en sentido ascendente del flujo. Invoque cciGetLastExceptionData para obtener información detallada de la excepción.
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 va a utilizar (entrada). Indica qué combinación de espacio de nombres de elemento y de nombre y tipo de elemento se va a 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 implica una coincidencia de espacio de nombres, se busca en todos los espacios de nombres. Este comportamiento es distinto al del grupo cniSearchElement, en el que sólo se busca en el espacio de nombres de la serie de caracteres vacía. Cuando especifique una de las modalidades anteriores, establezca el parámetro nameSpace en serie de caracteres vacía.
type
Tipo de elemento que se va a buscar (entrada). Este parámetro sólo se utiliza si la modalidad de búsqueda implica una coincidencia de tipo.
nameSpace
Espacio de nombres que se va a buscar (entrada). Esta parámetro sólo se utiliza si la modalidad de búsqueda implica una coincidencia de espacio de nombres.
name
Nombre que se va a buscar (entrada). Este parámetro sólo se utiliza si la modalidad de búsqueda implica una coincidencia de nombre.

Valores de retorno

Ninguno. Si se produce un error, el parámetro returnCode indica la causa de dicho error.

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) ;
    
  }

Conceptos relacionados
Nodos de proceso de mensajes definidos por el usuario
Nodos de salida definidos por el usuario

Tareas relacionadas
Creación de un nodo de proceso de mensajes en C

Referencia relacionada
cniElementNamespace
Grupo cniSearchElement
cniSetElementNamespace
cciGetLastExceptionData