Présentation du schéma de description de la propriété

Cette rubrique présente le schéma de description des propriétés utilisé par le système de propriétés Shell.

L’introduction de nouvelles fonctionnalités pour Windows Vista et versions ultérieures exigeait que le système de propriétés Shell existant soit étendu aux éléments suivants :

  • Prise en charge d’un système de description de propriétés riche et extensible qui fournit des informations sur les propriétés, notamment les noms d’affichage, le type, le type d’affichage, le comportement de tri et de groupe, ainsi que d’autres attributs nécessaires pour présenter et exploiter les propriétés.
  • Prise en charge d’une liste d’actions de types de propriétés (combinée à l’interface utilisateur qui peut modifier ces types dans différents affichages, comme l’affichage de liste, le volet d’aperçu, les boîtes de dialogue de propriétés, etc.) qui peuvent être associés à différentes propriétés.
  • Fournissez des listes de description de propriétés, qui définissent l’ensemble de propriétés affichées dans différentes vues.
  • Fournissez une interface simplifiée, IPropertyStore, afin que les gestionnaires de propriétés puissent être écrits plus facilement et que les propriétés puissent être conservées dans les fichiers.
  • Prise en charge des gestionnaires de propriétés autres que les fichiers pour exposer les propriétés dans la vue.

Ces fonctionnalités sont obtenues sur une architecture qui fournit un accès abstrait aux propriétés d’un élément Shell. Cette abstraction est appelée système de propriétés Shell.

Qu’est-ce que le schéma de description de la propriété ?

Le sous-système de schéma se compose des éléments suivants :

  • Un ou plusieurs fichiers de schéma .propdesc qui définissent des descriptions de propriétés. Le schéma de description de propriété est défini dans une collection de fichiers de schéma XML (à l’aide de l’extension de fichier .propdesc) au moment de l’exécution sur le système. Ces fichiers sont chargés de manière différée lorsqu’une partie du système de propriétés les requiert.
  • Cache de schéma en mémoire utilisé pour stocker les fichiers de schéma analysés, qui incluent toutes les descriptions de propriétés introduites dans le sous-système. Il n’est pas nécessaire d’analyser les fichiers de configuration .propdesc qui décrivent le schéma. Pour plus d’informations, consultez PSRegisterPropertySchema, PSUnregisterPropertySchema et PSRefreshPropertySchema.
  • Objet de sous-système qui implémente IPropertySystem, utilisé pour obtenir ou utiliser des descriptions de propriétés.
  • Objet de sous-système qui implémente IPropertyDescription, qui est utilisé pour informer et fonctionner en fonction d’une description de propriété.
  • Objet de sous-système qui implémente IPropertyDescriptionList, qui est utilisé comme collection de descriptions de propriétés.

Notes

Vous devez ajouter xmlns=http://schemas.microsoft.com/windows/2006/propertydescription à l’élément de schéma racine de vos fichiers .propdesc.

 

Pourquoi utiliser un schéma ?

Les propriétés, par elles-mêmes, ne sont pas de type sûr. Un composant peut affecter une valeur numérique à la propriété System.Author, ou un horodatage FILETIME à la propriété System.Music.AlbumTitle et, sans aucune autre application ou aide, les magasins de propriétés l’autorisent. Nous avions donc besoin d’une notion pour « schématiser » les propriétés, ce qui nous amène au sous-système de schéma.

Quelles sont les principales parties de schéma ?

Le schéma de description de propriété utilisé par le système de propriétés Shell est composé d’un seul élément propertyDescriptionList , ainsi que d’un attribut schemaVersion , qui indique la version de ce format de définition de schéma. Remarque : la valeur doit être « 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>

La propriétéDescriptionList est composée d’un ou plusieurs éléments propertyDescription , ainsi que d’attributs publisher et product .

<!-- 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>

Une propriétéDescription est composée d’un élément searchInfo et de zéro ou d’un élément labelInfo, typeInfo et displayInfo , ainsi que d’attributs formatID, propID, propstr et name .

Il doit y avoir un élément propertyDescription pour chaque nom de propriété canonique unique destiné à être disponible dans le système. Les attributs de chaîne ont une limite de 512 caractères. Les valeurs supérieures à 512 caractères sont tronquées.

<!-- 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>

Modifications pour Windows 7

Le schéma de description de propriété a été modifié pour Windows 7. Il s’agit de modifications non cassants. Si un élément ou un attribut de propriété n’est plus pris en charge dans Windows 7, le système d’exploitation Windows 7 ignore l’élément ou les attributs Windows Vista. De même, Windows Vista ignore également les nouveaux éléments ou attributs de propriété Windows 7.

Toutefois, la mise à jour des propriétés personnalisées pour Windows 7 est recommandée pour une expérience utilisateur meilleure et plus cohérente.

Voici les nouveaux éléments et attributs :

Les éléments et attributs suivants ont changé :

Les éléments et attributs suivants ont été supprimés :

propertyDescription

searchInfo

labelInfo

typeInfo

displayInfo

stringFormat

booleanFormat

numberFormat

dateTimeFormat

énumérationListe

drawControl

editControl

filterControl

queryControl

image