JavaTM Platform
Standard Ed. 6

org.xml.sax.ext
클래스 DefaultHandler2

java.lang.Object 
  상위를 확장 org.xml.sax.helpers.DefaultHandler 
      상위를 확장 org.xml.sax.ext.DefaultHandler2
모든 구현된 인터페이스:
ContentHandler , DTDHandler , EntityResolver , ErrorHandler , DeclHandler , EntityResolver2 , LexicalHandler


public class DefaultHandler2
extends DefaultHandler
implements LexicalHandler , DeclHandler , EntityResolver2

이 클래스는 SAX2 의 기본이 되는 핸들러 클래스를 확장해 SAX2 LexicalHandler ,DeclHandler , 및 EntityResolver2 확장을 지원합니다. 원의 SAX1 resolveEntity() 메소드를 오버라이드(override) 하는 이외는, 추가하는 핸들러의 메소드가 돌려주어질 뿐입니다. 사브크라사는 메소드 마다 모든 것을 오버라이드(override) 할 수 있습니다.

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

주:이 클래스는, 「ContentHandler.setDocumentLocator()」호출에 Locator2 객체가 건네받아 또 「ContentHandler.startElement()」호출에 Attributes2 객체가 건네받은 것을 벌써 인식하고 있을 가능성이 있습니다.

도입된 버젼:
SAX 2.0 (extensions 1.1 alpha)

생성자 의 개요
DefaultHandler2 ()
          모든 구문 분석 이벤트를 무시하는 핸들러를 구축합니다.
 
메소드의 개요
 void attributeDecl (String  eName, String  aName, String  type, String  mode, String  value)
          속성형 선언을 보고합니다.
 void comment (char[] ch, int start, int length)
          문서내의 임의의 위치에 있는 XML 코멘트를 보고합니다.
 void elementDecl (String  name, String  model)
          요소형 선언을 보고합니다.
 void endCDATA ()
          CDATA 섹션의 마지막을 보고합니다.
 void endDTD ()
          DTD 선언의 마지막을 보고합니다.
 void endEntity (String  name)
          엔티티의 마지막을 보고합니다.
 void externalEntityDecl (String  name, String  publicId, String  systemId)
          구문 분석 끝난 외부 엔티티 선언을 보고합니다.
 InputSource getExternalSubset (String  name, String  baseURI)
          외부 부분집합이 문서 텍스트에 선언되지 않았던 경우, 아무것도 사용되지 않는 것을 퍼서에게 통지합니다.
 void internalEntityDecl (String  name, String  value)
          내부 엔티티 선언을 보고합니다.
 InputSource resolveEntity (String  publicId, String  systemId)
          null 의 엔티티명과 베이스 URI 를 사용해 EntityResolver2.resolveEntity() 를 호출합니다.
 InputSource resolveEntity (String  name, String  publicId, String  baseURI, String  systemId)
          기저 URI 에 대해서 systemId 를 해석 처리해 결과가 절대 URI 가 된 엔티티테키스트를 읽어내도록(듯이) 퍼서에게 통지합니다.
 void startCDATA ()
          CDATA 섹션의 개시를 보고합니다.
 void startDTD (String  name, String  publicId, String  systemId)
          DTD 선언이 있는 경우, 그 개시를 보고합니다.
 void startEntity (String  name)
          내부 및 외부의 XML 엔티티의 일부의 개시를 보고합니다.
 
클래스 org.xml.sax.helpers. DefaultHandler 로부터 상속된 메소드
characters , endDocument , endElement , endPrefixMapping , error , fatalError , ignorableWhitespace , notationDecl , processingInstruction , setDocumentLocator , skippedEntity , startDocument , startElement , startPrefixMapping , unparsedEntityDecl , warning
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

DefaultHandler2

public DefaultHandler2()
모든 구문 분석 이벤트를 무시하는 핸들러를 구축합니다.

메소드의 상세

startCDATA

public void startCDATA()
                throws SAXException 
인터페이스 LexicalHandler 의 기술:
CDATA 섹션의 개시를 보고합니다.

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

정의:
인터페이스 LexicalHandler 내의 startCDATA
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
LexicalHandler.endCDATA()

endCDATA

public void endCDATA()
              throws SAXException 
인터페이스 LexicalHandler 의 기술:
CDATA 섹션의 마지막을 보고합니다.

정의:
인터페이스 LexicalHandler 내의 endCDATA
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
LexicalHandler.startCDATA()

startDTD

public void startDTD(String  name,
                     String  publicId,
                     String  systemId)
              throws SAXException 
인터페이스 LexicalHandler 의 기술:
DTD 선언이 있는 경우, 그 개시를 보고합니다.

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

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

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

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

endDTD

public void endDTD()
            throws SAXException 
인터페이스 LexicalHandler 의 기술:
DTD 선언의 마지막을 보고합니다.

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

