JavaTM Platform
Standard Ed. 6

javax.xml.bind
인터페이스 Validator



추천 되고 있지 않습니다.  since JAXB 2.0

public interface Validator

JAXB 2.0 의 시점에서, 이 클래스는 추천 되지 않는 옵션의 클래스가 되었습니다.

Validator 클래스는, 실행시에 컨텐츠 트리의 검증을 제어합니다.

3 개의 형식의 검증

비정렬화시의 검증
이 검증 형식에서는, XML 데이터를 Java 컨텐츠 트리에 비정렬화하는 도중에 검출된 검증 에러와 경고에 관한 정보를 클라이언트 어플리케이션은 받을 수가 있어 다른 검증 형식과 완전하게 교착합니다. 이것을 유효 또는 무효로 하려면 , javadoc 의 Unmarshaller.setValidating 를 참조해 주세요. 모든 JAXB 1.0 프로바이더는, 이 조작을 지원할 필요가 있습니다.
On Demand 검증
이 검증 형식에서는, Java 컨텐츠 트리로 검출된 검증 에러 및 경고에 관한 정보를 클라이언트 어플리케이션은 받을 수가 있습니다. 임의의 시점에서, 클라이언트 어플리케이션은 Java 컨텐츠 트리 (또는, 그것의 임의의 서브 트리)에 대해서 Validator.validate 메소드를 호출할 수가 있습니다. 모든 JAXB 1.0 프로바이더는, 이 조작을 지원할 필요가 있습니다.
fail-fast 검증
이 검증 형식에서는, 클라이언트 어플리케이션은, 스펙으로 정의된 Java 프로퍼티의 형태 제약에 위반하는 Java 컨텐츠 트리 변경에 관한 피드백을 즉석에서 받을 수가 있습니다. JAXB 프로바이더가 이 형태의 검증을 지원하는 것은 필수가 아닙니다. 이 형태의 검증을 지원하고 있는 JAXB 프로바이더 속에는, 클라이언트 어플리케이션이 실행시의 fail-fast 검증을 요구하는 것을 허가할지 어떨지를 schema 컴파일시로 결정할 필요가 있는 것도 있습니다.

Validator 클래스는, On Demand 검증의 관리를 담당합니다. Unmarshaller 클래스는, 비정렬화 조작중의 비정렬화시 검증의 관리를 담당합니다. 정렬화 조작중의 검증을 유효하게 하는 정식적 메소드는 없습니다만,Marshaller 는 에러를 검출해, 자신에게 등록되어 있는 ValidationEventHandler 에 보고합니다.

디폴트 이벤트 핸들러의 사용

검증, 비정렬화, 정렬화 조작의 호출전에, 클라이언트 어플리케이션이 Validator,Unmarshaller,Marshaller 에 이벤트 핸들러를 설정하고 있지 않는 경우, 디폴트 이벤트 핸들러가 발생한 에러 또는 경고의 통지를 받습니다. 디폴트 이벤트 핸들러는, 최초의 에러 또는 치명적인 에러의 검출 후, 현재의 조작을 정지시킵니다 (경고를 받아들인 후는, 속행시키는 것을 시도합니다).

검증 이벤트의 처리

비정렬화, 검증, 정렬화 조작중에 발생한 이벤트를 처리하는 방법에는, 다음의 3 개가 있습니다.
디폴트 이벤트 핸들러의 사용
Validator,Unmarshaller, 또는 Marshaller 에 대해 setEventHandler API 를 개입시켜 이벤트 핸들러를 지정하지 않았던 경우, 디폴트 이벤트 핸들러가 사용됩니다.
커스텀 이벤트 핸들러의 구현과 등록
고도의 이벤트 처리를 필요로 하는 클라이언트 어플리케이션은,ValidationEventHandler 인터페이스를 구현해,Unmarshaller 또는 Validator, 혹은 그 양쪽 모두에 그것을 등록할 수가 있습니다.
ValidationEventCollector 유틸리티의 사용
편리성의 향상을 위해, 비정렬화, 검증, 정렬화 조작중에 작성된 ValidationEvent 객체를 단지 수집해, 이것들을 클라이언트 어플리케이션에 java.util.Collection 로서 돌려주는, 특수한 이벤트 핸들러가 제공되고 있습니다.

