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) ;
}
Notices | Trademarks | Downloads | Library | Support | Feedback
Copyright IBM Corporation 1999, 2006 Last updated: 5월 25, 2006
as07744_