정의:
인터페이스 LexicalHandler 내의 endDTD
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
LexicalHandler.startDTD(java.lang.String, java.lang.String, java.lang.String)

startEntity

public void startEntity(String  name)
                 throws SAXException 
인터페이스 LexicalHandler 의 기술:
내부 및 외부의 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 이벤트를 올바르게 상자로 할 필요가 있습니다.

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

endEntity

public void endEntity(String  name)
               throws SAXException 
인터페이스 LexicalHandler 의 기술:
엔티티의 마지막을 보고합니다.

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

comment

public void comment(char[] ch,
                    int start,
                    int length)
             throws SAXException 
인터페이스 LexicalHandler 의 기술:
문서내의 임의의 위치에 있는 XML 코멘트를 보고합니다.

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

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

attributeDecl

public void attributeDecl(String  eName,
                          String  aName,
                          String  type,
                          String  mode,
                          String  value)
                   throws SAXException 
인터페이스 DeclHandler 의 기술:
속성형 선언을 보고합니다.

유효한 (최초의) 속성 선언만이 보고됩니다. 형태는, 「CDATA」, 「ID」, 「IDREF」, 「IDREFS」, 「NMTOKEN」, 「NMTOKENS」, 「ENTITY」, 「ENTITIES」, 단락 문자 「|」이라고, 삭제된 모든 공백 문자와 함께 괄호에 넣어진 토큰 그룹, 또는 삭제된 모든 공백 문자와 함께 괄호에 넣어진 토큰 그룹의 직전에 있는 공백 문자의, 직전의 「NOTATION」라고 하는 말의 어떤 것인가의 캐릭터 라인이 됩니다.

값은 어플리케이션에 보고되어 적정하게 정규화되어 엔티티 참조와 캐릭터 라인 참조를 확장한 값이 됩니다.

정의:
인터페이스 DeclHandler 내의 attributeDecl
파라미터:
eName - 관련 요소명
aName - 속성의 이름
type - 속성형을 나타내는 캐릭터 라인
mode - 속성의 디폴트 모드 (#IMPLIED, #REQUIRED, 또는 #FIXED)(을)를 나타내는 캐릭터 라인. 어느 것에도 들어맞지 않는 경우는 null
value - 속성의 디폴트 값를 나타내는 캐릭터 라인. 존재하지 않는 경우는 null
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있다

elementDecl

public void elementDecl(String  name,
                        String  model)
                 throws SAXException 
인터페이스 DeclHandler 의 기술:
요소형 선언을 보고합니다.

컨텐츠 모델은, 캐릭터 라인 「EMPTY」, 캐릭터 라인 「ANY」, 또는 괄호에 넣어진 그룹 (옵션으로 출현 인디케이터(indicator)를 동반한다)으로 구성됩니다. 이 모델은, 모든 파라메이타엔티티가 완전하게 해결되어 모든 공백 문자가 삭제되도록(듯이) 정규화됩니다. 또, 둘러싸는 괄호를 포함합니다. 그 외의 정규화 (중복 한 괄호의 삭제, 출현 인디케이터(indicator)의 간이화등)는 퍼서에 의해 수의 행해집니다.

정의:
인터페이스 DeclHandler 내의 elementDecl
파라미터:
name - 요소형명
model - 컨텐츠 모델을 나타내는 정규 캐릭터 라인
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있다

externalEntityDecl

public void externalEntityDecl(String  name,
                               String  publicId,
                               String  systemId)
                        throws SAXException 
인터페이스 DeclHandler 의 기술:
구문 분석 끝난 외부 엔티티 선언을 보고합니다.

유효한 (최초의) 엔티티 선언만이 보고됩니다.

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

정의:
인터페이스 DeclHandler 내의 externalEntityDecl
파라미터:
name - 엔티티의 이름. 파라메이타엔티티의 경우, 이름은 「%」로 시작되는
publicId - 엔티티의 공개 식별자. 지정되지 않았던 경우는 null
systemId - 엔티티의 시스템 식별자
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
DeclHandler.internalEntityDecl(java.lang.String, java.lang.String) , DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

internalEntityDecl

public void internalEntityDecl(String  name,
                               String  value)
                        throws SAXException 
인터페이스 DeclHandler 의 기술:
내부 엔티티 선언을 보고합니다.

유효한 (최초의) 엔티티 선언만이 보고됩니다. 일반적으로의 엔티티와는 달라, 값에 포함되는 모든 파라메이타엔티티는 확장됩니다.

정의:
인터페이스 DeclHandler 내의 internalEntityDecl
파라미터:
name - 엔티티의 이름. 파라메이타엔티티의 경우, 이름은 「%」로 시작되는
value - 엔티티의 치환 텍스트
예외:
SAXException - 어플리케이션이 예외를 생성하는 일이 있는
관련 항목:
DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String) , DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

