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


Общие сведения о схеме описания свойств

В этом разделе представлена схема описания свойств, используемая системой свойств Shell.

Введение новых функций Для Windows Vista и более поздних версий требует расширения существующей системы свойств Shell:

  • Поддержка расширенной и расширяемой системы описания свойств, которая предоставляет сведения о свойствах, включая отображаемые имена, тип, тип отображения, поведение сортировки и группы, а также другие атрибуты, необходимые для представления и управления свойствами.
  • Поддерживает список типов свойств (в сочетании с пользовательским интерфейсом, которые могут изменять эти типы в различных представлениях, таких как представление списка, панель предварительного просмотра, диалоги свойств и т. д.), которые могут быть связаны с различными свойствами.
  • Укажите списки описания свойств, определяющие набор свойств, отображаемых в различных представлениях.
  • Предоставьте упрощенный интерфейс, IPropertyStore, чтобы обработчики свойств могли быть написаны проще и поэтому свойства можно сохранять в файлах.
  • Поддержка обработчиков свойств, отличных от файлов, для предоставления свойств в представлении.

Эти функции реализованы на архитектуре, которая обеспечивает абстрактный доступ к свойствам элемента оболочки. Эта абстракция называется системой свойств Shell.

Что такое схема описания свойств?

Подсистема схемы состоит из следующих элементов:

  • Один или несколько файлов схемы 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 рекомендуется для лучшего и более согласованного взаимодействия с пользователем.

Ниже приведены новые элементы и атрибуты:

Изменены следующие элементы и атрибуты:

Были удалены следующие элементы и атрибуты:

  • queryControl элемент
  • Атрибут isQueryable элемента typeInfo
  • атрибут includeInFullTextQuery элемента typeInfo

propertyDescription

searchInfo

labelInfo

typeInfo

показатьИнформацию

формат строки

booleanFormat

формат числа

dateTimeFormat

перечисленныйСписок

drawControl

редактирование управления

filterControl

queryControl

изображения