Поделиться через


Определение типа контента документа для синтаксического разбора XML-документа

Дата последнего изменения: 10 февраля 2010 г.

Применимо к: SharePoint Foundation 2010

Для того чтобы встроенный синтаксический анализатор XML мог установить тип контента документа и таким образом получить доступ к определению типа контента, сам документ должен содержать тип контента в виде свойства документа. Синтаксический анализатор ищет специальную команду обработки в XML-документах для идентификации типа контента документа. Разработчик может включить команды обработки, которые идентифицируют тип контента документа по типу контента и/или по шаблону документа.

Каким образом синтаксический анализатор определяет тип контента документа

Когда пользователь загружает XML-документ в библиотеку документов, SharePoint Foundation вызывает встроенный синтаксический анализатор XML. Перед тем, как синтаксический анализатор сможет повысить уровень свойств документа, он должен определить тип контента документа, если таковой имеется.

Синтаксический анализатор ищет в схеме библиотеки документов элемент Field, который представляет идентификатор столбца типа контента в библиотеке документов. Из элемента Field синтаксический анализатор узнает местоположение в документе, где должен храниться идентификатор типа контента. Далее синтаксический анализатор определяет, действительно ли в этом месте документа хранится идентификатор типа контента. Если в этом месте не задан идентификатор типа контента, синтаксический анализатор назначает документу тип контента по умолчанию. Затем синтаксический анализатор загружает документ и повышает уровень всех свойств документа соответственно.

Если документ содержит идентификатор типа контента в указанном месте, синтаксический анализатор определяет, связан ли тип контента, имеющий такой идентификатор, также и с библиотекой документов. Если связан, тогда синтаксический анализатор загружает документ и повышает уровень всех свойств документа соответственно.

Если синтаксический анализатор не находит точного соответствия, он проверяет идентификаторы типов контента в библиотеке документов, чтобы определить, есть ли у типа контента документа один или несколько дочерних элементов. Если есть, то синтаксический анализатор назначает документу ближайший дочерний тип контента. Затем синтаксический анализатор загружает документ и повышает уровень всех свойств документа соответственно.

ПримечаниеПримечание

Синтаксический анализатор проверяет список типов контента, которые являются дочерними по отношению к типу контента документа, потому что в большинстве случаев документу назначается тип контента сайта, и совпадающий тип контента списка является дочерним по отношению к типу контента сайта.

Если синтаксический анализатор не находит ни одного совпадающего типа контента, он ищет в схеме библиотеки документов элемент Field, который представляет столбец шаблона документа в библиотеке документов, если такой столбец существует. Если библиотека документов действительно содержит столбец шаблона документа, из элемента Field синтаксический анализатор узнает местоположение в документе, где должен храниться шаблон документа. Затем синтаксический анализатор проверяет, хранится ли шаблон документа в этом месте документа.

Если документ действительно содержит шаблон документа, синтаксический анализатор сравнивает этот шаблон с шаблонами документов, указанными в каждом типе контента в библиотеке документов. Если синтаксический анализатор находит тип контента с тем же шаблоном документа, что и в документе, синтаксический анализатор назначает документу этот тип контента. Если есть несколько типов контента с тем же шаблоном документа, что и в документе, синтаксический анализатор просто назначает первый из найденных типов контента. Затем синтаксический анализатор загружает документ и повышает уровень всех свойств документа соответственно.

Наконец, если синтаксический анализатор не может найти совпадающий тип контента, он назначает документу тип контента по умолчанию. После этого синтаксический анализатор загружает документ и повышает уровень всех свойств документа соответственно.

На следующей блок-схеме показаны проверки, которые выполняет синтаксический анализатор для определения типа контента документа.

Дополнительные сведения о том, как синтаксический анализатор повышает и понижает уровень определенных свойств документов, см. в разделе Использование типов контента для задания свойств документа XML.

Логический поток процедуры синтаксического анализа

О работе синтаксического анализатора

Синтаксический анализатор ищет тип контента библиотеки документов и столбцы шаблона документа, чтобы определить, где в XML-файле находятся эти совпадающие свойства документа. Поэтому для того, чтобы и повышение, и понижение уровня свойств работало правильно, все типы контента в данной библиотеке документов должны содержать такие определения столбцов типа контента и столбцов шаблона документа, которые указывали бы то же местоположение свойств документа, что и столбцы библиотеки документов. В противном случае синтаксический анализатор будет искать эти свойства не в надлежащем месте документа.

Дополнительные сведения об указании типа контента с помощью идентификатора типа контента или шаблона документа см. в разделе Указание типа контента документа для анализа XML.

См. также

Концепции

Повышение и понижение уровня свойства XML-документа

Процесс синтаксического анализа XML

Использование типов контента для задания свойств документа XML

Указание типа контента документа для анализа XML