cniSearchElementInNamespace-Gruppe

Diese Funktionsgruppe sucht nach einem Element, das die angegebenen Kriterien erfüllt. Die Suche beginnt bei dem Syntaxelement, das im Elementargument angegeben ist, und jede der vier Funktionen führt eine Suche in einer anderen Richtung der Baumstruktur aus:
  1. cniSearchFirstChildInNamespace durchsucht die direkt untergeordneten Elemente des Startelements ab dem ersten untergeordneten Element, bis eine Übereinstimmung gefunden wird oder das Ende der Kette der untergeordneten Elemente erreicht ist.
  2. cniSearchLastChildInNamespace durchsucht die direkt untergeordneten Elemente des Startelements ab dem letzten untergeordneten Element, bis eine Übereinstimmung gefunden wird oder das Ende der Kette der untergeordneten Elemente erreicht ist.
  3. cniSearchNextSiblingInNamespace sucht ab dem Startelement bis zu den nächsten gleichgeordneten Elementen, bis eine Übereinstimmung gefunden wird oder das Ende der Kette der gleichgeordneten Elemente erreicht ist.
  4. cniSearchPreviousSiblingInNamespace sucht ab dem Startelement bis zu den vorherigen gleichgeordneten Elementen, bis eine Übereinstimmung gefunden wird oder der Anfang der Kette der gleichgeordneten Elemente erreicht ist.

Diese Funktionsgruppe wird verwendet, wenn eine Nachricht durchsucht wird, die zu einer Domäne gehört, bei der der Namespace berücksichtigt werden muss.

Syntax

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)

Parameter

returnCode
Der Rückkehrcode aus der Funktion (Ausgabe). Wenn ein Nullzeiger angegeben wird, bedeutet dies, dass der Knoten nicht für Fehler zuständig sein möchte. Wenn die Eingabe nicht NULL ist, gibt die Ausgabe den Erfolgsstatus des Aufrufs an. Alle Ausnahmebedingungen, die bei der Ausführung dieses Aufrufs ausgegeben werden, werden beim nächsten vorgeschalteten Knoten im Nachrichtenfluss erneut ausgegeben. Rufen Sie cciGetLastExceptionData auf, um weitere Informationen zu der Ausnahmebedingung zu erhalten. Der Rückkehrcode aus der Funktion (Ausgabe). Mögliche Rückkehrcodes sind:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
targetElement
Die Adresse des Syntaxelementobjekts, bei dem die Suche beginnt (Eingabe).
mode
Der Suchmodus, der verwendet werden soll (Eingabe). Der Modus gibt an, nach welcher Kombination aus Element-Namespace, Elementtyp und Elementname gesucht werden soll. Folgende Werte sind gültig:
  • 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
Wenn der Vergleichsmodus keine Übereinstimmung des Namespaces vorsieht, werden alle Namespaces durchsucht. Dieses Verhalten unterscheidet sich von dem Verhalten der cniSearchElement-Gruppe, da dort nur der Namespace durchsucht wird, der eine leere Zeichenfolge darstellt. Wenn Sie einen der obigen Modi angegeben, legen Sie als Wert für den Parameter nameSpace eine leere Zeichenfolge fest.
type
Der Elementtyp, nach dem gesucht werden soll (Eingabe). Dieser Parameter wird nur verwendet, wenn der Suchmodus eine Übereinstimmung des Typs vorsieht.
nameSpace
Der Namespace, nach dem gesucht werden soll (Eingabe). Dieser Parameter wird nur verwendet, wenn der Suchmodus eine Übereinstimmung des Namespaces vorsieht.
name
Der Name, nach dem gesucht werden soll (Eingabe). Dieser Parameter wird nur verwendet, wenn der Suchmodus eine Übereinstimmung des Namens vorsieht.

Rückgabewerte

Keine. Wenn ein Fehler auftritt, gibt der Parameter returnCode die Fehlerursache an.

Beispiel

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) ;
}
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 18.05.2006
as07744_