Указание типа контента документа для анализа XML
Дата последнего изменения: 5 октября 2009 г.
Применимо к: SharePoint Foundation 2010
Когда пользователь впервые загружает XML-документ в библиотеку документов, встроенное средство синтаксического анализа XML проверяет тип контента и свойства шаблона документа, чтобы определить, какой тип контента следует назначить данному документу. Средство синтаксического анализа должно определить, какой из типов контента, связанных с библиотекой документов, следует назначить документу, прежде чем средство синтаксического анализа сможет повысить или понизить уровень свойств документа.
Подробное рассмотрение процесса, выполняемого средством синтаксического анализа для сопоставления типа контента документа с типом контента, связанным с библиотекой документов, приведено в разделе Определение типа контента документа для синтаксического разбора XML-документа.
Определение типа контента по идентификатору типа контента
Средство синтаксического анализа ищет инструкцию по обработке, в которой определяется тип контента документа по идентификатору типа контента. Местоположение этой инструкции по обработке включено в определение шаблона столбца идентификатора типа контента. Инструкция по обработке называется MicrosoftWindowsSharePointServices и содержит атрибут с именем ContentTypeID, который представляет идентификатор типа контента документа.
<FieldRef
ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}"
Name="Content Type ID"
PITarget="MicrosoftWindowsSharePointServices"
PIAttribute="ContentTypeID"/>
По умолчанию, все шаблоны списков библиотеки включают столбец, представляющий идентификатор типа контента.
Добавьте эту инструкцию по обработке к вашему XML-документу. Назначьте атрибуту ContentTypeID значение идентификатора типа контента документа.
Например:
<?MicrosoftWindowsSharePointServices ContentTypeID=”0x010101003D7907A1908011d082BD08005AA74F5E00A557E10DA69DBF4C8BE1E21071B08163”/>
В следующих ситуациях средство синтаксического анализа не может определить тип контента:
В документе отсутствует инструкция по обработке MicrosoftWindowsSharePointServices.
В инструкции по обработке не определен тип контента.
Указанный тип контента не связан с библиотекой документов.
Никакой родительский или дочерний элемент указанного типа контента не связан с библиотекой документов.
Если средство синтаксического анализа не может определить тип контента по соответствующему идентификатору, оно выполняет вторую проверку, описанную в следующем разделе.
Примечание |
---|
Средство синтаксического анализа ищет идентификатор типа контента во всех местоположениях документов, которые указываются в определении поля для столбца идентификатора типа контента в библиотеке документов. Столбец идентификатора типа контента можно сопоставить любой инструкции по обработке или выражению XPath по вашему выбору. Однако рекомендуется придерживаться сопоставления по умолчанию, включенного в определение шаблона столбца идентификатора типа контента, чтобы свести к минимуму вероятность столкнуться с такими типами контента, которые определяют для данного свойства документа иное местоположение, чем библиотека документов, с которой они связаны. Такая ситуация приведет к тому, что XML-анализатор будет искать идентификатор типа контента в неверном местоположении. |
Определение типа контента по шаблону документа
Если средство синтаксического анализа не может определить подходящий тип контента для документа на основе идентификатора типа контента, оно ищет инструкцию по обработке, содержащую URL-адрес шаблона документа, по которому сделан документ. Инструкция по обработке называется mso-infoPathSolution, она содержит атрибут под названием href, представляющий URL-адрес шаблона документа.
<FieldRef
ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}"
Name="DocumentTemplate"
PITarget="mso-infoPathSolution"
PIAttribute="href"/>
Этот столбец включен в тип контента "Форма" и добавляется к библиотеке во всех случаях, когда этот тип контента добавляется к библиотеке.
Таким образом, вместо того, чтобы включать идентификатор типа контента, можно добавить эту инструкцию по обработке к XML-документу. Назначьте атрибуту href URI-код шаблона, на котором основан данный документ.
Например:
<?mso-infoPathSolution href=”http://www.adventureworks.com/templates/myTemplate.XML”?>
Если средство синтаксического анализа находит эту инструкцию по обработке, оно проверяет типы контента, связанные с библиотекой документов, чтобы определить, имеет ли тип контента такой же шаблон документа. Если да, то средство синтаксического анализа назначает документу данный тип контента. Если более одного типа контента, связанного с библиотекой документов, имеют один и тот же подходящий шаблон документа, средство синтаксического анализа просто назначает первый подходящий тип контента.
Примечание |
---|
Средство синтаксического анализа ищет URL-адрес шаблона документа во всех местоположениях документов, которые указываются в определении поля для столбца шаблона документа в библиотеке документов. Столбец шаблона документа можно сопоставить любой инструкции по обработке или выражению XPath по вашему выбору. Однако рекомендуется придерживаться сопоставления по умолчанию, включенного в определение шаблона столбца шаблона документа. Это сводит к минимуму вероятность столкнуться с такими типами контента, которые определяют для данного свойства документа иное местоположение, чем библиотека документов, с которой они связаны. Такая ситуация может привести к тому, что XML-анализатор будет искать шаблон документа в неверном местоположении. |
См. также
Концепции
Повышение и понижение уровня свойства XML-документа
Процесс синтаксического анализа XML
Использование типов контента для задания свойств документа XML
Определение типа контента документа для синтаксического разбора XML-документа