|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
public interface EntityResolver
엔티티를 해결하기 위한 기본 인터페이스입니다.
이 모듈은, 원시 코드, 문서 모두 공개 도메인에 놓여져 있습니다. 따라서, 내용에 관한보증은 일절 제공되지 않습니다. 상세한 것에 대하여는,http://www.saxproject.org 를 참조해 주세요.
외부 엔티티의 커스텀 처리를 구현할 필요가 있는 경우, SAX 어플리케이션은 이 인터페이스를 구현해,setEntityResolver
메소드를 사용해 SAX 드라이버에 인스턴스를 등록할 필요가 있습니다.
그 후, XML 리더에 의해, 어플리케이션은 외부 엔티티 (외부 DTD 부분집합, 외부 파라메이타엔티티를 포함한다)를 수중에 넣기 전에 차단할 수 있게 됩니다.
이 인터페이스를 구현해야 하는 SAX 어플리케이션은 그다지 없습니다. 그러나, 이 인터페이스는, 데이타베이스나 그 외의 특수한 입력 소스로부터 XML 문서를 구축하는 것 같은 어플리케이션, 혹은 URL 이외의 URI 형을 사용하는 어플리케이션에 있어 매우 유익합니다.
이하의 리절버는, 시스템 식별자 「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 에 리다이렉트(redirect) 하거나 카탈로그내의 치환치를 검색하거나 (일반적으로, 공개 식별자를 사용) 할 수 있습니다.
XMLReader.setEntityResolver(org.xml.sax.EntityResolver)
,
InputSource
메소드의 개요 | |
---|---|
InputSource |
resolveEntity (String publicId,
String systemId)
어플리케이션이 외부 엔티티를 해결할 수 있도록(듯이) 합니다. |
메소드의 상세 |
---|
InputSource resolveEntity(String publicId, String systemId) throws SAXException , IOException
퍼서는, 톱 레벨의 문서 엔티티를 제외한 모든 외부 엔티티를 열기 전에, 이 메소드를 호출합니다. 이러한 엔티티로서 외부 DTD 부분집합이나 DTD 내에서 참조되는 파라메이타엔티티 (어느 쪽의 경우도, 퍼서가 외부 파라메이타엔티티를 읽어들이는 경우만), 문서 요소내에서 참조되는 일반적인 외부 엔티티 (퍼서가 일반적인 외부 엔티티를 읽어들이는 경우)가 있습니다. 어플리케이션은, 퍼서에게 엔티티 자체의 검출, 대체 URI 의 사용, 또는 어플리케이션에 의해 제공되는 데이터의 문자 또는 바이트 입력 스트림로서의 사용을 요구할 수 있습니다.
어플리케이션의 작성자는, 이 메소드를 사용해 외부 시스템 식별자를 안전한 로컬 URI 에 리다이렉트(redirect) 하거나 카탈로그내의 공개 식별자를 검색하거나 데이타베이스나 그 외의 입력 소스 (예를 들어 다이알로그 박스)로부터 엔티티를 읽어내거나 할 수 있습니다. XML 도 SAX 도, 공개 또는 시스템 ID 를 사용해 자원을 해결하기 위한 적절한 정책를 지정하지 않습니다. 다만, SAX 는, 이 메소드에 의해 반환되는 InputSource 의 해석 방법과 아무것도 돌려주어지지 않았던 경우는 시스템 ID 가 URL 로서 역참조되는 것을 지정합니다.
시스템 식별자가 URL 의 경우, SAX 퍼서는 이것을 어플리케이션에 보고하기 전에 완전하게 해결할 필요가 있습니다.
publicId
- 참조되는 외부 엔티티의 공개 식별자.
제공되지 않았던 경우는 nullsystemId
- 참조되는 외부 엔티티의
시스템 식별자
SAXException
- SAX 예외.
다른 예외를 랩 하고 있을 가능성이 있다
IOException
- Java 고유의 입출력 예외.
일반적으로, InputSource 의 새로운 InputStream 또는 Reader
하지만 생성되면(자) 발생하는InputSource
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.