Esquema de Ponto de Extensão

Extensões são o mecanismo-chave que um plug-in utiliza para incluir novos recursos à plataforma. As extensões não podem ser criadas arbitrariamente.  Elas são declaradas utilizando uma especificação definida por um ponto de extensão.

Cada extensão deve estar em conformidade com a especificação do ponto de extensão que está estendendo  Cada ponto de extensão define atributos e valores esperados que devem estar declarados por uma extensão.  Essas informações são mantidas no registro de plug-in da plataforma.  Os fornecedores do ponto de extensão consultam esses valores a partir do registro, por isso é importante garantir que o plug-in tenha fornecido as informações esperadas.

Na mais rudimentar da formas, uma declaração de ponto de extensão é muito simples.  Ela define o id e o nome do ponto de extensão.  Qualquer outra informação esperada pelo ponto de extensão é específica àquele ponto de extensão e é documentada em qualquer outro lugar.  (Consulte aReferência do Ponto de Extensão da Plataforma para obter as definições do ponto de extensão da plataforma.)

A documentação de referência é útil, mas não ativa qualquer ajuda programática para validar a especificação de uma extensão. Por essa razão, o PDE apresenta um esquema de ponto de extensão que descreve os pontos de extensão em um formato que corresponde ao processamento automático.

O esquema do ponto de extensão é um esquema XML válido como definido pela especificação W3C. Entretanto, a especificação do esquema XML completo é muito complexa e, na maioria das vezes, desnecessária para essa utilização em particular. Por essa razão, o PDE utiliza somente um subconjunto de recursos do esquema XML.  Cada esquema de ponto de extensão é um esquema XML válido, mas o PDE não utiliza todos os recursos disponíveis.

Os benefícios dos esquemas de ponto de extensão

Há vários benefícios para descrever o ponto de extensão utilizando o esquema XML do ponto de extensão do PDE:

  1. A gramática do ponto de extensão permite elementos, atributos e tipos a serem expressados formalmente. Essas informações podem ser utilizadas por ferramentas para validar extensões ou oferecer assistência durante a criação da extensão.
  2. O esquema XML fornece anotação para documentação que é similar ao Javadoc na origem Java. Esse mecanismo vincula texto curto para elementos e atributos válidos para a declaração desses elementos e atributos. É muito mais fácil manter a documentação em sincronia, porque a remoção de um atributo também removerá a documentação para o atributo.  Não há necessidade de atualizar o documento de referência.
  3. A documentação de referência pode ser gerada.  O PDE fornece uma ferramenta que rastreia alterações nos esquemas do ponto de extensão e atualiza a documentação de referência na movimentação pelo ar.
  4. É possível fornecer metadados adicionais sobre ponto de extensão que podem ser utilizados pelas ferramentas que processam o esquema.  O PDE utiliza esse mecanismo para incluir informações adicionais sobre elementos e atributos. Por exemplo, se um atributo for marcado como "Java," o PDE pode fornecer assistência enquanto define o valor desse atributo interagindo com os recursos da plataforma Java.

Limitações do suporte ao esquema XML do PDE

O PDE utiliza um subconjunto pequeno de esquema XML.  Utilizando o conjunto dos recursos do esquema XML completo seria uma grande destruição nesse caso. O subconjunto permite quase mapeamento 1->1 dos DTDs para os esquemas, mas sem limitações de DTD. A seguir estão as limitações principais do esquema do ponto de extensão PDE:

  1. Somente declarações de elemento global são permitidas.
  2. Somente declarações de atributo local são permitidas.  Os atributos locais não podem ser declarados.
  3. Os seguintes compositores são suportados: todos, seqüência, escolha e grupo.
  4. Não há suporte para o tipo global.  Os tipos devem ser declarados e imediatamente utilizados.
  5. Os atributos podem somente ter tipos cadeia e boleano.
  6. Se um atributo for do tipo cadeia, somente a restrição enumeração é suportada.

Se você gravar um esquema XML utilizando essas restrições, você observará que o arquivo de resultado parece muito com um DTD equivalente que define a mesma gramática. A vantagem do esquema está nas anotações (da documentação e metadados). Uma vantagem adicional é que o esquema XML é gravado por ele mesmo em XML, que faz com que seu processamento e leitura seja muito mais fácil.

A lista acima é somente para referência. Você é muito mais capaz de definir um esquema XML utilizando o editor de esquema PDE que cuidará da geração do arquivo correto.