|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
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 됩니다.
메소드의 개요 | |
---|---|
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 엔티티의 일부의 개시를 보고합니다. |
메소드의 상세 |
---|
void startDTD(String name, String publicId, String systemId) throws SAXException
이 메소드는, DOCTYPE 선언의 개시를 보고하는 메소드입니다. 문서에 DOCTYPE 선언이 포함되지 않은 경우는 불려 가지 않습니다.
DTDHandler
또는 DeclHandler
이벤트를 개입시켜 보고되는 모든 선언은, startDTD 이벤트로부터 endDTD
이벤트까지의 사이에 출현하게 되어 있습니다. 선언은,startEntity
이벤트로부터 endEntity
이벤트까지의 사이에 출현하지 않으면 내부 DTD 부분집합에 소속하는 것이라고 보여집니다. DTD 의 코멘트 및 처리 명령도, startDTD 이벤트로부터 endDTD 이벤트까지의 사이에, 원의 (논리적인) 발생순서로 보고되게 되어 있습니다. 다만, DTDHandler 이벤트나 DeclHandler 이벤트에 대한 정확한 상대 위치에 출현할 필요는 없습니다.
start/endDTD 이벤트는, ContentHandler 의 start/endDocument 이벤트내의 최초의 startElement
이벤트의 전에 출현합니다.
name
- 문서형명publicId
- 선언된 외부 DTD 부분집합의 공개 식별자.
선언되어 있지 않은 경우는 nullsystemId
- 선언된 외부 DTD 부분집합의 시스템 식별자.
선언되어 있지 않은 경우는 null.
문서의 베이스 URI 에 대해서는 해결되지 않는 것에
주의하는 것
SAXException
- 어플리케이션이 예외를 생성한다
일이 있는endDTD()
,
startEntity(java.lang.String)
void endDTD() throws SAXException
이 메소드는, DOCTYPE 선언의 마지막을 보고하는 메소드입니다. 문서에 DOCTYPE 선언이 포함되지 않은 경우는 불려 가지 않습니다.
SAXException
- 어플리케이션이 예외를 생성하는 일이 있는startDTD(java.lang.String, java.lang.String, java.lang.String)
void startEntity(String name) throws SAXException
파라메이타엔티티 (외부 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)
void endEntity(String name) throws SAXException
name
- 종료하는 엔티티의 이름
SAXException
- 어플리케이션이 예외를 생성하는 일이 있는startEntity(java.lang.String)
void startCDATA() throws SAXException
CDATA 섹션의 컨텐츠는, 정규의 characters
이벤트를 개입시켜 보고됩니다. 이 이벤트는 경계의 보고인 만큼 사용됩니다.
SAXException
- 어플리케이션이 예외를 생성하는 일이 있는endCDATA()
void endCDATA() throws SAXException
SAXException
- 어플리케이션이 예외를 생성하는 일이 있는startCDATA()
void comment(char[] ch, int start, int length) throws SAXException
이 콜백은, 문서 요소의 내외에 존재하는 코멘트 (외부 DTD 부분집합내의 코멘트도 포함한다)에 대해서 사용됩니다. DTD 내의 코멘트는, start/endDTD 이벤트와 start/endEntity 이벤트 (사용되고 있는 경우)의 내부에 올바르게 상자로 할 필요가 있습니다.
ch
- 코멘트에 포함되는 문자를 포함하는 배열start
- 배열내의 개시 위치length
- 배열로부터 읽어내지는 문자수
SAXException
- 어플리케이션이 예외를 생성하는 일이 있다
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.