Общие сведения о схеме описания свойств
В этом разделе представлена схема описания свойств, используемая системой свойств Shell.
Введение новых функций Для Windows Vista и более поздних версий требует расширения существующей системы свойств Shell:
- Поддержка расширенной и расширяемой системы описания свойств, которая предоставляет сведения о свойствах, включая отображаемые имена, тип, тип отображения, поведение сортировки и группы, а также другие атрибуты, необходимые для представления и управления свойствами.
- Поддерживает список типов свойств (в сочетании с пользовательским интерфейсом, которые могут изменять эти типы в различных представлениях, таких как представление списка, панель предварительного просмотра, диалоги свойств и т. д.), которые могут быть связаны с различными свойствами.
- Укажите списки описания свойств, определяющие набор свойств, отображаемых в различных представлениях.
- Предоставьте упрощенный интерфейс, IPropertyStore, чтобы обработчики свойств могли быть написаны проще и поэтому свойства можно сохранять в файлах.
- Поддержка обработчиков свойств, отличных от файлов, для предоставления свойств в представлении.
Эти функции реализованы на архитектуре, которая обеспечивает абстрактный доступ к свойствам элемента оболочки. Эта абстракция называется системой свойств Shell.
- Что такое схема описания свойств?
- Почему использовать схему?
- Что такое основные части схемы?
- изменения для Windows 7
- Сопутствующие темы
Что такое схема описания свойств?
Подсистема схемы состоит из следующих элементов:
- Один или несколько файлов схемы propdesc, определяющих описания свойств. Схема описания свойства определяется в коллекции XML-файлов схемы (с помощью расширения файла propdesc) во время выполнения в системе. Эти файлы загружаются по требованию, когда это необходимо для компонентов системы свойств.
- Кэш схемы в памяти, используемый для хранения проанализированных файлов схемы, в которые включены все описания свойств, представленных в подсистеме. Нет необходимости повторно использовать файлы конфигурации .propdesc, описывающие схему. Дополнительные сведения см. в разделе PSRegisterPropertySchema, PSUnregisterPropertySchemaи PSRefreshPropertySchema.
- Объект подсистемы, реализующий IPropertySystem, который используется для получения или работы с описаниями свойств.
- Объект подсистемы, реализующий IPropertyDescription, который используется для информирования и работы на основе описания свойства.
- Объект подсистемы, реализующий IPropertyDescriptionList, который используется в качестве коллекции описаний свойств.
Заметка
Необходимо добавить "xmlns=http://schemas.microsoft.com/windows/2006/propertydescription
" в корневой элемент схемы файлов ".propdesc".
Зачем использовать схему?
Свойства сами по себе не являются типобезопасными. Компонент может назначить числовое значение свойству System.Author или FILETIME метку даты и метки даты для свойства System.Music.AlbumTitle, и без каких-либо дополнительных принудительного применения или рекомендаций хранилища свойств позволят ему. Таким образом, нам нужна концепция "схематизировать" свойства, что приводит нас к схемной подсистеме.
Каковы основные части схемы?
Схема описания свойств, используемая системой свойств Shell, состоит из одного элемента propertyDescriptionList, а также атрибута schemaVersion, который указывает версию этого формата определения схемы. Примечание: значение должно быть "1.0".
<!-- schema -->
<xs:element name="schema">
<xs:complexType>
<xs:sequence>
<xs:element ref="propertyDescriptionList" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="schemaVersion" type="xs:string"/>
</xs:complexType>
</xs:element>
Перечень описания свойств состоит из одного или нескольких элементов описания свойств , а также включает атрибуты издателя и продукта .
<!-- propertyDescriptionList -->
<xs:element name="propertyDescriptionList">
<xs:complexType>
<xs:sequence>
<xs:element ref="propertyDescription" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="publisher" type="xs:string"/>
<xs:attribute name="product" type="xs:string"/>
</xs:complexType>
</xs:element>
описание свойства состоит из одного searchInfo и нуля или одного элемента labelInfo, typeInfoи displayInfo, а также из атрибутов formatID, propID, propstrи name.
В системе должен быть один элемент propertyDescription для каждого уникального канонического имени свойства, которое должно присутствовать в системе. Атрибуты строки имеют ограничение в 512 символов. Значения длиннее 512 символов усечены.
<!-- propertyDescription -->
<xs:element name="propertyDescription">
<xs:complexType>
<xs:all>
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element ref="searchInfo" minOccurs="1" maxOccurs="1"/>
<xs:element ref="labelInfo" minOccurs="0" maxOccurs="1"/>
<xs:element ref="typeInfo" minOccurs="0" maxOccurs="1"/>
<xs:element ref="displayInfo" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="formatID" type="upcase-uuid" use="required""/>
<xs:attribute name="propID" type="xs:nonNegativeInteger" use="required""/>
<xs:attribute name="name" type="canonical-name" use="required"/>
</xs:complexType>
</xs:element>
Изменения для Windows 7
Схема описания свойства была изменена для Windows 7. Это не критические изменения. Если элемент или атрибут свойства больше не поддерживается в Windows 7, операционная система Windows 7 игнорирует элемент или атрибуты Windows Vista. Аналогичным образом Windows Vista игнорирует новые элементы или атрибуты свойств Windows 7.
Однако обновление пользовательских свойств для Windows 7 рекомендуется для лучшего и более согласованного взаимодействия с пользователем.
Ниже приведены новые элементы и атрибуты:
- связанных элементов PropertyInfo и связанных свойств элементов
- изображение элемент
- Атрибут mnemonics элемента searchInfo
- Атрибут mnemonics элемента перечисления
- атрибут searchRawValue элемента typeInfo
Изменены следующие элементы и атрибуты:
- перечисленные элементы ,, ,и диапазона.
- drawControl элемент
- элемент editControl
- Атрибут propID элемента propertyDescription
- Атрибут columnIndexType элемента searchInfo
Были удалены следующие элементы и атрибуты:
- queryControl элемент
- Атрибут isQueryable элемента typeInfo
- атрибут includeInFullTextQuery элемента typeInfo
Связанные разделы