JavaTM Platform
Standard Ed. 6

javax.xml.validation
클래스 Validator

java.lang.Object 
  상위를 확장 javax.xml.validation.Validator


public abstract class Validator
extends Object

Schema 와 조합해 XML 문서를 체크하는 프로세서입니다.

발리 데이터 객체는 thread에 대해서 안전하지 않고, 재입 불가능합니다. 즉, 어플리케이션측에서, 어떠한 경우에서도 1 개 Validator 객체가 복수의 thread로부터 사용되는 것이 없게 할 필요가 있습니다. 또,validate 메소드가 불려 가고 있는 동안, 어플리케이션은 재귀적으로 validate 메소드를 호출할 수가 없습니다.  

도입된 버젼:
1.5

생성자 의 개요
protected Validator ()
          상속 클래스의 생성자 입니다.
 
메소드의 개요
abstract  ErrorHandler getErrorHandler ()
          이 Validator 로 설정된 현재 ErrorHandler 를 가져옵니다.
 boolean getFeature (String  name)
          기능 플래그의 값을 검색합니다.
 Object getProperty (String  name)
          프로퍼티치를 검색합니다.
abstract  LSResourceResolver getResourceResolver ()
          이 Validator 로 설정된 현재 LSResourceResolver 를 가져옵니다.
abstract  void reset ()
          이 Validator 를 원의 설정에 리셋 합니다.
abstract  void setErrorHandler (ErrorHandler  errorHandler)
          validate 메소드의 호출로 발생한 에러를 받도록(듯이) ErrorHandler 를 설정합니다.
 void setFeature (String  name, boolean value)
          기능 플래그의 값을 설정합니다.
 void setProperty (String  name, Object  object)
          프로퍼티치를 설정합니다.
abstract  void setResourceResolver (LSResourceResolver  resourceResolver)
          검증시의 자원 해결을 커스터마이즈 하도록(듯이) LSResourceResolver 를 설정합니다.
 void validate (Source  source)
          지정된 입력을 검증합니다.
abstract  void validate (Source  source, Result  result)
          지정된 입력을 검증해, 추가된 검증 결과가 지정된 출력에 보냅니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

Validator

protected Validator()
상속 클래스의 생성자 입니다.  

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

 

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

메소드의 상세

reset

public abstract void reset()

Validator 를 원의 설정에 리셋 합니다.

 

Validator 는,Schema.newValidator() 로 작성된 시점 상태에 리셋 됩니다. reset() 는, 기존의 Validator 의 재사용을 허가하도록(듯이) 설정되어 있기 (위해)때문에, 새로운 Validator 의 작성에 관련하는 자원을 절약할 수 있습니다.

 

Validator 를 리셋 했을 경우, 같은 LSResourceResolver 또는 ErrorHandler Object 를 가지는 것은 보증되지 않습니다. 예를 들어,Object.equals(Object obj) 등입니다. 기능적으로 같은 LSResourceResolverErrorHandler 를 가지는 것은 보증됩니다.


validate

public void validate(Source  source)
              throws SAXException ,
                     IOException 
지정된 입력을 검증합니다.  

이것은 nullresult 를 가지는 validate(Source source, Result result) 의 편리한 메소드입니다.

파라미터:
source - 검증되는 XML. XML 문서 또는 XML 요소인 것이 필요해 null 는 불가. 하위 호환성을 위해서(때문에), 문서와 요소 이외의 모든 검증 결과는 구현에 의존하고 있다. 구현은, 입력을 인식해 처리하는지, IllegalArgumentException 를 throw 할 필요가 있다
예외:
IllegalArgumentException - Source 하지만 검증을 구현할 수 없는 XML 아티팩트인 경우 (처리 명령 등)
SAXException - ErrorHandlerSAXException 를 throw 했을 경우, 또는 치명적 에러가 검출되고 ErrorHandler 가 정상적으로 복귀했다 경우
IOException - 발리 데이터가 SAXSource 를 처리중에서, 기본이 되는 XMLReaderIOException 를 throw 했을 경우
NullPointerException - sourcenull 의 경우
관련 항목:
validate(Source source, Result result)

validate

public abstract void validate(Source  source,
                              Result  result)
                       throws SAXException ,
                              IOException 

지정된 입력을 검증해, 추가된 검증 결과가 지정된 출력에 보냅니다.

 

