JavaTM Platform
Standard Ed. 6

javax.xml.xpath
클래스 XPathFactory

java.lang.Object 
  상위를 확장 javax.xml.xpath.XPathFactory


public abstract class XPathFactory
extends Object

XPathFactory 인스턴스를 사용해,XPath 객체를 작성할 수 있습니다.

검색 기구에 대해서는,newInstance(String uri) 를 참조해 주세요.

 

XPathFactory 클래스는 thread에 대해서 안전하지는 않습니다. 즉, 어플리케이션측에서, 어떠한 경우도 XPathFactory 객체를 사용하는 thread가 1 개 뿐이도록(듯이) 할 필요가 있습니다. 구현에서는, 메소드에 synchronized 의 마크를 붙여, 장해가 있는 클라이언트로부터 보호하는 것을 추천합니다.  

XPathFactory 는 재입 불가능합니다. newInstance 메소드의 1 개가 불려 가고 있을 때, 어플리케이션은, 같은 thread로부터에서 만나도,newInstance 메소드를 재귀적으로 호출할 수 없습니다.

도입된 버젼:
1.5

필드의 개요
static String DEFAULT_OBJECT_MODEL_URI
          디폴트의 객체 모델 URI 입니다.
static String DEFAULT_PROPERTY_NAME
          JAXP 스펙에 따른 디폴트의 프로퍼티명입니다.
 
생성자 의 개요
protected XPathFactory ()
          newInstance() ,newInstance(String uri) , 또는 newInstance(String uri, String factoryClassName, ClassLoader classLoader) 로서 protected 생성자 을 사용해,XPathFactory 의 새로운 인스턴스를 작성할 필요가 있습니다.
 
메소드의 개요
abstract  boolean getFeature (String  name)
          이름을 붙일 수 있었던 기능 상태를 가져옵니다.
abstract  boolean isObjectModelSupported (String  objectModel)
          지정된 객체 모델이 이 XPathFactory 에 지원되고 있을까를 돌려줍니다.
static XPathFactory newInstance ()
          디폴트의 객체 모델,DEFAULT_OBJECT_MODEL_URI 를 사용해, 새로운 XPathFactory 인스턴스를 가져옵니다.
static XPathFactory newInstance (String  uri)
          지정된 객체 모델을 사용해, 새로운 XPathFactory 인스턴스를 가져옵니다.
static XPathFactory newInstance (String  uri, String  factoryClassName, ClassLoader  classLoader)
          팩토리 클래스명으로부터 XPathFactory 의 새로운 인스턴스를 가져옵니다.
abstract  XPath newXPath ()
          XPathFactory 가 인스턴스화 되었을 때에 특정된 기본이 되는 객체 모델을 사용해, 새로운 XPath 를 돌려줍니다.
abstract  void setFeature (String  name, boolean value)
          이 팩토리에 의해 생성된 XPathFactoryXPath 의 기능을 설정합니다.
abstract  void setXPathFunctionResolver (XPathFunctionResolver  resolver)
          디폴트의 함수 리절버를 설정합니다.
abstract  void setXPathVariableResolver (XPathVariableResolver  resolver)
          디폴트의 변수 리절버를 설정합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

DEFAULT_PROPERTY_NAME

public static final String  DEFAULT_PROPERTY_NAME

JAXP 스펙에 따른 디폴트의 프로퍼티명입니다.

관련 항목:
정수 필드치

DEFAULT_OBJECT_MODEL_URI

public static final String  DEFAULT_OBJECT_MODEL_URI

디폴트의 객체 모델 URI 입니다.

관련 항목:
정수 필드치
생성자 의 상세

XPathFactory

protected XPathFactory()

newInstance() ,newInstance(String uri) , 또는 newInstance(String uri, String factoryClassName, ClassLoader classLoader) 로서 protected 생성자 을 사용해,XPathFactory 의 새로운 인스턴스를 작성할 필요가 있습니다.

메소드의 상세

newInstance

public static final XPathFactory  newInstance()

디폴트의 객체 모델,DEFAULT_OBJECT_MODEL_URI 를 사용해, 새로운 XPathFactory 인스턴스를 가져옵니다.

 

이 메소드는, 기능적으로는 다음과 동등합니다.

   newInstance(DEFAULT_OBJECT_MODEL_URI)
 
 

W3C DOM 의 구현을 항상 사용할 수 있기 (위해)때문에, 이 메소드가 실패할 것은 없습니다.

반환값:
XPathFactory 의 인스턴스
예외:
RuntimeException - 디폴트의 객체 모델에 대한다 XPathFactory 의 작성시에 에러가 발생했을 경우

newInstance

