Esquema de punto de extensión

Las ampliaciones son el mecanismo fundamental que utiliza un conector para añadir funciones nuevas a la plataforma. Las ampliaciones no pueden crearse arbitrariamente.  Se declaran utilizando una especificación claramente definida por un punto de extensión.

Cada ampliación debe ajustarse a la especificación del punto de extensión que está ampliando.  Cada punto de extensión define atributos y valores previstos que debe declarar la ampliación.  Esta información la mantiene el registro de conectores de la plataforma.  Los proveedores de puntos de extensión consultan estos valores en el registro, de forma que es importante garantizar que el conector proporciona la información prevista.

En su formato más rudimentario, la declaración de un punto de extensión es muy sencilla.  Define el id y el nombre del punto de extensión.  Cualquier otra información prevista por el punto de extensión es específica de ese punto de extensión y se documenta en cualquier otro sitio.  (Consulte el apartado Referencia de los puntos de extensión de la plataforma para conocer las definiciones de los puntos de extensión de la plataforma).

La documentación de consulta es útil, pero no ofrece ayuda desde programa para validar la especificación de una ampliación. Esta es la razón por la que el PDE presenta un esquema de puntos de extensión que describe los puntos de extensión en un formato preparado para su proceso automatizado.

Un esquema de punto de extensión es un esquema de XML válido, tal como lo define la especificación del W3C. Sin embargo, la especificación de esquemas de XML completa es muy compleja y en buena parte innecesaria para este uso particular. Es por ello que el PDE solo utiliza un subconjunto de las funciones de los esquemas de XML.  Cada esquema de punto de extensión es un esquema de XML válido, pero el PDE no utiliza todas las funciones disponibles.

Las ventajas de los esquemas de puntos de extensión

Describir un punto de extensión utilizando el esquema de puntos de extensión de XML del PDE tiene muchas ventajas:

  1. La gramática de un punto de extensión permite expresar formalmente elementos, atributos y tipos. Esta información pueden utilizarla las herramientas para validar las ampliaciones o para ofrecer ayuda durante la creación de la ampliación.
  2. Un esquema de XML es adecuado para realizar anotaciones en la documentación, similares a Javadoc en el fuente de Java. Este mecanismo vincula un texto corto para elementos y atributos válidos con la declaración de estos elementos y atributos. Es mucho más fácil mantener sincronizada la documentación porque si se elimina un atributo también se eliminará la documentación de ese atributo.  No hay necesidad de actualizar el documento de consulta.
  3. Puede generarse documentación de consulta.  El PDE proporciona una herramienta que rastrea los cambios realizados en los esquema de puntos de extensión y actualiza la documentación de consulta dinámicamente.
  4. Pueden proporcionarse más metadatos sobre el punto de extensión para que los utilicen las herramientas que procesan el esquema.  El PDE utiliza este mecanismo para añadir información adicional sobre elementos y atributos. Por ejemplo, si un atributo se marca como "Java," el PDE puede ser de ayuda al establecer el valor de este atributo interactuando con las funciones de la plataforma de Java.

Limitaciones del soporte al esquema de XML del PDE

El PDE utiliza un pequeño subconjunto del esquema de XML.  Si se utilizara todo el conjunto de funciones del esquema de XML sería desproporcionado en este caso concreto. El subconjunto permite prácticamente una correlación de correspondencia exacta desde las DTD y los esquemas, pero sin las limitaciones de las DTD. A continuación se listan las principales limitaciones del esquema de punto de extensión del PDE:

  1. Solo se permiten declaraciones de elementos globales.
  2. Solo se permiten declaraciones de atributos locales.  No pueden declararse atributos globales.
  3. Se admiten los siguientes compositores: all, sequence, choice y group.
  4. No se admiten los tipos globales.  Los tipos deben declararse y utilizarse inmediatamente.
  5. Los atributos solo pueden ser de tipo string y boolean.
  6. Si un atributo es de tipo string, solo se admitirá la restricción de enumeration.

Si se escribe un esquema de XML utilizando estas restricciones, observará que el archivo resultante se parece muchísimo a una DTD equivalente que definiera la misma gramática. La ventaja de un esquema está en las anotaciones (tanto las de la documentación como de los metadatos). Otra ventaja es que el propio esquema de XML está escrito en XML, lo que facilita su procesado y su lectura.

La lista anterior es solo para consulta. Lo más probable es que defina un esquema de XML utilizando el editor de esquemas del PDE que ya se cuidará de generar el archivo correcto.