JavaTM Platform
Standard Ed. 6

javax.xml.validation
클래스 ValidatorHandler

java.lang.Object 
  상위를 확장 javax.xml.validation.ValidatorHandler
모든 구현된 인터페이스:
ContentHandler


public abstract class ValidatorHandler
extends Object
implements ContentHandler

SAX 스트림에 유효한 스트리밍 발리 데이터.

ValidatorHandler 객체는 thread에 대해서 안전하지 않고, 재입 불가능합니다. 즉, 어플리케이션측에서, 어떠한 경우에서도 1 개 ValidatorHandler 객체가 복수의 thread로부터 사용되는 것이 없게 할 필요가 있습니다.

ValidatorHandler 는, SAX 이벤트가 관련하는 Schema 에 기술된 제약 세트에 따르고 있는지 어떤지를 체크합니다. 또, 디폴트 값의 추가등에 의해, SAX 이벤트를 변경할 수도 있습니다.

ValidatorHandlerContentHandler 로부터의 확장입니다만, 다음과 같이 기본이 되는 ContentHandler 을 세련 시킵니다.

  1. startElement 및 endElement 이벤트는,uri,localName, 및 qname 의 null 이외의 캐릭터 라인을 받을 필요가 있습니다. SAX 로 null 가 되는 것이 허가되고 있는 경우에서도 들어맞읍니다. 같이 사용자 지정 ContentHandler 가 이것들 3 종류의 파라미터의 null 이외의 캐릭터 라인을 받습니다.
  2. 어플리케이션에서는,ValidatorHandlerContentHandler.startPrefixMapping(String, String)ContentHandler.endPrefixMapping(String) 가 올바르게 불려 가도록(듯이) 할 필요가 있습니다. 같이 사용자 지정 ContentHandler 이 startPrefixMapping 및 endPrefixMapping 이벤트를 받습니다. ValidatorHandler 가 추가의 이름 공간 바인딩을 도입하는 경우, 사용자 지정 ContentHandler 은 추가의 startPrefixMapping 및 endPrefixMapping 이벤트를 받습니다.
  3. ContentHandler.startElement(String, String, String, Attributes) 메소드 Attributes 에는, xmlns* 속성이 포함되는 경우와 포함되지 않는 경우가 있습니다.

startDocument 메소드가 불려 갈 때마다 ValidatorHandler 는 자동적으로 리셋 됩니다.

인식되는 프로퍼티과 기능

이 스펙에서는,ValidatorHandler 의 모든 구현으로 인식할 필요가 있는 다음의 기능을 정의하고 있습니다.

http://xml.org/sax/features/namespace-prefixes

이 기능은 ValidatorHandler 가 원의 SAX 이벤트 스트림에 존재하지 않는 이름 공간 바인딩을 취득하는 방법을 제어합니다. 이 기능이 true 로 설정되어 있는 경우는, 사용자 ContentHandlerContentHandler.startElement(String, String, String, Attributes) 콜백 Attributes 객체의 대응하는 xmlns* 속성을 확인할 필요가 있습니다. 그렇지 않은 경우는, 사용자 지정 ContentHandler 에게 건네지는 Attributesxmlns* 속성이 추가되지 않습니다.

이 변환에 관계없이, 이름 공간 바인딩은, 항상 사용자 지정 ContentHandlerContentHandler.startPrefixMapping(String, String)ContentHandler.endPrefixMapping(String) 를 개입시켜 어플리케이션에 통지됩니다.

이 기능은 ValidatorHandler 로 SAX 이벤트를 받는 방법에는 영향을 주지 않습니다. SAX 이벤트의 확장 방법을 변경할 뿐입니다.  

이 기능은 디폴트로 false 로 설정됩니다.

도입된 버젼:
1.5

생성자 의 개요
protected ValidatorHandler ()
          상속 클래스의 생성자 입니다.
 
메소드의 개요
abstract  ContentHandler getContentHandler ()
          확장된 검증 결과를 받는 ContentHandler 를 가져옵니다.
abstract  ErrorHandler getErrorHandler ()
          이 ValidatorHandler 로 설정된 현재 ErrorHandler 를 가져옵니다.
 boolean getFeature (String  name)
          기능 플래그의 값을 검색합니다.
 Object getProperty (String  name)
          프로퍼티치를 검색합니다.
abstract  LSResourceResolver getResourceResolver ()
          이 ValidatorHandler 로 설정된 현재 LSResourceResolver 를 가져옵니다.
abstract  TypeInfoProvider getTypeInfoProvider ()
          이 ValidatorHandler TypeInfoProvider 구현을 가져옵니다.
