Основы > Поиск в Windchill > Справка по поиску > Поиск документов XML
  
Поиск документов XML
* 
Следующий раздел применяется только в том случае, если для свойства wt.index.enableXMLTagSearch установлено значение true. По умолчанию для этого свойства задано значение false.
Если установлено и включено приложение Windchill Index Search, XML-файлы индексируются по умолчанию. Для поиска документов XML можно использовать стандартный поиск по ключевым словам по содержимому XML (значения между XML-тегами).
Однако если для свойства wt.index.enableXMLTagSearch установлено значение true, Windchill индексирует содержимое XML, теги и атрибуты. В результате все наименования тегов и содержимое в документе XML индексируются и доступны для поиска с использованием поля Ключевое слово.
Например, вы выгружаете XML-документ, содержащий следующие объекты:
<title>Part Catalog</title>
Поиск по ключевым словам "catalog" или "title" возвращает XML-документ.
Чтобы ограничить поиск по ключевым словам только XML-документами, можно ввести слово xml:, за которым следует специальная строка запроса.
* 
Поиск XML может выполняться только на английском языке. При выполнении индексирования в XML не выполняется обработка языка.
При наличии ошибочного файла XML Windchill не может индексировать содержимое XML-документа. В этих случаях XML-документ доступен для поиска только по его атрибутам Наименование и Обозначение.
Правила ключевых слов применяются при выполнении специального поиска xml:. Например, допускаются подстановочные знаки и используется морфологический поиск. Дополнительные сведения см. в разделе Правила поиска по ключевым словам.
Чтобы выполнить специализированный поиск xml:, необходимо установить для настройки Режим поиска значение Простой, а для свойства wt.index.enableXMLTagSearch должно быть установлено значение true.
Поиск по XML-тегам
Можно вести поиск по наименованиям и содержимому тегов с помощью следующих форматов:
xml:tag
xml:tag(content)
Можно также скомбинировать эти строки, чтобы вести поиск в нескольких уровнях иерархии XML. При поиске по иерархии применяются следующие правила.
Можно вести поиск в числе уровней любой глубины.
Разделяйте уровни иерархии символом двоеточия (":")
xml:tag(content):tag(content)
Строки в содержимом (content) соединяются с помощью оператора OR.
Можно не указывать тег для каждого уровня в иерархии.
Можно искать содержимое, даже если в иерархии существуют промежуточные теги.
Поскольку содержимое (content) вложено в тег, можно включать строки из любого места в иерархии.
Необходимо следовать иерархической структуре.
Например, выгружается следующий XML-файл:
Чтобы поиск вернул этот файл, можно использовать любой из следующих поисков по ключевым словам.
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
Однако следующие поиски завершаются неуспешно:
Ключевое слово
Причина сбоя
xml:garden
Нельзя выполнять поиск по автономному содержимому. Содержимое должно быть заключено в круглые скобки и следовать за наименованием тега.
Если не нужно, чтобы в поиск был включен тег, удалите модификатор xml: и выполните основной поиск по ключевым словам.
Обходное решение:
xml:spring(garden) xml:spring:title(garden) garden
xml:catalog(garden)item(gloves)
Необходимо использовать двоеточие между уровнями иерархии.
Обходное решение:
xml:catalog(garden):item(gloves)
xml:caption(winter):catalog(sales)
xml:caption(sales)
Иерархический поиск должен начинаться на более высоком уровне, а затем переходить на вложенные уровни. Нельзя начинать поиск с вложенного тега, за которым следует тег более высокого уровня.
Тег CAPTION является вложенным для тега CATALOG.
Ключевое слово Sales находится в иерархии тегов выше, чем тег CAPTION.
<CATALOG>
<SPRING>
<TITLE>Garden Sales</TITLE>
<PAGE>
<CAPTION>Goodbye, Winter!</ITEM>
Обходное решение:
xml:catalog(sales):caption(winter) xml:catalog(sales winter) xml:catalog(sales winter):caption xml:catalog:caption(winter)
xml:title(potting soil)
Если нужно соединить попарно наименование тега и содержимое, которое не находится непосредственно внутри данного тега, то содержимое должно быть вложено в указанный тег.
В приведенном выше примере XML "potting soil" является содержимым вложенного тега ITEM. Тег TITLE находится на более высоком уровне в иерархии. Однако TITLE не является частью иерархии тегов для ITEM.
Иерархия тегов для ITEM имеет вид: CATALOG > SPRING > PAGE > ITEM:
<CATALOG>
<SPRING>
<TITLE>Garden Sales</TITLE>
<PAGE>
<ITEM>Potting Soil</ITEM>
Обходное решение:
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)
Нельзя вести поиск в двух тегах, которые находятся на одном и том же иерархическом уровне:
<PAGE>
<CAPTION>Goodbye, Winter!</CAPTION>
<ITEM>Potting Soil</ITEM>
Обходное решение:
xml:page(winter):item(soil) xml:page(winter soil) xml:caption(winter) xml:item(soil)
Поиск атрибутов XML
Можно вести поиск в наименованиях атрибутов и значениях атрибутов, используя следующие форматы:
xml:@attribute
xml:@attribute(value)
* 
Нельзя комбинировать различные наименования атрибутов со значениями. Значение должно принадлежать данному атрибуту.
Можно также скомбинировать эти строки, чтобы вести поиск в нескольких уровнях иерархии XML. При поиске по иерархии применяются следующие правила.
Можно вести поиск в числе уровней любой глубины.
Разделяйте уровни иерархии символом двоеточия (":")
xml:@attribute(value):@attribute(value)
Строки в выражении (value) соединяются с помощью оператора OR.
Нет необходимости указывать атрибут для каждого уровня в иерархии.
Необходимо следовать иерархической структуре.
Например, выгружается следующий XML-файл:
Чтобы поиск вернул этот файл, можно использовать любой из следующих поисков по ключевым словам.
xml:@month
xml:@month(ma*)
xml:@color(pink)
xml:@number:@color
xml:@status(released):@number:@id(98821c56)
march color pink 98821c56
Однако следующие поиски могут завершиться неудачно:
xml:pink
Нельзя выполнить поиск по автономному значению. Значение должно быть заключено в круглые скобки и следовать за атрибутом.
Если не нужно, чтобы в поиск был включен атрибут, удалите модификатор xml: и выполните основной поиск по ключевым словам.
Обходное решение:
xml:@color(pink) xml:@month:@color(pink) pink
xml:@month(march april)@color(pink)
Необходимо использовать двоеточие между уровнями иерархии.
Обходное решение:
xml:@month(march april):@color(pink)
xml:@status(98821c56)
В отличие от пар тег-содержимое поиск вложенного значения вести нельзя.
Другими словами, нельзя комбинировать наименования атрибутов со значениями вложенных атрибутов.
<CATALOG status="Released">
<SPRING month="March, April, May">
<PAGE number="12">
<ITEM id="98821c56">Potting Soil</ITEM>
Обходное решение:
xml:@status:@id(98821c56) xml:@id(98821c56)
xml:@number(12):@status(released)
Иерархический поиск должен начинаться на более высоком уровне, а затем переходить на вложенные уровни. Нельзя начинать поиск с вложенного атрибута и затем искать атрибут или значение, находящиеся выше в иерархии.
<CATALOG status="Released">
<SPRING month="March, April, May">
<PAGE number="12">
Обходное решение:
xml:@status(released):@number(12) xml:@status(released):@number xml:@status:@number(12)
xml:@alias(garden):@number(12)
Нельзя вести поиск двух атрибутов в различных тегах, находящихся на одном и том же иерархическом уровне:
<CATALOG status="Released">
<SPRING month="March, April, May">
<TITLE alias="Spring Garden Catalog">Garden Sales</TITLE>
<LINE>Outdoor_Tools</LINE>
<PAGE number="12">
Обходное решение:
xml:@alias(garden) xml:@number(12)
Комбинированный поиск тегов и атрибутов
Приведенные выше поиски можно комбинировать, чтобы вести поиск по XML-тегу, содержимому, атрибуту и значению атрибута.
Можно использовать любой из следующих форматов:
xml:tag(content)@attribute(value)
xml:tag@attribute
xml:tag(content)@attribute
xml:tag@attribute(value)
Для прохода по иерархии XML можно использовать символ двоеточия (:). Иерархический поиск должен следовать тем же правилам, которые были изложены выше.
Например, выгружается следующий XML-файл:
Чтобы поиск вернул этот файл, можно использовать любой из следующих поисков по ключевым словам.
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
Однако следующие поиски могут завершиться неудачно:
xml:item(pink)
Нельзя соединять попарно наименования тегов со значениями атрибутов.
Обходное решение:
xml:item@color(pink) item pink
xml:@id(potting soil)
Нельзя соединять попарно наименования атрибутов с содержимым тегов.
Обходное решение:
xml:item(potting soil)@id id potting soil
xml:spring@color(pink)
Нельзя соединять попарно наименования тегов с атрибутами, указанными в других тегах.
Обходное решение:
xml:item@color(pink) xml:spring:@color(pink)
xml:spring:@status(released)
Иерархический поиск должен начинаться на более высоком уровне, а затем переходить на вложенные уровни. Нельзя начинать поиск с вложенного атрибута или пометить тегом, а затем указывать элемент более высокого уровня иерархии.
Обходное решение:
xml:@status(released):spring