확장점 스키마 편집기

확장점 스키마 편집기는 새 확장점 스키마를 작성하거나 기존 확장점 스키마를 선택하여 열 수 있습니다.  규칙에 의해 새 스키마는 .exsd 파일 확장자가 있는 확장점 ID와 동일한 이름을 갖습니다. 새 스키마는 플러그인 디렉토리 트리의 schema 디렉토리에 배치됩니다.  

PDE에서 새 확장점이 작성될 때 초기 스키마 파일도 작성되며, 스키마 편집기가 편집을 위해 열립니다. 바로 스키마를 정의하거나 닫았다가 나중에 정의할 수 있습니다. 전체 확장점 스키마를 작성하면 PDE가 확장점 사용자에게 자동화된 지원을 제공할 수 있습니다.

PDE 스키마 편집기는 플러그인 Manifest 편집기와 동일한 개념을 기반으로 합니다.  PDE 스키마 편집기에는 두 개의 양식 페이지와 하나의 소스 페이지가 있습니다.  XML 스키마는 복잡하여 소스 양식으로 읽기는 어렵기 때문에 대부분 양식 페이지를 사용하여 편집해야 합니다.  소스 페이지는 결과 소스 코드를 읽는 데 유용합니다.

예: "샘플 구문 분석기" 확장점 스키마 작성

앞에서 "샘플 구문 분석기" 확장점과 초기 스키마를 작성했습니다. 프로젝트의 schema 폴더로 이동하여 parsers.exsd 파일을 두 번 클릭하면 스키마를 열 수 있습니다.  스키마 편집기가 열립니다.

다음을 수행하려고 합니다.

  1. 확장점에 올바른 XML 요소 및 속성 정의.
  2. 문법(컨텐츠 모델) 정의.
  3. 참조 문서에 병합될 문서 스니펫 제공.

모든 확장점 스키마는 "extension" 요소의 선언으로 시작합니다.  "parser"라고 부르는 새 XML 요소를 추가할 것입니다.

  1. 확장점 요소 섹션에서 새 요소 단추를 누르십시오.
  2. 특성 보기로 이동하여 이름을 "New_Element"에서 "parser"로 변경하십시오.
  3. 새 요소를 선택한 상태에서 새 속성 단추를 누르십시오. "new_attribute"가 하위로 작성됩니다. 특성 시트에서 이름을 "ID"로, 사용을 "필수"로 변경하십시오.
  4. 계속해서 특성 시트에서 로컬 도구 모음에 있는 "이 속성 복제"를 누르십시오. 속성 사본이 작성됩니다.  이렇게 하면 특성 시트에서 계속 모든 속성을 신속히 정의할 수 있으므로 유용합니다.
  5. 새 속성 이름을 "name"으로 변경하십시오.
  6. 속성을 다시 복제하십시오. 이번에는 이름을 "class"로 변경하십시오.  이 속성은 특정 Java 인터페이스를 구현하는 Java 클래스의 완전한 이름을 표현하는 데 사용됩니다. PDE가 나중에 사용할 수 있도록 이를 지정해야 합니다. 유형을 "string"에서 "java"로 변경하십시오.  basedOn 특성을 com.example.xyz.IParser로 설정하십시오(이 인터페이스는 나중에 작성될 예정임). 

지금까지의 작업을 마치면 스키마 편집기가 다음과 같이 표시됩니다.

확장점 스키마 편집기 - 정의 페이지

이제 별개의 선택사항 목록에서 값을 취하는 추가 속성을 추가할 차례입니다.  이것은 기본 문자열 유형에 대한 열거 제한사항을 작성해야 함을 의미합니다.  또한 속성 기본값도 설정하게 됩니다.

  1. "parser" 요소를 선택한 상태에서   새 속성 단추를 누르십시오. 특성 시트에서 이름을 "mode"로 변경하십시오.
  2. "제한사항" 특성의 값 셀을 클릭하여 제한사항 대화 상자를 표시하십시오. 
  3. 제한사항 유형을 "없음"에서 "열거"로 변경하십시오.
  4. 세 개의 선택사항("never," "always," "manual")을 추가하십시오. 이 선택사항은 구문분석기 확장의 세 가지 가정 모드입니다. 

제한사항 대화 상자가 다음과 같이 표시됩니다.

유형 제한 대화 상자

대화 상자가 닫히면 "use" 속성을 "default"로, "value" 속성을 "always"로 변경하십시오.  이렇게 하면 기본값이 설정됩니다.  유효한 값을 세 개의 열거 선택사항으로 제한하기 때문에 사용자가 값을 입력하는 동안 상태 표시줄에 오류 메시지가 나타납니다. 일단 입력을 완료하면 "always"가 유효한 값이므로 오류 메시지가 사라집니다.

요소와 속성을 모두 정의했으므로 문법을 정의해야 합니다. 문법을 정의하는 목적은 "extension" 요소가 임의의 수의 "parser" 요소를 하위로 가질 수 있도록 하는 것입니다. 

  1. "extension" 요소를 선택하십시오. 해당 초기 컨텐츠 모델이 빈 순서 작성기를 표시합니다.
  2. 순서 복합기를 선택하고 팝업 메뉴에서 새로 작성->참조->구문 분석기를 선택하십시오. 순서 복합기에 구문 분석기 참조가 추가됩니다.
  3. 참조의 기본 원칙은 [1,1]로 정확히 하나의 "parser" 요소만 있을 수 있음을 의미합니다. 하지만 다르게 설정하는 것이 좋습니다. "parser" 참조를 선택하고 maxOccurs를 "unbounded"로 변경하십시오.