public static final XPathFactory  newInstance(String  uri)
                                      throws XPathFactoryConfigurationException 

지정된 객체 모델을 사용해, 새로운 XPathFactory 인스턴스를 가져옵니다.

 

XPathFactory 객체를 검색하는 경우, 이 메소드는 「클래스 로더」가 문맥 클래스 로더를 참조하는 이하의 차례로, 다음의 장소를 조사합니다.

  1. 시스템 프로퍼티 DEFAULT_PROPERTY_NAME + :uri 가 존재해, uri 가 이 메소드의 파라미터인 경우, 그 값은 클래스명으로서 읽어내진다. 이 메소드는, 클래스 로더를 사용해 이 클래스의 새로운 인스턴스를 작성을 시도해 성공했을 경우는 그것을 돌려준다
  2. ${java.home}/lib/jaxp.properties 가 읽어내져 상기의 시스템 프로퍼티인 키에 관련지을 수 있었던 값이 검색된다. 값이 존재하면, 상기와 같이 값이 처리된다
  3. 클래스 로더는, 자원 디렉토리 META-INF/services 내의 jjavax.xml.xpath.XPathFactory 에 일치하는 서비스 프로바이더의 프로바이더 구성 파일이 요구됩니다. 파일 형식과 구문 분석 규칙에 대해서는, JAR 파일의 스펙을 참조해 주세요. 각 서비스 프로바이더는, 다음의 메소드를 구현하고 있을 필요가 있습니다.
           isObjectModelSupported(String objectModel) 
         
    지정된 객체 모델을 지원하는 클래스 로더내에서 최초로 검출된 서비스 프로바이더가 돌려주어집니다.
  4. 플랫폼의 디폴트 XPathFactory 는, 구현 고유의 방법으로 배치된다. W3C DOM용의 플랫폼의 디폴트 XPathFactory, 즉 DEFAULT_OBJECT_MODEL_URI 가 있을 필요가 있습니다.
 

모든 것이 실패했을 경우,XPathFactoryConfigurationException 가 throw 됩니다.

 

트러블 슈팅의 힌트

 

프로퍼티 파일이 어떻게 구문 분석 될까에 대해서는,Properties.load(java.io.InputStream) 를 참조해 주세요. 특히, 구두점 「:」은, 프로퍼티 파일내에서 이스케이프 될 필요가 있기 (위해)때문에, URI 가 적절히 이스케이프 되고 있는 것을 확인해 주세요. 다음에 예를 나타냅니다.

   http\://java.sun.com/jaxp/xpath/dom=org.acme.DomXPathFactory
 

파라미터:
uri - 기본이 되는 객체 모델을 식별한다. 스펙은, URI DEFAULT_OBJECT_MODEL_URI , W3C DOM 의 http://java.sun.com/jaxp/xpath/dom, org.w3c.dom 패키지만을 정의해, 구현은 다른 객체 모델의 URI 를 자유롭게 도입 가능
반환값:
XPathFactory 의 인스턴스
예외:
XPathFactoryConfigurationException - 지정된 객체 모델을 사용할 수 없는 경우
NullPointerException - urinull 의 경우
IllegalArgumentException - urinull 의 경우 또는 uri.length() == 0 의 경우

newInstance

public static XPathFactory  newInstance(String  uri,
                                       String  factoryClassName,
                                       ClassLoader  classLoader)
                                throws XPathFactoryConfigurationException 

팩토리 클래스명으로부터 XPathFactory 의 새로운 인스턴스를 가져옵니다. 지정된 팩토리 클래스가 지정된 객체 모델을 지원하는 경우,XPathFactory 가 돌려주어집니다. 이 기능은, classpath 에 복수의 프로바이더가 존재하는 경우에 편리합니다. 로드하는 프로바이더를 지정할 수 있으므로, 어플리케이션으로 상세하게 제어할 수 있게 됩니다.

트러블 슈팅의 힌트

 

jaxp.debug 시스템 프로퍼티을 설정하면(자), 이 메소드는 실행중의 처리나 검색하고 있는 장소에 관한 대량의 디버그 메세지를 System.err 에 출력합니다.

 

문제가 있는 경우는 다음의 커멘드를 시험해 주세요.

 java -Djaxp.debug=1 YourProgram ....
 