abstract  void setContentHandler (ContentHandler  receiver)
          확장된 검증 결과를 받는 ContentHandler 를 설정합니다.
abstract  void setErrorHandler (ErrorHandler  errorHandler)
          검증으로 발생한 에러를 받도록(듯이) ErrorHandler 를 설정합니다.
 void setFeature (String  name, boolean value)
          이 ValidatorHandler 의 기능을 설정합니다.
 void setProperty (String  name, Object  object)
          프로퍼티치를 설정합니다.
abstract  void setResourceResolver (LSResourceResolver  resourceResolver)
          검증시의 자원 해결을 커스터마이즈 하도록(듯이) LSResourceResolver 를 설정합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 
인터페이스 org.xml.sax. ContentHandler 로부터 상속된 메소드
characters , endDocument , endElement , endPrefixMapping , ignorableWhitespace , processingInstruction , setDocumentLocator , skippedEntity , startDocument , startElement , startPrefixMapping
 

생성자 의 상세

ValidatorHandler

protected ValidatorHandler()

상속 클래스의 생성자 입니다.

 

이 생성자 은 아무것도 실시하지 않습니다.

 

상속 클래스에서는,null ErrorHandlernull LSResourceResolver ValidatorHandler 객체를 작성할 필요가 있습니다.

메소드의 상세

setContentHandler

public abstract void setContentHandler(ContentHandler  receiver)
확장된 검증 결과를 받는 ContentHandler 를 설정합니다.

ContentHandler 가 지정되면(자),ValidatorHandler 는 필터로서 기능해, 기본적으로는 입력 이벤트가 지정된 ContentHandler 에 카피합니다.

이 실행으로 ValidatorHandler 는, 예를 들어 디폴트의 속성을 추가해, 이벤트를 변경할 수도 있습니다.

ValidatorHandler 는 일정량의 이벤트를 버퍼에 포함할 수가 있습니다만, 퍼서가 ValidatorHandler 를 사용할 수 있도록(듯이) 하기 위해서, 다음의 요건을 채울 필요가 있습니다.

  1. ContentHandler.startElement(String, String, String, Attributes) ,ContentHandler.endElement(String, String, String) ,ContentHandler.startDocument() , 또는 ContentHandler.endDocument()ValidatorHandler 로 불려 갔을 때, 콜백이 돌려주어지기 전에 사용자 지정 ContentHandler 상의 같은 메소드를 같은 이벤트에 대해서 호출할 필요가 있습니다.
  2. ValidatorHandler 는, 입력에 존재하지 않았다 새로운 요소를 도입하지 않을 가능성이 있습니다.
  3. ValidatorHandler 는, 입력에 존재한 속성을 삭제하지 않을 가능성이 있습니다.

지정된 ContentHandler 의 콜백 메소드가 예외를 throw 했을 경우,ValidatorHandler 로부터 같은 예외 객체를 throw 할 필요가 있습니다. ErrorHandler 에는 그러한 예외를 통지하지 말아 주세요.

이 메소드는 검증의 도중에도 호출할 수가 있습니다.

파라미터:
receiver - ContentHandler 또는 null 치

getContentHandler

public abstract ContentHandler  getContentHandler()
확장된 검증 결과를 받는 ContentHandler 를 가져옵니다.

반환값:
이 메소드는,getContentHandler() 메소드에 의해 마지막에 설정된 객체를 돌려준다. 또는, 이 ValidatorHandler 가 작성되고 나서, 그 메소드가 불려 가지 않은 경우는 null 를 돌려주는
관련 항목:
setContentHandler(ContentHandler)

setErrorHandler

public abstract void setErrorHandler(ErrorHandler  errorHandler)
검증으로 발생한 에러를 받도록(듯이) ErrorHandler 를 설정합니다.

에러 핸들러를 사용해, 검증시의 에러 처리 프로세스를 커스터마이즈 할 수 있습니다. ErrorHandler 를 설정하면(자), 검증으로 발견된 에러는 우선 ErrorHandler 에 보내집니다.

에러 핸들러는 핸들러로부터 SAXException 를 throw 해, 검증을 즉시 중단할 수가 있습니다. 또는, 에러를 화면에 출력하거나ErrorHandler 로부터 정상적으로 돌아와 검증을 속행시키거나 할 수도 있습니다.

ThrowableErrorHandler 로부터 throw 되면(자), 호출 스택의 루트에 같은 Throwable 객체가 throw 됩니다.

