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 clara 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 ser declarados por uma extensão.  Essas informações são mantidas no registro de plug-in da plataforma.  Os provedores de ponto de extensão consultam esses valores do registro, portanto é importante assegurar que o plug-in tenha fornecido as informações esperadas.

Na forma mais rudimentar, uma declaração de ponto de extensão é muito simples.  Ela define o ID e nome do ponto de extensão.  Quaisquer outras informações esperadas pelo ponto de extensão são específicas desse ponto de extensão e são documentadas em outra parte.  (Consulte a Referência de Pontos de Extensão da Plataforma para as definições de 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 apenas um subconjunto dos recursos do esquema XML.  Cada esquema do 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 sincronizada 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 monitora alterações nos esquemas de ponto de extensão e atualiza a documentação de referência no instantâneo.
  4. Você pode fornecer metadados adicionais sobre o ponto de extensão que podem ser utilizados por ferramentas que processam o esquema.  O PDE utiliza este mecanismo para adicionar outras informações 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 pequeno subconjunto do esquema XML.  Utilizar os recursos completos do esquema XML seria um excesso nesse caso específico. 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. Apenas declarações de atributos locais são permitidas.  Atributos globais 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 booleano.
  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.