파라미터:
uri - 기본이 되는 객체 모델을 식별한다. 스펙은, URI DEFAULT_OBJECT_MODEL_URI , W3C DOM 의 http://java.sun.com/jaxp/xpath/dom, org.w3c.dom 패키지만을 정의해, 구현은 다른 객체 모델의 URI 를 자유롭게 도입 가능
factoryClassName - javax.xml.xpath.XPathFactory 의 구현을 제공하는 완전 수식의 팩토리 클래스명
classLoader - 팩토리 클래스의 로드에 사용하는 ClassLoader. null 의 경우, 팩토리 클래스의 로드에는 현재의 Thread 의 문맥 classLoader 가 사용된다
반환값:
XPathFactory 의 새로운 인스턴스
예외:
XPathFactoryConfigurationException - factoryClassNamenull 의 경우. 또는, 팩토리 클래스를 로드 및 인스턴스화할 수 없는 경우. 또는, 팩토리 클래스가 uri 파라미터로 지정된 객체 모델을 지원하지 않는 경우
NullPointerException - urinull 의 경우
IllegalArgumentException - urinull 의 경우 또는 uri.length() == 0 의 경우
도입된 버젼:
1.6
관련 항목:
newInstance() , newInstance(String uri)

isObjectModelSupported

public abstract boolean isObjectModelSupported(String  objectModel)

지정된 객체 모델이 이 XPathFactory 에 지원되고 있을까를 돌려줍니다.

파라미터:
objectModel - 반환된 XPathFactory 를 인식하는 객체 모델을 지정한다
반환값:
XPathFactoryobjectModel 를 지원하고 있는 경우는 true, 그렇지 않은 경우는 false
예외:
NullPointerException - objectModelnull 의 경우
IllegalArgumentException - objectModel.length() == 0 의 경우

setFeature

public abstract void setFeature(String  name,
                                boolean value)
                         throws XPathFactoryConfigurationException 

이 팩토리에 의해 생성된 XPathFactoryXPath 의 기능을 설정합니다.

기능명은 완전 수식 URI 입니다. 구현이 독자적인 기능을 정의할 수도 있습니다. 생성하는 XPathFactory 또는 XPath 가 그 기능을 지원할 수 없는 경우는,XPathFactoryConfigurationException 가 throw 됩니다. XPathFactory 는 기능의 값을 표시할 수 있습니다만, 그 상태를 변경할 수 없습니다.

구현은 모두,XMLConstants.FEATURE_SECURE_PROCESSING 기능을 지원하고 있을 필요가 있습니다. 기능이 true 의 경우는, 외부 함수를 참조하면(자) 에러가 됩니다. 이러한 경우, 구현은 XPathFunctionResolver 를 호출할 수 없기 때문에,XPathFunctionException 를 throw 합니다.

파라미터:
name - 기능명
value - 기능 상태가 true 인가 false 인가
예외:
XPathFactoryConfigurationException - 이 XPathFactory 또는 거기에 따라 작성되는 XPath 가 이 기능을 지원할 수 없는 경우
NullPointerException - namenull 의 경우

getFeature

public abstract boolean getFeature(String  name)
                            throws XPathFactoryConfigurationException 

이름을 붙일 수 있었던 기능 상태를 가져옵니다.

기능명은 완전 수식 URI 입니다. 구현이 독자적인 기능을 정의할 수도 있습니다. 생성하는 XPathFactory 또는 XPath 가 그 기능을 지원할 수 없는 경우는,XPathFactoryConfigurationException 가 throw 됩니다. XPathFactory 는 기능의 값을 표시할 수 있습니다만, 그 상태를 변경할 수 없습니다.

파라미터:
name - 기능명
반환값:
이름을 붙일 수 있었던 기능 상태
예외:
XPathFactoryConfigurationException - 이 XPathFactory 또는 거기에 따라 작성되는 XPath 가 이 기능을 지원할 수 없는 경우
NullPointerException - namenull 의 경우

setXPathVariableResolver

public abstract void setXPathVariableResolver(XPathVariableResolver  resolver)

디폴트의 변수 리절버를 설정합니다.

 

이 팩토리로 구축된 XPath 객체는, 디폴트로 지정된 리절버를 사용합니다.

 

resolvernull 의 경우,NullPointerException 가 throw 됩니다.

파라미터:
resolver - 변수 리절버.
예외:
NullPointerException - resolvernull 의 경우

setXPathFunctionResolver

public abstract void setXPathFunctionResolver(XPathFunctionResolver  resolver)

디폴트의 함수 리절버를 설정합니다.

 

이 팩토리로 구축된 XPath 객체는, 디폴트로 지정된 리절버를 사용합니다.

 

resolvernull 의 경우,NullPointerException 가 throw 됩니다.

파라미터:
resolver - XPath 함수 리절버
예외:
NullPointerException - resolvernull 의 경우

newXPath

public abstract XPath  newXPath()

XPathFactory 가 인스턴스화 되었을 때에 특정된 기본이 되는 객체 모델을 사용해, 새로운 XPath 를 돌려줍니다.

반환값:
XPath 의 새로운 인스턴스

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