확장점 스키마

확장은 플러그인이 플랫폼에 새 기능을 추가하는 데 사용하는 핵심 메커니즘입니다. 확장을 임의로 작성할 수는 없습니다.  확장은 확장점에 의해 정의된 명료한 스펙을 사용하여 선언됩니다.

각 확장은 확장 중인 확장점의 스펙을 준수해야 합니다.  각 확장점은 확장에 의해 선언되어야 하는 속성과 예상 값을 정의합니다.  이 정보는 플랫폼 플러그인 레지스트리에 유지보수됩니다.  확장점 제공자가 레지스트리에서 이 값을 조회하므로 플러그인이 예상되는 정보를 제공했는지 확인해야 합니다.

가장 기본적인 양식에서 확장점 선언은 아주 간단합니다.  이 선언은 확장점 ID와 이름을 정의합니다.  확장점에 의해 예상되는 기타 정보는 해당 확장점에 고유하며, 다른 곳에 설명되어 있습니다. 플랫폼 확장점 정의에 대해서는 플랫폼 확장점 참조서를 참조하십시오. 

참조 문서는 유용하지만 프로그램 도움말을 사용하여 확장 스펙의 유효성을 검증하지는 못합니다. 이런 이유로 PDE는 자동화된 처리를 위해 적합한 형식으로 확장점을 설명하는 확장점 스키마를 제공합니다.

확장점 스키마는 W3C 스펙에 의해 정의된 올바른 XML 스키마입니다. 그러나 전체 XML 스키마 스펙은 아주 복잡하며, 대개 이런 특정한 사용에는 불필요합니다. 이런 이유로 PDE는 XML 스키마 기능 서브세트만 사용합니다.  각 확장점 스키마는 올바른 XML 스키마지만, PDE는 그 기능을 모두 사용하지는 않습니다.

확장점 스키마의 장점

PDE 확장점 XML 스키마를 사용하면 확장점을 보다 잘 설명할 수 있습니다 .

  1. 확장점 문법을 통해 요소, 속성, 유형을 정식으로 표현할 수 있습니다. 도구는 이 정보를 사용하여 확장의 유효성을 검증하거나 확장을 작성하는 동안 지원을 제공할 수 있습니다.
  2. XML 스키마는 Java 소스의 Javadoc와 유사한 문서 어노테이션을 제공합니다. 이 메커니즘은 올바른 요소 및 속성에 대한 축약형 텍스트를 요소 및 속성에 대한 선언에 결합합니다. 속성을 제거하면 속성에 대한 문서도 제거되므로 문서를 동기화하여 보관하는 것이 훨씬 수월합니다.  참조 문서는 갱신하지 않아도 됩니다.
  3. 참조 문서를 생성할 수 있습니다.  PDE는 확장점 스키마 변경사항을 추적하고 참조 문서를 신속하게 갱신하는 도구를 제공합니다.
  4. 스키마를 처리하는 도구가 사용할 수 있는 확장점에 대한 메타데이터를 추가로 제공할 수 있습니다.  PDE는 이 메커니즘을 사용하여 요소 및 속성에 대한 정보를 추가합니다.예를 들어, 속성이 "Java"로 표시되면 PDE는 Java 플랫폼 기능과 상호 작용하여 이 속성 값을 설정하는 동안 지원을 제공할 수 있습니다.

PDE XML 스키마 지원 제한사항

PDE는 소규모의 XML 스키마 서브세트를 사용합니다.  이와 같은 특수한 경우에 전체 XML 스키마 기능 설정을 사용할 필요는 없습니다. 서브세트는 DTD에서 스키마로 거의 일대일 맵핑을 허용하지만, DTD 제한사항은 없습니다. 다음은 PDE 확장점 스키마에 대한 주요 제한사항입니다.

  1. 글로벌 요소 선언만 허용됩니다.
  2. 로컬 속성 선언만 허용됩니다.  글로벌 속성은 선언될 수 없습니다.
  3. 지원되는 작성기는 all, sequence, choicegroup입니다.
  4. 글로벌 유형은 지원되지 않습니다.  유형은 선언되고 즉시 사용되어야 합니다.
  5. 속성은 stringboolean 유형만 가능합니다.
  6. 속성 유형이 string이면, 열거 제한사항이 지원됩니다.

이런 제한사항을 사용하여 XML 스키마를 작성해 보면, 결과 파일이 동일한 문법을 정의하는 해당 DTD와 아주 유사함을 알 수 있습니다. 스키마의 장점은 어노테이션(문서 및 메타데이터 모두)에 있습니다. 또다른 장점은 XML 스키마가 자체적으로 XML로 기록된다는 점인데, 이로 인해 처리 및 읽기가 훨씬 용이합니다.

위 목록은 참조용입니다. 올바른 파일 생성을 관리할 PDE 스키마 편집기를 사용하여 XML 스키마를 정의해야 합니다.