JavaTM Platform
Standard Ed. 6

org.xml.sax.ext
인터페이스 LexicalHandler

기존의 서브 인터페이스의 일람:
TransformerHandler
기존의 구현 클래스의 일람:
DefaultHandler2


public interface LexicalHandler

자구 이벤트를 위한 SAX2 확장 핸들러입니다.

이 모듈은, 원시 코드, 문서 모두 공개 도메인에 놓여져 있습니다. 따라서, 내용에 관한보증은 일절 제공되지 않습니다. 상세한 것에 대하여는,http://www.saxproject.org 를 참조해 주세요.

코멘트나 CDATA 섹션의 경계라고 하는 XML 문서에 관한 자구상의 정보를 제공하는, SAX2 용의 옵션 확장 핸들러입니다. 이 핸들러를 인식하기 위해서, XML 리더는 불필요합니다. 또, 이 핸들러는, SAX2 의 코어만의 디스트리뷰션에는 포함되어 있지 않습니다.

자구 핸들러내의 이벤트는, 문서내의 개개의 요소 뿐만이 아니라 문서 전체에 적용됩니다. 모든 자구 핸들러 이벤트는, 컨텐츠 핸들러의 startDocument 이벤트로부터 endDocument 이벤트까지의 사이에 발생합니다.

LexicalHandler 를 XML 리더로 설정하려면 , 프로퍼티명 http://xml.org/sax/properties/lexical-handler 를 지정해 setProperty 메소드와 값으로 해서 이 인터페이스 (또는 null)를 구현하는 객체를 사용합니다. 리더가 자구 이벤트를 보고하지 않는 경우, 핸들러를 등록하려고 하면(자),SAXNotRecognizedException 가 throw 됩니다.

도입된 버젼:
SAX 2.0 (extensions 1.0)

메소드의 개요
 void comment (char[] ch, int start, int length)
          문서내의 임의의 위치에 있는 XML 코멘트를 보고합니다.
 void endCDATA ()
          CDATA 섹션의 마지막을 보고합니다.
 void endDTD ()
          DTD 선언의 마지막을 보고합니다.
 void endEntity (String  name)
          엔티티의 마지막을 보고합니다.
 void startCDATA ()
          CDATA 섹션의 개시를 보고합니다.
 void startDTD (String  name, String  publicId, String  systemId)
          DTD 선언이 있는 경우, 그 개시를 보고합니다.
 void startEntity (String  name)
          내부 및 외부의 XML 엔티티의 일부의 개시를 보고합니다.
 

메소드의 상세

startDTD

void startDTD(String  name,
              String  publicId,
              String  systemId)
              throws SAXException 
DTD 선언이 있는 경우, 그 개시를 보고합니다.

이 메소드는, DOCTYPE 선언의 개시를 보고하는 메소드입니다. 문서에 DOCTYPE 선언이 포함되지 않은 경우는 불려 가지 않습니다.

DTDHandler 또는 DeclHandler 이벤트를 개입시켜 보고되는 모든 선언은, startDTD 이벤트로부터 endDTD 이벤트까지의 사이에 출현하게 되어 있습니다. 선언은,startEntity 이벤트로부터 endEntity 이벤트까지의 사이에 출현하지 않으면 내부 DTD 부분집합에 소속하는 것이라고 보여집니다. DTD 의 코멘트 및 처리 명령도, startDTD 이벤트로부터 endDTD 이벤트까지의 사이에, 원의 (논리적인) 발생순서로 보고되게 되어 있습니다. 다만, DTDHandler 이벤트나 DeclHandler 이벤트에 대한 정확한 상대 위치에 출현할 필요는 없습니다.

start/endDTD 이벤트는, ContentHandler 의 start/endDocument 이벤트내의 최초의 startElement 이벤트의 전에 출현합니다.

파라미터:
name - 문서형명
publicId - 선언된 외부 DTD 부분집합의 공개 식별자. 선언되어 있지 않은 경우는 null
systemId - 선언된 외부 DTD 부분집합의 시스템 식별자. 선언되어 있지 않은 경우는 null. 문서의 베이스 URI 에 대해서는 해결되지 않는 것에 주의하는 것
예외:
SAXException - 어플리케이션이 예외를 생성한다 일이 있는
관련 항목:
endDTD() , startEntity(java.lang.String)