ValidatorHandler 는, 최초로 ErrorHandler 에 보고하지 않으면,SAXException 를 throw 할 수가 없습니다.

ErrorHandler 가 null 의 경우, 구현은 다음 ErrorHandler 가 설정되었는지와 같이 동작합니다.

 class DraconianErrorHandler implements ErrorHandler  {
     public void fatalError( SAXParseException  e ) throws SAXException  {
         throw e;
     }
     public void error( SAXParseException  e ) throws SAXException  {
         throw e;
     }
     public void warning( SAXParseException  e ) throws SAXException  {
         // noop
     }
 }
 

새로운 ValidatorHandler 객체가 작성되면(자), 최초로 이 필드는 null 로 설정됩니다.

파라미터:
errorHandler - 설정하는 새로운 에러 핸들러. 이 파라미터는 null 도 가능

getErrorHandler

public abstract ErrorHandler  getErrorHandler()
ValidatorHandler 로 설정된 현재 ErrorHandler 를 가져옵니다.

반환값:
이 메소드는,setErrorHandler(ErrorHandler) 메소드에 의해 마지막에 설정된 객체를 돌려준다. 또는, 이 ValidatorHandler 가 작성되고 나서, 그 메소드가 불려 가지 않은 경우는 null 를 돌려주는
관련 항목:
setErrorHandler(ErrorHandler)

setResourceResolver

public abstract void setResourceResolver(LSResourceResolver  resourceResolver)
검증시의 자원 해결을 커스터마이즈 하도록(듯이) LSResourceResolver 를 설정합니다.

ValidatorHandler 는, 검증중에 외부 자원의 장소를 확인할 필요가 있을 때 LSResourceResolver 를 사용합니다만, 「외부 자원의 검색」을 엄밀하게 구성하는 것은 schema 언어에 의해 다릅니다.

LSResourceResolver 가 null 의 경우, 구현은 다음 LSResourceResolver 가 설정되었는지와 같이 동작합니다.

 class DumbLSResourceResolver implements LSResourceResolver  {
     public LSInput  resolveResource(
         String publicId, String systemId, String baseURI) {
         
         return null; // always return null
     }
 }
 

LSResourceResolverRuntimeException (또는 그 상속 클래스의 인스턴스)를 throw 하면(자),ValidatorHandler 는 구문 분석을 이상종료(ABEND) 해,validate 메소드의 호출원래는 같은 RuntimeException 를 받습니다.

새로운 ValidatorHandler 객체가 작성되면(자), 최초로 이 필드는 null 로 설정됩니다.

파라미터:
resourceResolver - 설정하는 새로운 자원 리절버. 이 파라미터는 null 도 가능

getResourceResolver

public abstract LSResourceResolver  getResourceResolver()
ValidatorHandler 로 설정된 현재 LSResourceResolver 를 가져옵니다.

반환값:
이 메소드는,setResourceResolver(LSResourceResolver) 메소드에 의해 마지막에 설정된 객체를 돌려준다. 또는, 이 ValidatorHandler 가 작성되고 나서, 그 메소드가 불려 가지 않은 경우는 null 를 돌려주는
관련 항목:
setErrorHandler(ErrorHandler)

getTypeInfoProvider

public abstract TypeInfoProvider  getTypeInfoProvider()
ValidatorHandler TypeInfoProvider 구현을 가져옵니다.

취득한 TypeInfoProvider 는 구문 분석시에 조회해, 발리 데이터에 의해 판단된 형태 정보에 액세스 할 수 있습니다.

schema 언어에 따라서는, 형태의 개념을 정의하고 있지 않는 것도 있어, 그러한 언어의 경우, 이 메소드가 지원되지 않는 것도 있습니다. 그러나, 이 스펙에 준거하기 위해(때문에), W3C XML Schema 1.0 의 구현에서는 이 처리를 지원할 필요가 있습니다.

반환값:
발리 데이터 / schema 언어로 TypeInfo 의 개념을 지원하고 있지 않는 경우. 지원하고 있는 경우는 null 이외의 유효한 TypeInfoProvider

getFeature

public boolean getFeature(String  name)
                   throws SAXNotRecognizedException ,
                          SAXNotSupportedException 
기능 플래그의 값을 검색합니다.  

기능명은 완전 수식 URI 입니다. ValidatorHandler 는 기능명을 인식할 수 있습니다만, 일시적으로 그 값을 돌려줄 수 없습니다. 기능의 값에 따라서는, 검증의 실행전, 실행중, 실행 후등의 특정의 문맥으로 밖에 사용할 수 없는 경우가 있습니다.  

