|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
엔티티를 해결하기 위한 기본 인터페이스입니다.
이 모듈은 원시 코드, 문서 모두 공개 도메인에 놓여져 있습니다. 따라서, 내용에 관한프로텍션은 일절 제공되지 않습니다.
외부 엔티티의 커스텀 처리를 구현할 필요가 있는 경우, SAX 어플리케이션은 이 인터페이스를 구현해,setEntityResolver
메소드를 사용해 SAX 드라이버에 인스턴스를 등록할 필요가 있습니다.
그 후, XML 리더에 의해, 어플리케이션은 외부 엔티티 (외부 DTD 부분집합, 외부 파라메이타엔티티를 포함한다)를 수중에 넣기 전에 차단할 수 있게 됩니다.
이 인터페이스를 구현해야 하는 SAX 어플리케이션은 그다지 없습니다. 그러나, 이 인터페이스는 데이타베이스나 그 외의 특수한 입력 소스로부터 XML 문서를 구축하는 것 같은 어플리케이션, 혹은 URL 이외의 URI 형을 사용하는 어플리케이션에 있어 매우 유익합니다.
이하의 resolver는 시스템 식별자 "http://www.myhost.com/today" 를 사용해, 어플리케이션에 엔티티의 특수 캐릭터 스트림을 제공합니다.
import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; public class MyResolver implements EntityResolver { public InputSource resolveEntity (String publicId, String systemId) { if (systemId.equals("http://www.myhost.com/today")) { // return a special input source MyReader reader = new MyReader(); return new InputSource(reader); } else { // use the default behaviour return null; } } }
어플리케이션도 또, 이 인터페이스를 사용해 시스템 식별자를 로컬 URI 에 리디렉트 하거나 카탈로그내의 교환치를 검색하거나 (통상, 공개 식별자를 사용) 할 수 있습니다.
Parser.setEntityResolver(org.xml.sax.EntityResolver)
,
InputSource
메소드의 개요 | |
InputSource |
resolveEntity (String publicId,
String systemId)
어플리케이션이 외부 엔티티를 해결할 수 있게 합니다. |
메소드의 상세 |
public InputSource resolveEntity(String publicId, String systemId) throws SAXException , IOException
파서는 톱 레벨의 문서 엔티티를 제외한 모든 외부 엔티티 (외부 DTD 부분집합, DTD 내에서 참조되는 외부 엔티티, 문서 요소내에서 참조되는 외부 엔티티를 포함한다)를 열기 전에, 이 메소드를 호출합니다. 어플리케이션은 파서에 엔티티 자체의 해결, 대체 URI 의 사용, 또는 완전히 다른 입력 소스의 사용을 요구할 수 있습니다.
어플리케이션의 작성자는 이 메소드를 사용해 외부 시스템 식별자를 안전한 로컬 URI 에 리디렉트 하거나 카탈로그내의 공개 식별자를 검색하거나 데이타베이스나 그 외의 입력 소스 (예를 들어 다이알로그 박스)로부터 엔티티를 읽어내거나 할 수 있습니다.
시스템 식별자가 URL 의 경우, SAX 파서는 이것을 어플리케이션에 보고하기 전에 완전하게 해결할 필요가 있습니다.
publicId
- 참조되는 외부 엔티티의 공개 식별자. 제공되지 않았던 경우는 nullsystemId
- 참조되는 외부 엔티티의 시스템 식별자
SAXException
- SAX 예외. 다른 예외를 랩 하고 있을 가능성이 있다
IOException
- Java 고유의 입출력 예외. 통상, InputSource 의 새로운 InputStream 또는 Reader 가 생성되면(자) 발생하는InputSource
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.