검증과 정형식

전의 마디로 설명한 것처럼, 클라이언트 어플리케이션의 검증 이벤트 처리 설정에 따라, 검증 이벤트는 다른 방법으로 처리됩니다. 다만, 어느 상황에서는, 이미 정상적으로 에러를 검출 및 보고할 수 없는 것을 JAXB 프로바이더가 전합니다. 이러한 경우, JAXB 프로바이더는 ValidationEvent 의 중요도를 FATAL_ERROR 로 설정해, 비정렬화, 검증, 정렬화 조작을 종료시키는 것을 나타냅니다. 디폴트 이벤트 핸들러 및 ValidationEventCollector 유틸리티 클래스는, 치명적인 에러가 통지된 후, 처리를 종료시킬 필요가 있습니다. 독자적인 ValidationEventHandler 를 제공하는 클라이언트 어플리케이션은, 치명적인 에러가 통지된 후, 처리를 종료시키도록 해 주세요. 이것에 따르지 않는 경우, 예상외의 동작을 일으킬 가능성이 있습니다.

지원되고 있는 프로퍼티

현재, Validator 에 관해서 모든 JAXB 프로바이더가 지원할 필요가 있는 프로퍼티은 없습니다. 그러나, 일부의 프로바이더는, 프로바이더 고유의 프로퍼티의 고유세트를 지원하는 경우가 있습니다.

도입된 버젼:
JAXB1. 0
관련 항목:
JAXBContext , Unmarshaller , ValidationEventHandler , ValidationEvent , ValidationEventCollector

메소드의 개요
 ValidationEventHandler getEventHandler ()
          추천 되고 있지 않습니다.  since JAXB2. 0
 Object getProperty (String  name)
          추천 되고 있지 않습니다.  since JAXB2. 0
 void setEventHandler (ValidationEventHandler  handler)
          추천 되고 있지 않습니다.  since JAXB2. 0
 void setProperty (String  name, Object  value)
          추천 되고 있지 않습니다.  since JAXB2. 0
 boolean validate (Object  subrootObj)
          추천 되고 있지 않습니다.  since JAXB2. 0
 boolean validateRoot (Object  rootObj)
          추천 되고 있지 않습니다.  since JAXB2. 0
 

메소드의 상세

setEventHandler

void setEventHandler(ValidationEventHandler  handler)
                     throws JAXBException 
추천 되고 있지 않습니다.  since JAXB2. 0

어플리케이션이 검증 이벤트 핸들러를 등록할 수가 있습니다.

검증 이벤트 핸들러는,validate 를 호출하고 있는 도중에 검증 에러가 발생했을 경우, JAXB 프로바이더에 의해 불려 갑니다. 검증 메소드를 호출하기 전에 클라이언트 어플리케이션이 검증 이벤트 핸들러를 등록하고 있지 않는 경우, 검증 이벤트는 디폴트 이벤트 핸들러에 의해 처리됩니다. 디폴트 이벤트 핸들러는, 최초의 에러 또는 치명적인 에러의 발생 후에 검증 조작을 종료시킵니다.

이 메소드를 null 파라미터와 함께 호출했을 경우, Validator 는 디폴트 이벤트 핸들러에 되돌려집니다.

파라미터:
handler - 검증 이벤트 핸들러
예외:
JAXBException - 이벤트 핸들러의 설정중에 에러가 발생했을 경우

getEventHandler

ValidationEventHandler  getEventHandler()
                                       throws JAXBException 
추천 되고 있지 않습니다.  since JAXB2. 0

현재의 이벤트 핸들러, 또는, 그것이 설정되어 있지 않은 경우는 디폴트 이벤트 핸들러를 돌려줍니다.

반환값:
현재의 ValidationEventHandler, 또는, 그것이 설정되어 있지 않은 경우, 디폴트 이벤트 핸들러
예외:
JAXBException - 현재의 이벤트 핸들러의 취득중에 에러가 발생했을 경우

validate

boolean validate(Object  subrootObj)
                 throws JAXBException 
추천 되고 있지 않습니다.  since JAXB2. 0