endDTD

void endDTD()
            throws SAXException 
DTD 선언의 마지막을 보고합니다.

이 메소드는, DOCTYPE 선언의 마지막을 보고하는 메소드입니다. 문서에 DOCTYPE 선언이 포함되지 않은 경우는 불려 가지 않습니다.

예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
startDTD(java.lang.String, java.lang.String, java.lang.String)

startEntity

void startEntity(String  name)
                 throws SAXException 
내부 및 외부의 XML 엔티티의 일부의 개시를 보고합니다.

파라메이타엔티티 (외부 DTD 부분집합을 포함한다)의 보고 기능은 옵션입니다. LexicalHandler 이벤트를 보고하는 SAX2 의 드라이버 속에는, 이 기능을 구현하지 않는 것도 있습니다. http://xml.org/sax/features/lexical-handler/parameter-entities 기능을 사용해, 파라메이타엔티티의 보고를 조회 또는 제어할 수가 있습니다.

일반적인 엔티티는, 정규명으로 보고됩니다. 파라메이타엔티티명의 전에는 「%」를 붙일 수 있고 있습니다. 외부 DTD 부분집합은 「[dtd]」라고 하는 의사 엔티티명을 가지고 있습니다.

SAX2 드라이버가 이러한 이벤트를 제공하고 있을 때는, 그 외의 모든 이벤트를 start/end 엔티티이벤트내에 올바르게 상자로 할 필요가 있습니다. DeclHandler 또는 DTDHandler 의 이벤트를 올바른 순서로 나란해질 수 있을 필요는 없습니다.

스킵 된 엔티티는, ContentHandler 인터페이스의 일부인 skippedEntity 이벤트를 개입시켜 보고됩니다.

SAX 가 채용하고 있는 스트리밍 이벤트 모델의 제약에 의해, 이하의 상황에서는 일부의 엔티티 경계를 보고할 수가 없습니다.

이것들은 통지 없게 확장됩니다. 원의 엔티티 경계의 위치는 나타나지 않습니다.

문자 참조의 경계 (실제로는 엔티티는 아니다)도 보고되지 않는 점에 주의해 주세요.

모든 start/endEntity 이벤트를 올바르게 상자로 할 필요가 있습니다.

파라미터:
name - 엔티티의 이름. 파라메이타엔티티의 경우, 이 이름은 「%」로 시작된다. 외부 DTD 부분집합의 경우, 「[dtd]」로 시작된다
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
endEntity(java.lang.String) , DeclHandler.internalEntityDecl(java.lang.String, java.lang.String) , DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)

endEntity

void endEntity(String  name)
               throws SAXException 
엔티티의 마지막을 보고합니다.

파라미터:
name - 종료하는 엔티티의 이름
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
startEntity(java.lang.String)

startCDATA

void startCDATA()
                throws SAXException 
CDATA 섹션의 개시를 보고합니다.

CDATA 섹션의 컨텐츠는, 정규의 characters 이벤트를 개입시켜 보고됩니다. 이 이벤트는 경계의 보고인 만큼 사용됩니다.

예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
endCDATA()

endCDATA

void endCDATA()
              throws SAXException 
CDATA 섹션의 마지막을 보고합니다.

예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
startCDATA()

comment

void comment(char[] ch,
             int start,
             int length)
             throws SAXException 
문서내의 임의의 위치에 있는 XML 코멘트를 보고합니다.

이 콜백은, 문서 요소의 내외에 존재하는 코멘트 (외부 DTD 부분집합내의 코멘트도 포함한다)에 대해서 사용됩니다. DTD 내의 코멘트는, start/endDTD 이벤트와 start/endEntity 이벤트 (사용되고 있는 경우)의 내부에 올바르게 상자로 할 필요가 있습니다.

파라미터:
ch - 코멘트에 포함되는 문자를 포함하는 배열
start - 배열내의 개시 위치
length - 배열로부터 읽어내지는 문자수
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있다

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.