Descripción del esquema de descripción de propiedades

En este tema se presenta el esquema de descripción de propiedades usado por el sistema de propiedades de Shell.

La introducción de nuevas características para Windows Vista y versiones posteriores requería que el sistema de propiedades shell existente se extienda a:

  • Admite un sistema de descripción de propiedades enriquecida y extensible que proporciona información sobre las propiedades, incluidos los nombres para mostrar, el tipo, el tipo de presentación, el orden y el comportamiento de grupo, y otros atributos necesarios para presentar y operar sobre las propiedades.
  • Admite una lista de valores de tipos de propiedad (combinados con la interfaz de usuario que puede editar esos tipos en diferentes vistas, como listview, panel de vista previa, cuadros de diálogo de propiedades, etc.) que se pueden asociar a varias propiedades.
  • Proporcione listas de descripción de propiedades, que definen el conjunto de propiedades que se muestran en varias vistas.
  • Proporcione una interfaz simplificada, IPropertyStore, por lo que los controladores de propiedades se pueden escribir más fácilmente y, por lo tanto, las propiedades se pueden conservar en los archivos.
  • Compatibilidad con controladores de propiedades que no son de archivo para exponer propiedades en la vista.

Estas características se logran en una arquitectura que proporciona acceso abstracto a las propiedades de un elemento de Shell. Esta abstracción se denomina sistema de propiedades shell.

¿Qué es el esquema de descripción de propiedades?

El subsistema de esquema consta de lo siguiente:

  • Uno o varios archivos de esquema .propdesc que definen descripciones de propiedades. El esquema de descripción de la propiedad se define en una colección de archivos de esquema XML (mediante la extensión de archivo .propdesc) en tiempo de ejecución en el sistema. Estos archivos se cargan de forma diferida cuando una parte del sistema de propiedades las requiere.
  • Una caché de esquemas en memoria que se usa para almacenar los archivos de esquema analizados, que incluyen todas las descripciones de propiedades introducidas en el subsistema. No es necesario volver a analizar los archivos de configuración .propdesc que describen el esquema. Para obtener más información, vea PSRegisterPropertySchema, PSUnregisterPropertySchema y PSRefreshPropertySchema.
  • Objeto de subsistema que implementa IPropertySystem, que se usa para obtener o trabajar con descripciones de propiedades.
  • Objeto de subsistema que implementa IPropertyDescription, que se usa para informar y operar en función de una descripción de propiedad.
  • Objeto de subsistema que implementa IPropertyDescriptionList, que se usa como una colección de descripciones de propiedades.

Nota

Debe agregar xmlns=http://schemas.microsoft.com/windows/2006/propertydescription al elemento de esquema raíz de los archivos .propdesc.

 

¿Por qué usar un esquema?

Las propiedades, por sí solas, no son seguras para tipos. Un componente puede asignar un valor numérico a la propiedad System.Author o una marca de fecha FILETIME a la propiedad System.Music.AlbumTitle y, sin ninguna otra aplicación o guía, los almacenes de propiedades lo permitirán. Por lo tanto, necesitamos una noción para "esquematizar" las propiedades, que nos lleva al subsistema de esquema.

¿Cuáles son las partes principales del esquema?

El esquema de descripción de propiedad utilizado por el sistema de propiedades shell se compone de un único elemento propertyDescriptionList , así como un atributo schemaVersion , que indica la versión de este formato de definición de esquema. Nota: el valor debe ser "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 se compone de uno o varios elementos propertyDescription, así como atributos de publicador y producto.

<!-- 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 propertyDescription se compone de un elemento searchInfo y cero o uno labelInfo, typeInfo y displayInfo , así como formatID, propID, propstr y atributos name .

Debe haber un elemento propertyDescription para cada nombre de propiedad canónico único que esté destinado a estar disponible en el sistema. Los atributos de cadena tienen un límite de 512 caracteres. Los valores de más de 512 caracteres se truncan.

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

Cambios para Windows 7

El esquema de descripción de la propiedad se ha cambiado para Windows 7. Estos son cambios no importantes. Si ya no se admite un atributo o elemento de propiedad en Windows 7, el sistema operativo Windows 7 omite el elemento o los atributos de Windows Vista. Del mismo modo, Windows Vista omite también los nuevos atributos o elementos de propiedad de Windows 7.

Sin embargo, se recomienda actualizar las propiedades personalizadas para Windows 7 para obtener una experiencia de usuario mejor y más coherente.

A continuación se muestran nuevos elementos y atributos:

Los siguientes elementos y atributos han cambiado:

Se han quitado los siguientes elementos y atributos:

propertyDescription

searchInfo

labelInfo

typeInfo

displayInfo

stringFormat

booleanFormat

numberFormat

dateTimeFormat

enumeratedList

drawControl

editControl

filterControl

queryControl

image