subrootObj 로 시작되는 Java 컨텐츠 트리를 검증합니다.

클라이언트 어플리케이션은, 이 메소드를 사용해 실행시에 On Demand로 Java 컨텐츠 트리를 검증할 수가 있습니다. 이 메소드는, Java 컨텐츠 트리의 임의의 서브 트리를 검증하기 위해서 사용할 수 있습니다. 이 조작의 일부로서 글로벌 제약 체크는실행되지 않습니다 (ID/IDREF 제약 등).

파라미터:
subrootObj - 검증을 개시하는 객체
반환값:
subrootObj 를 루트로 하는 서브 트리가 유효한 경우, true. 그 이외의 경우, false
예외:
JAXBException - 검증중에 예상외의 문제가 발생했을 경우
ValidationException - ValidationEventHandlerhandleEvent 메소드로부터 false 가 반환되는지, 또는 ValidatorsubrootObj 를 루트로 하는 컨텐츠 트리를 검증할 수 없는 경우
IllegalArgumentException - subrootObj 파라미터가 null 의 경우

validateRoot

boolean validateRoot(Object  rootObj)
                     throws JAXBException 
추천 되고 있지 않습니다.  since JAXB2. 0

rootObj 를 루트로 하는 Java 컨텐츠 트리를 검증합니다.

클라이언트 어플리케이션은, 이 메소드를 사용해 실행시에 On Demand로 Java 컨텐츠 트리를 검증할 수가 있습니다. 이 메소드는, Java 컨텐츠 트리 전체를 검증할 경우에 사용됩니다. 이 조작의 일부로서 글로벌 제약 체크가실행됩니다 (ID/IDREF 제약 등).

파라미터:
rootObj - 검증을 개시하는 루트 객체
반환값:
rootObj 를 루트로 하는 트리가 유효한 경우, true. 그 이외의 경우, false
예외:
JAXBException - 검증중에 예상외의 문제가 발생했을 경우
ValidationException - ValidationEventHandlerhandleEvent 메소드로부터 false 가 반환되는지, 또는 ValidatorrootObj 를 루트로 하는 컨텐츠 트리를 검증할 수 없는 경우
IllegalArgumentException - rootObj 파라미터가 null 의 경우

setProperty

void setProperty(String  name,
                 Object  value)
                 throws PropertyException 
추천 되고 있지 않습니다.  since JAXB2. 0

Validator 의 기본이 되는 구현에 특정의 프로퍼티을 설정합니다. 이 메소드는, 먼저 말한 정의 끝난 표준 JAXB 프로퍼티 또는 프로바이더 고유의 프로퍼티의 1 개를 설정하는 목적에게만 사용할 수 있습니다. 미정도리의 프로퍼티을 설정하려고 했을 경우, PropertyException 가 throw 됩니다. 「지원되고 있는 프로퍼티」을 참조해 주세요.

파라미터:
name - 설정하는 프로퍼티의 이름. 이 값은, 정수 필드의 1 개인가 사용자 지정 캐릭터 라인을 사용해 지정할 수 있는
value - 설정하는 프로퍼티의 값
예외:
PropertyException - 주어진 프로퍼티 또는 값의 처리중에 에러가 발생했을 경우
IllegalArgumentException - name 파라미터가 null 의 경우

getProperty

Object  getProperty(String  name)
                   throws PropertyException 
추천 되고 있지 않습니다.  since JAXB2. 0

Validator 의 기본이 되는 구현의 특정의 프로퍼티을 가져옵니다. 이 메소드는, 먼저 말한 정의 끝난 표준 JAXB 프로퍼티 또는 프로바이더 고유의 프로퍼티의 1 개를 취득하는 목적에게만 사용할 수 있습니다. 미정도리의 프로퍼티을 취득하려고 했을 경우, PropertyException 가 throw 됩니다. 「지원되고 있는 프로퍼티」을 참조해 주세요.

파라미터:
name - 취득하는 프로퍼티의 이름
반환값:
요구된 프로퍼티의 값
예외:
PropertyException - 지정한 프로퍼티, 또는 프로퍼티명치의 취득중에 에러가 발생 했을 경우
IllegalArgumentException - name 파라미터가 null 의 경우

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