Comparación del manifiesto XML con el manifiesto unificado para Microsoft 365

Este artículo está pensado para ayudar a los lectores que están familiarizados con el manifiesto XML a comprender el manifiesto unificado mediante la comparación de los dos. Los lectores también deben ver complementos de Office con el manifiesto unificado para Microsoft 365 (versión preliminar).

Nota:

El manifiesto unificado es una característica de versión preliminar de los complementos de Office y solo se admite para Outlook en Windows.

Esquemas y puntos generales

Solo hay un esquema para el manifiesto unificado de vista previa, a diferencia del manifiesto XML actual, que tiene un total de siete esquemas.

Asignación conceptual de los manifiestos XML unificados y actuales de vista previa

En esta sección se describe el manifiesto unificado de vista previa para los lectores que están familiarizados con el manifiesto XML actual. Algunos puntos a tener en cuenta:

  • El manifiesto unificado tiene formato JSON.

  • JSON no distingue entre el atributo y el valor de elemento, como hace XML. Normalmente, el JSON que se asigna a un elemento XML convierte tanto el valor del elemento como cada uno de los atributos en una propiedad secundaria. En el ejemplo siguiente se muestra algún marcado XML y su equivalente JSON.

    <MyThing color="blue">Some text</MyThing>
    
    "myThing" : {
        "color": "blue",
        "text": "Some text"
    }
    
  • Hay muchos lugares en el manifiesto XML actual donde un elemento con un nombre en plural tiene elementos secundarios con la versión en singular del mismo nombre. Por ejemplo, el marcado para configurar un menú personalizado incluye un <elemento Items> que puede tener varios <elementos secundarios Item> . El equivalente JSON de estos elementos plurales es una propiedad con una matriz como su valor. Los miembros de la matriz son objetos anónimos, no propiedades denominadas “item” o “item1”, “item2”, etc. A continuación se muestra un ejemplo.

    "items": [
        {
            -- markup for a menu item is here --
        },
        {
            -- markup for another menu item is here --
        }
    ]
    

Estructura de nivel superior

El nivel raíz del manifiesto unificado de vista previa, que corresponde aproximadamente al <elemento OfficeApp> del manifiesto XML actual, es un objeto anónimo.

Los elementos secundarios de <OfficeApp> se dividen normalmente en dos categorías nocionales. El <elemento VersionOverrides> es una categoría. El otro consta de todos los demás elementos secundarios de <OfficeApp>, a los que se hace referencia colectivamente como manifiesto base. Por lo tanto, el manifiesto unificado de versión preliminar también tiene una división similar. Hay una propiedad "extensiones" de nivel superior que corresponde aproximadamente en sus propósitos y propiedades secundarias al <elemento VersionOverrides> . El manifiesto unificado de versión preliminar también tiene más de 10 propiedades de nivel superior que sirven colectivamente a los mismos propósitos que el manifiesto base del manifiesto XML. Estas otras propiedades se pueden considerar colectivamente como el manifiesto base del manifiesto unificado.

Manifiesto base

Las propiedades de manifiesto base especifican características del complemento que se espera que tenga cualquier tipo de extensión de Microsoft 365. Esto incluye pestañas y extensiones de mensajes de Teams, no solo complementos de Office. Estas características incluyen un nombre público y un identificador único. En la tabla siguiente se muestra una asignación de algunas propiedades críticas de nivel superior del manifiesto unificado de vista previa a los elementos XML del manifiesto actual, donde el principio de asignación es el propósito del marcado.

Propiedad JSON Objetivo Elementos XML Comentarios
“$schema” Identifica el esquema del manifiesto. atributos de <OfficeApp> y <VersionOverrides> Ninguno.
“id” GUID del complemento. <Id> Ninguno.
“version” La versión del complemento. <Versión> Ninguno.
“manifestVersion” Versión del esquema del manifiesto. atributos de <OfficeApp> Ninguno.
“name” Nombre público del complemento. <DisplayName> Ninguno.
“description” Descripción pública del complemento. <Descripción> Ninguno.
“accentColor” Ninguno. Ninguno. Esta propiedad no tiene ningún equivalente en el manifiesto XML actual y no se usa en la vista previa del manifiesto unificado. Pero debe estar presente.
"developer" Identifica al desarrollador del complemento. <ProviderName> Ninguno.
“localizationInfo” Configura la configuración regional predeterminada y otras configuraciones regionales admitidas. <DefaultLocale> e <Override> Ninguno.
“webApplicationInfo” Identifica la aplicación web del complemento como se conoce en Azure Active Directory. <WebApplicationInfo> En el manifiesto XML actual, el <elemento WebApplicationInfo> está dentro de< VersionOverrides>, no del manifiesto base.
“authorization” Identifica los permisos de Microsoft Graph que necesita el complemento. <WebApplicationInfo> En el manifiesto XML actual, el <elemento WebApplicationInfo> está dentro de< VersionOverrides>, no del manifiesto base.

