JavaTM 2
Platform
Std.  Ed.  v1. 4.0

org.xml.sax
인터페이스 EntityResolver

기존의 구현 클래스의 일람:
DefaultHandler , HandlerBase , XMLFilterImpl

public interface EntityResolver

엔티티를 해결하기 위한 기본 인터페이스입니다.

이 모듈은 원시 코드, 문서 모두 공개 도메인에 놓여져 있습니다. 따라서, 내용에 관한프로텍션은 일절 제공되지 않습니다.

외부 엔티티의 커스텀 처리를 구현할 필요가 있는 경우, 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 에 리디렉트 하거나 카탈로그내의 교환치를 검색하거나 (통상, 공개 식별자를 사용) 할 수 있습니다.

도입된 버젼:
SAX 1.0
관련 항목:
Parser.setEntityResolver(org.xml.sax.EntityResolver) , InputSource

메소드의 개요
 InputSource resolveEntity (String  publicId, String  systemId)
          어플리케이션이 외부 엔티티를 해결할 수 있게 합니다.
 

메소드의 상세

resolveEntity

public InputSource  resolveEntity(String  publicId,
                                 String  systemId)
                          throws SAXException ,
                                 IOException 
어플리케이션이 외부 엔티티를 해결할 수 있게 합니다.

파서는 톱 레벨의 문서 엔티티를 제외한 모든 외부 엔티티 (외부 DTD 부분집합, DTD 내에서 참조되는 외부 엔티티, 문서 요소내에서 참조되는 외부 엔티티를 포함한다)를 열기 전에, 이 메소드를 호출합니다. 어플리케이션은 파서에 엔티티 자체의 해결, 대체 URI 의 사용, 또는 완전히 다른 입력 소스의 사용을 요구할 수 있습니다.

어플리케이션의 작성자는 이 메소드를 사용해 외부 시스템 식별자를 안전한 로컬 URI 에 리디렉트 하거나 카탈로그내의 공개 식별자를 검색하거나 데이타베이스나 그 외의 입력 소스 (예를 들어 다이알로그 박스)로부터 엔티티를 읽어내거나 할 수 있습니다.

시스템 식별자가 URL 의 경우, SAX 파서는 이것을 어플리케이션에 보고하기 전에 완전하게 해결할 필요가 있습니다.

파라미터:
publicId - 참조되는 외부 엔티티의 공개 식별자. 제공되지 않았던 경우는 null
systemId - 참조되는 외부 엔티티의 시스템 식별자
반환값:
새로운 입력 소스를 기술하는 InputSource 오브젝트. 파서에 시스템 식별자에의 정규 URI 접속을 요구하는 경우는 null
예외:
SAXException - SAX 예외. 다른 예외를 랩 하고 있을 가능성이 있다
IOException - Java 고유의 입출력 예외. 통상, InputSource 의 새로운 InputStream 또는 Reader 가 생성되면(자) 발생하는
관련 항목:
InputSource

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

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

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.