getExternalSubset

public InputSource  getExternalSubset(String  name,
                                     String  baseURI)
                              throws SAXException ,
                                     IOException 
외부 부분집합이 문서 텍스트에 선언되지 않았던 경우, 아무것도 사용되지 않는 것을 퍼서에게 통지합니다.

정의:
인터페이스 EntityResolver2 내의 getExternalSubset
파라미터:
name - 문서의 루트 요소의 식별. 이용 가능한 DOCTYPE 선언 또는 실제의 루트 요소로부터의 이름
baseURI - 문서의 기저 URI. 외부 서브 텍스트를 선택하는 추가 힌트로서 기능한다. XMLReader 에는 InputSource 만이 지정되었기 때문에 null 가 아닌 한 항상 절대 URI 이다
반환값:
퍼서에 의해 사용되는 새로운 외부 부분집합을 기술하는 InputSource 객체. 외부 부분집합이 제공되지 않는 경우는 null 가 나타난다
예외:
SAXException - SAX 예외. 다른 예외를 랩 하고 있을 가능성이 있다
IOException - 새로운 InputStream 나 Reader, 또는 부정한 URL 의 작성 실패를 나타내고 있을 가능성이 있다

resolveEntity

public InputSource  resolveEntity(String  name,
                                 String  publicId,
                                 String  baseURI,
                                 String  systemId)
                          throws SAXException ,
                                 IOException 
기저 URI 에 대해서 systemId 를 해석 처리해 결과가 절대 URI 가 된 엔티티테키스트를 읽어내도록(듯이) 퍼서에게 통지합니다. 낡은 DefaultHandler.resolveEntity() 는 이 메소드를 호출하기 위해서(때문에) 오버라이드(override) 되므로, 이 메소드는 null 명, 기저 URI, 및 벌써 절대화 되고 있는 systemId 로 호출할 수가 있습니다.

정의:
인터페이스 EntityResolver2 내의 resolveEntity
파라미터:
name - 해결되는 외부 엔티티의 식별. 외부 부분집합의 「[dtd]」나 파라메이타엔티티를 나타내는 「%」로 개시되는 이름, 또는 그 이외의 일반 엔티티의 이름. SAX2 퍼서에 의해 불려 가는 경우는 null 가 아닌
publicId - 참조되는 외부 엔티티의 공개 식별자 (XML 스펙으로 요구되도록(듯이) 정규화되고 있다). 제공되지 않았던 경우는 null
baseURI - 상대적인 systemID 를 기준으로 한 URI 의 해석. XMLReader 는 InputSource 로 지정된 가능성이 있으므로, null 가 아닌 한 항상 절대 URI. 이 URI 는, 관련하는 선언을 개시하는 「<」에 관련지을 수 있고 있는 XML 스펙에 의해 정의되는
systemId - 참조되는 외부 엔티티의 시스템 식별자. 상대 또는 절대 URI. SAX2 퍼서에 의해 불려 가는 경우는 null 는 아니고, 선언된 엔티티와 외부 부분집합만이, 그러한 퍼서에 의해 해결된다
반환값:
퍼서에 의해 사용되는 새로운 입력 소스를 기술하는 InputSource 객체. null 를 돌려주는 것에 의해, 기저 URI 에 대한 시스템 ID 를 해결해, 결과적으로 얻을 수 있는 URI 에 연결하도록(듯이) 퍼서에게 지시한다
예외:
SAXException - SAX 예외. 다른 예외를 랩 하고 있을 가능성이 있다
IOException - 새로운 InputStream 나 Reader, 또는 부정한 URL 의 작성 실패를 나타내고 있을 가능성이 있다

resolveEntity

public InputSource  resolveEntity(String  publicId,
                                 String  systemId)
                          throws SAXException ,
                                 IOException 
null 의 엔티티명과 베이스 URI 를 사용해 EntityResolver2.resolveEntity() 를 호출합니다. 이 클래스를 사용하려면 , 그 메소드를 오버라이드(override) 하는 것만으로 괜찮습니다.

정의:
인터페이스 EntityResolver 내의 resolveEntity
오버라이드(override):
클래스 DefaultHandler 내의 resolveEntity
파라미터:
publicId - 공개 식별자. 사용할 수 없는 경우는 null
systemId - XML 문서에 포함되어 있는 시스템 식별자
반환값:
새로운 입력 소스. 디폴트의 동작이 필요한 경우는 null
예외:
SAXException - SAX 예외. 다른 예외를 랩 하고 있을 가능성이 있다
IOException - Java 고유의 입출력 예외. 일반적으로, InputSource 의 새로운 InputStream 또는 Reader 하지만 생성되면(자) 발생하는
관련 항목:
EntityResolver.resolveEntity(java.lang.String, java.lang.String)

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 도 참조해 주세요.