Los <elementos Hosts>, <Requirements> y <ExtendedOverrides> forman parte del manifiesto base del manifiesto XML actual. Sin embargo, los conceptos y los propósitos asociados a estos elementos se configuran dentro de la propiedad "extensiones" del manifiesto unificado de vista previa.

Propiedad "extensiones"

La propiedad "extensiones" del manifiesto unificado de versión preliminar representa principalmente las características del complemento que no serían pertinentes para otros tipos de extensiones de Microsoft 365. Por ejemplo, las aplicaciones de Office que extiende el complemento (como Excel, PowerPoint, Word y Outlook) se especifican dentro de la propiedad "extensiones", al igual que las personalizaciones de la cinta de opciones de la aplicación de Office. Los propósitos de configuración de la propiedad "extensiones" coinciden estrechamente con los <del elemento VersionOverrides> del manifiesto XML actual.

Nota:

La <sección VersionOverrides> del manifiesto XML actual tiene un sistema de "salto doble" para muchos recursos de cadena. Las cadenas, incluidas las direcciones URL, se especifican y se les asigna un identificador en el <elemento secundario Resources> de <VersionOverrides>. Los elementos que requieren una cadena tienen un resid atributo que coincide con el identificador de una cadena en el <elemento Resources> . La propiedad "extensiones" del manifiesto unificado de vista previa simplifica las cosas mediante la definición de cadenas directamente como valores de propiedad. No hay nada en el manifiesto unificado que sea equivalente al <elemento Resources> .

En la tabla siguiente se muestra una asignación de algunas propiedades secundarias de alto nivel de la propiedad "extensiones" del manifiesto unificado de vista previa a los elementos XML del manifiesto actual. La notación de puntos se usa para hacer referencia a las propiedades secundarias.

Propiedad JSON Objetivo Elementos XML Comentarios
“requirements.capabilities” Identifica los conjuntos de requisitos que debe instalar el complemento. que el complemento debe ser instalable. <Requisitos> y <conjuntos> Ninguno.
“requirements.scopes” Identifica las aplicaciones Office en las que se puede instalar el complemento. <Hosts> Ninguno.
“cintas de opciones” Las cintas de opciones que personaliza el complemento. <Hosts>, ExtensionPoints y varios elementos *FormFactor La propiedad “ribbons” es una matriz de objetos anónimos que combinan los propósitos de estos tres elementos. Consulte la tabla de “cintas de opciones”.
“alternatives” Especifica la compatibilidad con versiones anteriores con un complemento COM equivalente, XLL o ambos. <EquivalentAddins> Consulte EquivalentAddins: consulte también para obtener información general.
“runtimes” Configura los tiempos de ejecución incrustados que usa el complemento, incluidos varios tipos de complementos que tienen poca o ninguna interfaz de usuario, como complementos personalizados de solo función y comandos de función. <Tiempos de ejecución>. <FunctionFile> y <ExtensionPoint> (de tipo CustomFunctions) Ninguno.
“autoRunEvents” Este punto de extensión agrega un controlador de eventos para un evento especificado. <ExtensionPoint> (de tipo LaunchEvent) Ninguno.

Tabla de “cintas de opciones”

En la tabla siguiente se asignan las propiedades secundarias de los objetos secundarios anónimos de la matriz “ribbons” a los elementos XML del manifiesto actual.

Propiedad JSON Objetivo Elementos XML Comentarios
“contexta” Especifica las superficies de comandos que personaliza el complemento. varios elementos *CommandSurface , como PrimaryCommandSurface y MessageReadCommandSurface Ninguno.
“tabs” Configura pestañas personalizadas de la cinta de opciones. <CustomTab> Los nombres y la jerarquía de las propiedades descendientes de "pestañas" coinciden estrechamente con los descendientes de <CustomTab>.

Para obtener un manifiesto unificado de ejemplo completo, consulte Ejemplo de manifiesto unificado de versión preliminar.

Pasos siguientes