문법을 정의하고 나면, 문법 섹션 아래의 DTD 근사값이 선택한 요소에 대한 문법이 DTD에서 어떻게 보일지를 표시합니다.  이 정보는 XML 스키마보다 DTD에 익숙한 개발자들을 위해 제공됩니다.

확장점 스키마 편집기 - 요소 문법

올바른 요소, 속성, 문법을 정의했으므로 확장점에 대한 일부 정보를 제공해야 합니다. 두 가지 유형의 스키마 문서 스니펫이 있습니다.

첫 번째 스니펫 유형은 스키마 Manifest의 정의 페이지에 제공됩니다. 요소와 속성을 선택할 때 이에 대한 축약형 텍스트를 "설명" 섹션에 추가할 수 있습니다. 예상되는 양식은 원시 HTML(Javadoc의 경우처럼)이며, 텍스트는 있는 그대로 최종 참조 문서에 복사됩니다.

  1. "구문 분석기" 요소의 "id" 속성을 선택하고 설명 편집기에서 다음을 입력하십시오.
    이 구문 분석기를 참조하는 데 사용될 고유 이름.
  2. "name" 속성을 선택하고 다음 텍스트를 추가하십시오.
    이 구문 분석기를 UI로 표시하는 데 사용될 변환 가능한 이름.
  3. "class" 속성을 선택하고 다음 텍스트를 추가하십시오(HTML 태그 참고).
    <samp>com.example.xyz.IParser</samp> 인터페이스를 구현하는 Java 클래스의 완전한 이름.
  4. "mode" 속성을 선택하고 다음을 추가하십시오.
    이 구문 분석기 인스턴스가 실행될 빈도를 표시하는 선택적 플래그(기본값은 <samp>always</samp>).

이제 확장점 자체에 대한 축약형 텍스트 설명을 제공해야 합니다. 설명을 제공하기 위해 문서 페이지로 전환합니다.

  1. 이제 "개요" 탭이 표시됩니다. 텍스트 편집기에서 다음 텍스트를 추가하십시오.

    이 확장점은 추가 구문 분석기를 플러그인하는 데 사용됩니다. 구문 분석기는 실제로 작동하지 않습니다. 구문 분석기를 확장점 스키마의 예로 방금 사용했습니다.

    적용을 누르십시오.
  2. "예제" 탭을 누르고 다음 텍스트를 추가하십시오.

    다음은 확장점 사용법의 예입니다.

          <p>
       <pre>
          <extension point="com.example.xyz.parsers">
          <parser
             id="com.example.xyz.parser1"
             name="Sample Parser 1"
             class="com.example.xyz.SampleParser1">
          </parser>
       </extension>
       </pre>
       </p>
    

    적용을 누르십시오.

  3. "API 정보" 탭을 선택하고 다음 텍스트를 추가하십시오.

    이 확장점을 확장하려는 플러그인은 <samp>com.example.xyz.IParser</samp> 인터페이스를 구현해야 합니다.

    적용을 누르십시오.
  4. "기본 제공 구현" 탭을 선택하고 다음 텍스트를 추가하십시오.

    XYZ 플러그인은 구문 분석기 기본 구현을 제공합니다.

    적용을 누르십시오.
참고: 예를 제공할 때는 특별한 주의를 기울여야 합니다. 일반적으로 PDE는 제공된 텍스트를 원시 HTML로 취급하기 때문에 줄 바꾸기나 두 자리 이상의 공백(즉, 무시 가능한 공백)을 고려하지 않습니다. 이것은 일반 텍스트에 대해서는 상관없지만 예를 제공할 때 예를 보기 좋게 표시하기 위해 탭 표시 및 세로 맞추기를 사용할 경우에는 매우 번거롭습니다. 이런 경우 PDE는 HTML 태그 <pre>를 발견하면, 마무리 태그 </pre>가 나타날 때까지 컨텐츠를 있는 그대로(수정 없이 모든 문자를 보존하여) 표시합니다. 이런 방법으로 위와 같은 예를 제공할 수 있으며 따라서 최종 참조 문서에서도 그 예가 올바로 표시됩니다.

문서를 입력할 때 편집기 아웃라인 보기에서 점점 더 많은 요소가 "pen" 이미지 오버레이를 획득한다는 사실에 대해 인지하고 있을 수 있습니다. 이 표시기는 문제의 요소에 이와 연관된 일부 텍스트가 있음을 알려줍니다. 문서 어딘가에 문서가 누락되었는지를 신속히 확인할 수 있는 방법입니다.

확장점 스키마 편집기 아웃라인

문서를 완료했으면, 참조 문서 parsers.html을 볼 수 있습니다. 두 가지 방법으로 수행할 수 있습니다. 작업 중에 언제라도 팝업 메뉴의 참조 문서 미리보기 항목을 선택하여 참조 문서를 미리볼 수 있습니다. 또는 각 스키마 파일 변경 시 참조 문서가 자동으로 작성되도록 PDE 환경 설정(스키마 탭 아래의 환경 설정>플러그인 개발>컴파일러)을 설정할 수 있습니다. 작성 방법과 상관 없이 이러한 예제의 결과 문서는 다음과 같습니다.