독자적인 URI 에 근거해 작성된 이름을 사용해, 구현자가 독자적인 기능을 작성할 수도 있습니다 (추천).

파라미터:
name - 기능명. null 이외의 완전 수식 URI 로 나타내진다
반환값:
기능의 현재의 값 (true 또는 false)
예외:
SAXNotRecognizedException - 기능치를 할당할 수 없는, 또는 취득할 수 없는 경우
SAXNotSupportedException - ValidatorHandler 가 기능명을 인식하는 것만으로, 현시점에서는 그 값을 판단할 수 없는 경우
NullPointerException - namenull 의 경우
관련 항목:
setFeature(String, boolean)

setFeature

public void setFeature(String  name,
                       boolean value)
                throws SAXNotRecognizedException ,
                       SAXNotSupportedException 

ValidatorHandler 의 기능을 설정합니다.

 

기능을 사용하면(자),ValidatorHandler 가 schema를 구문 분석 하는 방법을 제어할 수 있습니다. 기능명은 완전 수식 URI 입니다. 기능명은 완전 수식 URI 입니다. SchemaFactory 는 기능의 값을 표시할 수 있습니다만, 현재의 값을 변경할 수 없습니다. 기능의 값에 따라서는, 검증의 실행전, 실행중, 실행 후등의 특정의 문맥에서만 불변 또는 가변인 경우가 있습니다.

 

구현은 모두,XMLConstants.FEATURE_SECURE_PROCESSING 기능을 지원하고 있을 필요가 있습니다. 이 기능에 대해서는 다음과 같습니다.

파라미터:
name - 기능명. null 이외의 완전 수식 URI 로 나타내지는
value - 기능의 요구된 값 (true 또는 false)
예외:
SAXNotRecognizedException - 기능치를 할당할 수 없는, 또는 취득할 수 없는 경우
SAXNotSupportedException - ValidatorHandler 가 기능명을 인식하는 것만으로, 요구된 값을 설정할 수 없는 경우
NullPointerException - namenull 의 경우
관련 항목:
getFeature(String)

setProperty

public void setProperty(String  name,
                        Object  object)
                 throws SAXNotRecognizedException ,
                        SAXNotSupportedException 
프로퍼티치를 설정합니다.  

프로퍼티명은 완전 수식 URI 입니다. ValidatorHandler 는 프로퍼티명을 인식할 수 있습니다만, 현재의 값을 변경할 수 없습니다. 프로퍼티의 값에 따라서는, 검증의 실행전, 실행중, 실행 후등의 특정의 문맥에서만 불변 또는 가변인 경우가 있습니다.

 

ValidatorHandler 는 특정의 프로퍼티명의 설정을 인식할 필요는 없습니다.

파라미터:
name - 프로퍼티명. null 이외의 완전 수식 URI 로 나타내지는
object - 요구된 프로퍼티치
예외:
SAXNotRecognizedException - 프로퍼티의 값을 할당할 수 없는, 또는 취득할 수 없는 경우
SAXNotSupportedException - ValidatorHandler 가 프로퍼티명을 인식하는 것만으로, 요구된 값을 설정할 수 없는 경우
NullPointerException - namenull 의 경우

getProperty

public Object  getProperty(String  name)
                   throws SAXNotRecognizedException ,
                          SAXNotSupportedException 
프로퍼티치를 검색합니다.  

프로퍼티명은 완전 수식 URI 입니다. ValidatorHandler 는 프로퍼티명을 인식할 수 있습니다만, 일시적으로 그 값을 돌려줄 수 없습니다. 프로퍼티의 값에 따라서는, 검증의 실행전, 실행중, 실행 후등의 특정의 문맥으로 밖에 사용할 수 없는 경우가 있습니다.

 

ValidatorHandler 는 특정의 프로퍼티명을 인식할 필요는 없습니다.

 

독자적인 URI 에 근거해 작성된 이름을 사용해, 구현자가 독자적인 프로퍼티을 작성할 수도 있습니다 (추천).

파라미터:
name - 프로퍼티명. null 이외의 완전 수식 URI 로 나타내진다
반환값:
현재의 프로퍼티치
예외:
SAXNotRecognizedException - 프로퍼티의 값을 할당할 수 없는, 또는 취득할 수 없는 경우
SAXNotSupportedException - XMLReader 가 프로퍼티명을 인식하는 것만으로, 현시점에서는 그 값을 판단할 수 없는 경우
NullPointerException - namenull 의 경우
관련 항목:
setProperty(String, Object)

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