Principes de base de Windchill > Recherche Windchill > Informations de référence concernant la recherche > Recherches dans les documents XML
  
Recherches dans les documents XML
* 
La rubrique suivante s'applique uniquement si la propriété wt.index.enableXMLTagSearch est définie sur true. Par défaut, cette propriété est définie sur la valeur false.
Si Windchill Index Search est installé et activé sur votre système, les fichiers XML sont indexés par défaut. Vous pouvez rechercher des documents XML via une recherche par mot-clé standard effectuée dans le contenu XML (valeurs insérées entre les balises XML).
Toutefois, si la propriété wt.index.enableXMLTagSearch est définie sur true, alors Windchill indexe le contenu, les balises et les attributs XML. En conséquence, la totalité des noms de balise et du contenu d'un document XML est indexée et peut faire l'objet de recherches à l'aide du champ Mot-clé.
Supposons que vous chargiez un document XML contenant les éléments suivants :
<title>Part Catalog</title>
Une recherche par mot-clé portant sur "catalog" ou sur "title" renverra ce document XML.
Pour limiter votre recherche par mot-clé aux documents XML, vous pouvez entrer le code xml: suivi d'une chaîne de requête spécialisée.
* 
Les recherches XML ne peuvent être effectuées qu'en anglais. L'indexation du contenu XML ne fait l'objet d'aucun traitement linguistique.
En présence d'un code XML incorrect, Windchill ne peut pas indexer le contenu du document XML. Dans ce cas, le document XML ne pourra être recherché que par ses attributs Nom et Numéro.
Dans le cadre d'une recherche xml: spécialisée, les règles de recherche par mot-clé s'appliquent. Par exemple, ce type de recherche autorise les caractères génériques et utilise la racinisation. Pour plus d'informations, consultez la section Règles de recherche par mot-clé.
Pour pouvoir effectuer une recherche xml: spécialisée, vous devez avoir défini votre préférence Mode de recherche sur Simple et la propriété wt.index.enableXMLTagSearch sur true.
Recherche de balises XML
Vous pouvez effectuer une recherche portant sur le nom des balises et sur le contenu des balises en utilisant les formats suivants :
xml:balise
xml:balise(contenu)
Vous pouvez également combiner ces chaînes afin d'effectuer une recherche dans plusieurs niveaux de la hiérarchie XML. Lorsque vous exécutez une recherche dans la hiérarchie, les règles suivantes s'appliquent :
Votre recherche peut porter sur un nombre de niveaux illimité.
Séparez les niveaux de la hiérarchie par un caractère deux-points (":").
xml:balise(contenu):balise(contenu)
Les chaînes figurant dans (contenu) sont jointes par un opérateur OR.
Vous n'avez pas besoin de spécifier une balise pour chaque niveau de la hiérarchie.
Vous pouvez rechercher un contenu même s'il existe des balises intermédiaires dans la hiérarchie.
Tant que le contenu est imbriqué dans une balise, vous pouvez inclure des chaînes figurant n'importe où dans la hiérarchie.
Vous devez suivre la structure hiérarchique.
Supposons que vous chargiez le fichier XML suivant :
Pour que ce fichier soit renvoyé dans les résultats de la recherche, vous pouvez utiliser l'une des recherches par mot-clé suivantes :
xml:catalog
xml:cat*
xml:page
xml:spring(gloves)
xml:spring(outdoor):page(soil gloves)
xml:catalog:spring
xml:catalog:spring:title(sales)
xml:catalog(garden tools soil winter)
catalog garden tools soil winter
En revanche, les recherches ci-après échoueront :
Mot-clé
Motif de l'échec
xml:garden
Vous ne pouvez pas rechercher de contenu seul. Le contenu doit être indiqué entre parenthèses et précédé d'un nom de balise.
Si vous ne souhaitez pas inclure de balise dans votre recherche, supprimez le modificateur xml: et effectuez une recherche par mot-clé de base.
Solution alternative :
xml:spring(garden) xml:spring:title(garden) garden
xml:catalog(garden)item(gloves)
Vous devez séparer les niveaux hiérarchiques par un caractère deux-points.
Solution alternative :
xml:catalog(garden):item(gloves)
xml:caption(winter):catalog(sales)
xml:caption(sales)
Les recherches hiérarchiques doivent commencer par un niveau supérieur suivi de niveaux imbriqués. Vous ne pouvez pas indiquer une balise imbriquée avant une balise de niveau supérieur.
La balise CAPTION est imbriquée dans la balise CATALOG.
Le niveau "Sales" apparaît plus haut dans la hiérarchie des balises que le niveau CAPTION.
<CATALOG>
<SPRING>
<TITLE>Garden Sales</TITLE>
<PAGE>
<CAPTION>Goodbye, Winter!</ITEM>
Solution alternative :
xml:catalog(sales):caption(winter) xml:catalog(sales winter) xml:catalog(sales winter):caption xml:catalog:caption(winter)
xml:title(potting soil)
Si vous appariez un nom de balise avec un contenu ne figurant pas directement dans la balise, vous devez imbriquer le contenu dans la balise spécifiée.
Dans l'exemple de fichier XML, "potting soil" est le contenu d'une balise ITEM imbriquée. La balise TITLE apparaît à un niveau supérieur de la hiérarchie. Toutefois, TITLE ne fait pas partie intégrante de la hiérarchie de balises associée à ITEM.
La hiérarchie de balises relative à ITEM est : CATALOG > SPRING > PAGE > ITEM :
<CATALOG>
<SPRING>
<TITLE>Garden Sales</TITLE>
<PAGE>
<ITEM>Potting Soil</ITEM>
Solution alternative :
xml:page(potting soil) xml:catalog(potting soil) xml:catalog:page(potting soil) xml:catalog:spring:page:item(potting soil)
xml:caption(winter):item(soil)
Vous ne pouvez pas rechercher deux balises figurant sur le même niveau hiérarchique :
<PAGE>
<CAPTION>Goodbye, Winter!</CAPTION>
<ITEM>Potting Soil</ITEM>
Solution alternative :
xml:page(winter):item(soil) xml:page(winter soil) xml:caption(winter) xml:item(soil)
Recherche d'attributs XML
Vous pouvez effectuer une recherche portant sur des noms d'attribut et valeurs d'attribut en utilisant les formats suivants :
xml:@attribut
xml:@attribut(valeur)
* 
Vous ne pouvez pas combiner des noms d'attribut avec des valeurs d'autres attributs. La valeur doit appartenir à l'attribut indiqué.
Vous pouvez également combiner ces chaînes afin d'effectuer une recherche dans plusieurs niveaux de la hiérarchie XML. Lorsque vous exécutez une recherche dans la hiérarchie, les règles suivantes s'appliquent :
Votre recherche peut porter sur un nombre de niveaux illimité.
Séparez les niveaux de la hiérarchie par un caractère deux-points (":").
xml:@attribut(valeur):@attribut(valeur)
Les chaînes figurant dans (valeur) sont jointes par un opérateur OR.
Vous n'avez pas besoin de spécifier un attribut pour chaque niveau de la hiérarchie.
Vous devez suivre la structure hiérarchique.
Supposons que vous chargiez le fichier XML suivant :
Pour que ce fichier soit renvoyé dans les résultats de la recherche, vous pouvez utiliser l'une des recherches par mot-clé suivantes :
xml:@month
xml:@month(ma*)
xml:@color(pink)
xml:@number:@color
xml:@status(released):@number:@id(98821c56)
march color pink 98821c56
En revanche, les recherches ci-après échoueront :
xml:pink
Vous ne pouvez pas rechercher une valeur seule. La valeur doit être indiquée entre parenthèses et précédée d'un attribut.
Si vous ne souhaitez pas inclure d'attribut dans votre recherche, supprimez le modificateur xml: et effectuez une recherche par mot-clé de base.
Solution alternative :
xml:@color(pink) xml:@month:@color(pink) pink
xml:@month(march april)@color(pink)
Vous devez séparer les niveaux hiérarchiques par un caractère deux-points.
Solution alternative :
xml:@month(march april):@color(pink)
xml:@status(98821c56)
Contrairement aux paires balise-contenu, vous ne pouvez pas rechercher de valeur imbriquée.
En d'autres termes, vous ne pouvez pas combiner de noms d'attribut avec des valeurs d'attribut imbriquées.
<CATALOG status="Released">
<SPRING month="March, April, May">
<PAGE number="12">
<ITEM id="98821c56">Potting Soil</ITEM>
Solution alternative :
xml:@status:@id(98821c56) xml:@id(98821c56)
xml:@number(12):@status(released)
Les recherches hiérarchiques doivent commencer par un niveau supérieur suivi de niveaux imbriqués. Vous ne pouvez pas commencer par indiquer un attribut imbriqué, suivi d'un attribut ou d'une valeur figurant plus haut dans la hiérarchie.
<CATALOG status="Released">
<SPRING month="March, April, May">
<PAGE number="12">
Solution alternative :
xml:@status(released):@number(12) xml:@status(released):@number xml:@status:@number(12)
xml:@alias(garden):@number(12)
Vous ne pouvez pas rechercher deux attributs figurant dans des balises différentes du même niveau hiérarchique :
<CATALOG status="Released">
<SPRING month="March, April, May">
<TITLE alias="Spring Garden Catalog">Garden Sales</TITLE>
<LINE>Outdoor_Tools</LINE>
<PAGE number="12">
Solution alternative :
xml:@alias(garden) xml:@number(12)
Recherches de balise et d'attribut combinées
Vous pouvez combiner les recherches ci-dessus afin d'effectuer une recherche par balise, contenu, attribut et valeur d'attribut XML.
Vous pouvez utiliser l'un des formats suivants :
xml:balise(contenu)@attribut(valeur)
xml:balise@attribut
xml:balise(contenu)@attribut
xml:balise@attribut(valeur)
Vous pouvez utiliser le caractère deux points (:) pour parcourir la hiérarchie XML. Les recherches hiérarchiques doivent suivre les mêmes règles que celles énoncées plus haut.
Supposons que vous chargiez le fichier XML suivant :
Pour que ce fichier soit renvoyé dans les résultats de la recherche, vous pouvez utiliser l'une des recherches par mot-clé suivantes :
xml:spring@month(april)
xml:catalog(garden soil gloves)@status(released)
xml:page@number(12):item@id(98821c56)
xml:catalog:@month(april):caption(goodbye)
xml:catalog(gloves soil):page@number(12):caption(goodbye)
xml:spring(garden tools):@alias
catalog march spring pink 98821c56
En revanche, les recherches ci-après échoueront :
xml:item(pink)
Vous ne pouvez pas apparier un nom de balise avec une valeur d'attribut.
Solution alternative :
xml:item@color(pink) item pink
xml:@id(potting soil)
Vous ne pouvez pas apparier un nom d'attribut avec un contenu de balise.
Solution alternative :
xml:item(potting soil)@id id potting soil
xml:spring@color(pink)
Vous ne pouvez pas apparier un nom de balise avec un attribut spécifié dans une autre balise.
Solution alternative :
xml:item@color(pink) xml:spring:@color(pink)
xml:spring:@status(released)
Les recherches hiérarchiques doivent commencer par un niveau supérieur suivi de niveaux imbriqués. Vous ne pouvez pas commencer par indiquer un attribut ou une balise imbriqués, puis spécifier un élément figurant plus haut dans la hiérarchie.
Solution alternative :
xml:@status(released):spring