이 메소드는 받아들이는 Source /Result 의 형태에 관해서, 다음의 제약을 마련하고 있습니다.

받아들이는 Source / Result
StreamSource SAXSource DOMSource StAXSource
null OK OK OK OK
StreamResult OK IllegalArgumentException IllegalArgumentException IllegalArgumentException
SAXResult IllegalArgumentException OK IllegalArgumentException IllegalArgumentException
DOMResult IllegalArgumentException IllegalArgumentException OK IllegalArgumentException
StAXResult IllegalArgumentException IllegalArgumentException IllegalArgumentException OK
 

1 개의 Source 를 다른 종류의 Result 에 검증하려면 , 항등변환을 사용합니다 (TransformerFactory.newTransformer() 를 참조).

 

검증으로 발견된 에러는 지정된 ErrorHandler 에 보내집니다.

 

문서가 유효하다, 또는 문서에 얼마인가의 에러가 있지만, 그것들은 모두 치명적이지 않고,ErrorHandler 로 예외가 throw되어 있지 않은 경우, 메소드는 정상적으로 복귀합니다.

파라미터:
source - 검증되는 XML. XML 문서 또는 XML 요소인 것이 필요해 null 는 불가. 하위 호환성을 위해서(때문에), 문서와 요소 이외의 모든 검증 결과는 구현에 의존하고 있다. 구현은, 입력을 인식해 처리하는지, IllegalArgumentException 를 throw 할 필요가 있는
result - 확장된 가능성이 있는 XML 를 받는 Result 객체. 호출측에서 필요가 없으면, 이 파라미터는 null 도 가능. DOMResult 가 사용되어 발리 데이터가 DOMSource 로부터 DOMResult 에 같은 DOM 노드를 건네줄 뿐(만큼) 때는 (source.getNode() ==result.getNode() 의 경우), DOM 트리 전체가 카피되는지, 소스로 지정된 노드가 변경되는 일이 있다
예외:
IllegalArgumentException - Result 의 형태가 Source 의 형태와 일치하지 않는 경우, 또는 Source 하지만 검증을 구현할 수 없는 XML 아티팩트인 경우 (처리 명령 등)
SAXException - ErrorHandlerSAXException 를 throw 했을 경우, 또는 치명적 에러가 발견되고 ErrorHandler 가 정상적으로 복귀했다 경우
IOException - 발리 데이터가 SAXSource 를 처리중에서, 기본이 되는 XMLReaderIOException 를 throw 했을 경우
NullPointerException - source 파라미터가 null 의 경우
관련 항목:
validate(Source source)

setErrorHandler

public abstract void setErrorHandler(ErrorHandler  errorHandler)
validate 메소드의 호출로 발생한 에러를 받도록(듯이) ErrorHandler 를 설정합니다.

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

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

ThrowableErrorHandler 로부터 throw 되면(자),validate 메소드의 호출 바탕으로는 같은 Throwable 객체가 throw 됩니다.

Validator 는, 최초로 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
     }
 }
 

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

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

getErrorHandler

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

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

setResourceResolver

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

Validator 는, 검증중에 외부 자원의 장소를 확인할 필요가 있을 때 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 하면(자),Validator 는 구문 분석을 이상종료(ABEND) 해,validate 메소드의 호출원래는 같은 RuntimeException 를 받습니다.

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

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

getResourceResolver

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

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

getFeature

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

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

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

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

setFeature

public void setFeature(String  name,
                       boolean value)
                throws SAXNotRecognizedException ,
                       SAXNotSupportedException 
기능 플래그의 값을 설정합니다.

기능을 사용해,Validator 가 schema를 구문 분석 하는 방법을 제어할 수 있습니다만,Validator 는 특정의 기능명을 인식할 필요는 없습니다.

 

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

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

setProperty

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

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

 

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

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

getProperty

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

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

 

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

 

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

파라미터:
name - 프로퍼티명. null 이외의 완전 수식 URI 로 나타내진다
반환값:
현재의 프로퍼티치
예외:
SAXNotRecognizedException - 프로퍼티의 값을 할당할 수 없는, 또는 취득할 수 없는 경우
SAXNotSupportedException - XMLReader 가 하지만 프로퍼티명을 인식하는 것만으로, 현시점에서는 그 값을 판단할 수 없는 경우
NullPointerException - name 파라미터가 null 의 경우
관련 항목:
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 도 참조해 주세요.