Grupo cniSearchElementInNamespace

Pesquisa um elemento correspondente aos critérios especificados. A pesquisa começa no elemento de sintaxe especificado no argumento element, e cada uma das quatro funções fornece uma pesquisa em uma direção diferente na árvore.
  1. cniSearchFirstChildInNamespace pesquisa os elementos filhos imediatos do elemento inicial a partir do primeiro filho, até que seja encontrada uma correspondência ou que o final da cadeia de elementos filhos seja alcançado.
  2. cniSearchLastChildInNamespace pesquisa os elementos filhos imediatos do elemento inicial a partir do último filho, até que seja encontrada uma correspondência ou que o final da cadeia de elementos filhos seja alcançado.
  3. cniSearchNextSiblingInNamespace pesquisa a partir do elemento inicial até os próximos irmãos, até que seja encontrada uma correspondência ou que o final da cadeia de irmãos seja alcançado.
  4. cniSearchPreviousSiblingInNamespace pesquisa a partir do elemento inicial até os irmãos anteriores, até que seja encontrada uma correspondência ou que o início da cadeia de irmãos seja alcançado.

Isto é utilizado ao pesquisar uma mensagem que pertence a um domínio com conhecimento de espaço de nomes.

Sintaxe

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
O código de retorno da função (saída). Especificar um ponteiro NULL significa que o nó não deseja lidar com erros. Se a entrada não for NULL, a saída significa o status de êxito da chamada. Quaisquer exceções lançadas durante a execução desta chamada serão lançadas novamente para o próximo nó acima no fluxo. Chame cciGetLastExceptionData para obter detalhes da exceção.O código de retorno da função (saída).
Os possíveis códigos de retorno são:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
targetElement
O endereço do objeto de elemento de sintaxe do qual a pesquisa começa (entrada).
mode
O modo de pesquisa a utilizar (entrada). Isso indica qual combinação de espaço de nomes de elemento, nome de elemento e tipo de elemento deve ser pesquisada. Os valores possíveis são:
  • 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 o modo de comparação não envolver uma correspondência de espaço de nomes, todos os espaços de nomes serão pesquisados. Isso é diferente do comportamento do grupo cniSearchElement, onde somente o espaço de nomes de cadeia vazia é pesquisado. Quando você especificar um dos modos acima, defina o parâmetro nameSpace como a cadeia vazia.
tipo
O tipo de elemento a pesquisar (entrada). Isso é utilizado se o modo da pesquisa envolver uma correspondência de tipo.
nameSpace
O espaço de nomes a pesquisar (entrada). Isso é utilizado somente se o modo da pesquisa envolver uma correspondência de espaço de nomes
name
O nome a pesquisar (entrada). Isso é utilizado somente se o modo da pesquisa envolver uma correspondência de nome.

Valores de Retorno

Nenhuma. Se ocorrer um erro, o parâmetro returnCode indica o motivo do erro.

Exemplo

 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 | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
as07744_