Informazioni sullo schema della descrizione delle proprietà

In questo argomento viene presentato lo schema della descrizione delle proprietà utilizzato dal sistema di proprietà shell.

L'introduzione di nuove funzionalità per Windows Vista e versioni successive richiedeva l'estensione del sistema di proprietà shell esistente a:

  • Supporta un sistema di descrizione delle proprietà avanzato ed estendibile che fornisce informazioni sulle proprietà, tra cui nomi visualizzati, tipo, tipo di visualizzazione, comportamento di ordinamento e gruppo e altri attributi necessari per presentare e operare sulle proprietà.
  • Supporta un elenco azionario di tipi di proprietà (combinato con l'interfaccia utente che può modificare tali tipi in visualizzazioni diverse, ad esempio listview, riquadro di anteprima, finestre di dialogo delle proprietà e così via) che possono essere associati a varie proprietà.
  • Specificare gli elenchi di descrizioni delle proprietà, che definiscono il set di proprietà visualizzate in varie visualizzazioni.
  • Fornire un'interfaccia semplificata, IPropertyStore, in modo che i gestori di proprietà possano essere scritti più facilmente e quindi le proprietà possano essere rese persistenti nei file.
  • Supporto per i gestori di proprietà non file per esporre le proprietà nella visualizzazione.

Queste funzionalità vengono ottenute su un'architettura che fornisce l'accesso astratto alle proprietà di un elemento shell. Questa astrazione viene chiamata sistema di proprietà shell.

Che cos'è lo schema della descrizione della proprietà?

Il sottosistema dello schema è costituito dai seguenti elementi:

  • Uno o più file di schema propdesc che definiscono le descrizioni delle proprietà. Lo schema della descrizione della proprietà viene definito in una raccolta di file XML Schema (usando l'estensione di file propdesc) in fase di esecuzione nel sistema. Questi file vengono caricati lazy quando una parte del sistema di proprietà li richiede.
  • Cache dello schema in memoria usata per archiviare i file di schema analizzati, che includono tutte le descrizioni delle proprietà introdotte nel sottosistema. Non è necessario analizzare nuovamente i file di configurazione propdesc che descrivono lo schema. Per altre informazioni, vedere PSRegisterPropertySchema, PSUnregisterPropertySchema e PSRefreshPropertySchema.
  • Oggetto sottosistema che implementa IPropertySystem, che viene utilizzato per ottenere o utilizzare le descrizioni delle proprietà.
  • Oggetto sottosistema che implementa IPropertyDescription, che viene utilizzato per informare e operare in base a una descrizione della proprietà.
  • Oggetto sottosistema che implementa IPropertyDescriptionList, che viene utilizzato come raccolta di descrizioni delle proprietà.

Nota

È necessario aggiungere xmlns=http://schemas.microsoft.com/windows/2006/propertydescription all'elemento dello schema radice dei file con estensione propdesc.

 

Perché usare uno schema?

Le proprietà, da soli, non sono indipendenti dai tipi. Un componente può assegnare un valore numerico alla proprietà System.Author o un indicatore di data FILETIME alla proprietà System.Music.AlbumTitle e, senza ulteriori imposizione o indicazioni, gli archivi di proprietà lo consentiranno. Quindi, è necessaria una nozione per "schematizzare" le proprietà, che ci porta al sottosistema dello schema.

Quali sono le parti principali dello schema?

Lo schema della descrizione della proprietà utilizzato dal sistema di proprietà Shell è costituito da un singolo elemento propertyDescriptionList , nonché da un attributo schemaVersion , che indica la versione di questo formato di definizione dello schema. Nota: il valore deve essere "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 è costituito da uno o più elementi propertyDescription, nonché da attributi publisher e 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>

Una proprietàDescription è costituita da un elemento searchInfo e zero o uno labelInfo, typeInfo e displayInfo , nonché da attributi formatID, propID, propstr e name .

Deve essere presente un elemento propertyDescription per ogni nome di proprietà canonico univoco che deve essere disponibile nel sistema. Gli attributi stringa hanno un limite di 512 caratteri. I valori più lunghi di 512 caratteri vengono troncati.

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

Modifiche per Windows 7

Lo schema della descrizione della proprietà è stato modificato per Windows 7. Si tratta di modifiche che non causano interruzioni. Se un elemento o un attributo di proprietà non è più supportato in Windows 7, il sistema operativo Windows 7 ignora l'elemento o gli attributi di Windows Vista. Analogamente, Windows Vista ignora anche i nuovi elementi o attributi delle proprietà di Windows 7.

Tuttavia, l'aggiornamento delle proprietà personalizzate per Windows 7 è consigliato per un'esperienza utente migliore e più coerente.

Di seguito sono riportati nuovi elementi e attributi:

Sono stati modificati gli elementi e gli attributi seguenti:

Sono stati rimossi gli elementi e gli attributi seguenti:

propertyDescription

searchInfo

labelInfo

Typeinfo

displayInfo

Stringformat

booleanFormat

numberFormat

Datetimeformat

enumeratedList

drawControl

editControl

filterControl

queryControl

image