Общие сведения о схеме описания свойства
В этом разделе представлена схема описания свойства, используемая системой свойств оболочки.
Введение новых функций для Windows Vista и более поздних версий потребовало расширения существующей системы свойств оболочки до:
- Поддержка расширенной и расширяемой системы описания свойств, которая предоставляет сведения о свойствах, включая отображаемые имена, тип, тип отображения, поведение сортировки и группирования, а также другие атрибуты, необходимые для представления свойств и управления ими.
- Поддержка списка типов свойств (в сочетании с пользовательским интерфейсом, которые могут изменять эти типы в различных представлениях, таких как представление списка, область предварительного просмотра, диалоговые окна свойств и т. д.), которые могут быть связаны с различными свойствами.
- Предоставьте списки описания свойств, которые определяют набор свойств, отображаемых в различных представлениях.
- Предоставьте упрощенный интерфейс IPropertyStore, чтобы упростить запись обработчиков свойств и сохранение свойств в файлах.
- Поддержка обработчиков свойств, не относящихся к файлам, для предоставления свойств в представлении.
Эти функции реализованы в архитектуре, которая предоставляет абстрактный доступ к свойствам элемента оболочки. Эта абстракция называется системой свойств оболочки.
- Что такое схема описания свойства?
- Зачем использовать схему?
- Что такое основные части схемы?
- Изменения для 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, и без каких-либо дальнейших указаний хранилища свойств разрешат это. Таким образом, нам нужно было понятие "схематизировать" свойства, что приводит нас к подсистеме схемы.
Что такое основные части схемы?
Схема описания свойства, используемая системой свойств оболочки, состоит из одного элемента 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 состоит из одного или нескольких элементов propertyDescription, а также атрибутов издателя и продукта.
<!-- 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>
Описание propertyDescription состоит из одного элемента 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.
Ниже приведены новые элементы и атрибуты.
- элементы relatedPropertyInfo и relatedProperty
- элемент image
- Атрибут mnemonics элемента searchInfo
- Атрибут mnemonics элемента enum
- Атрибут searchRawValue элемента typeInfo
Следующие элементы и атрибуты были изменены:
- элементы enumeratedList, enum и enumRange
- Элемент drawControl
- Элемент editControl
- Атрибут propID элемента propertyDescription
- Атрибут columnIndexType элемента searchInfo
Следующие элементы и атрибуты были удалены:
- элемент queryControl
- Атрибут isQueryable элемента typeInfo
- Атрибут includeInFullTextQuery элемента typeInfo
Связанные темы