JavaTM Platform
Standard Ed. 6

javax.xml.parsers
클래스 SAXParserFactory

java.lang.Object 
  상위를 확장 javax.xml.parsers.SAXParserFactory


public abstract class SAXParserFactory
extends Object

어플리케이션이 SAX 베이스의 퍼서를 구성 및 취득해 XML 문서를 구문 분석 할 수 있도록(듯이) 하는 팩토리 API 를 정의합니다.


생성자 의 개요
protected SAXParserFactory ()
          newInstance() 를 강제적으로 사용하는 protected 생성자 입니다.
 
메소드의 개요
abstract  boolean getFeature (String  name)
          org.xml.sax.XMLReader 의 기본이 되는 구현으로 요구된 특정의 프로퍼티을 돌려줍니다.
 Schema getSchema ()
          setSchema(Schema schema) 메소드를 개입시켜 지정된 Schema 객체를 가져옵니다.
 boolean isNamespaceAware ()
          팩토리가 이름 공간을 인식하는 퍼서를 작성하도록(듯이) 설정되어 있는지 어떤지를 나타냅니다.
 boolean isValidating ()
          구문 분석시에 XML 컨텐츠를 검증하는 퍼서를 작성하도록(듯이) 팩토리가 설정되어 있는지 어떤지를 나타냅니다.
 boolean isXIncludeAware ()
          XInclude 처리 상태를 가져옵니다.
static SAXParserFactory newInstance ()
          SAXParserFactory 의 새로운 인스턴스를 가져옵니다.
static SAXParserFactory newInstance (String  factoryClassName, ClassLoader  classLoader)
          SAXParserFactory 의 새로운 인스턴스를 클래스명으로부터 가져옵니다.
abstract  SAXParser newSAXParser ()
          현재 설정되어 있는 팩토리 파라미터를 사용해 SAXParser 의 새로운 인스턴스를 작성합니다.
abstract  void setFeature (String  name, boolean value)
          org.xml.sax.XMLReader 의 기본이 되는 구현에 특정의 기능을 설정합니다.
 void setNamespaceAware (boolean awareness)
          이 팩토리로 작성된 퍼서가 XML 이름 공간을 지원하도록(듯이) 지정합니다.
 void setSchema (Schema  schema)
          이 팩토리로부터 작성된 퍼서에 의해 사용되는 Schema 를 설정합니다.
 void setValidating (boolean validating)
          이 팩토리로 작성된 퍼서가 구문 분석시에 문서의 타당성을 검증하도록(듯이) 지정합니다.
 void setXIncludeAware (boolean state)
          XInclude 처리 상태를 설정합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

SAXParserFactory

protected SAXParserFactory()

newInstance() 를 강제적으로 사용하는 protected 생성자 입니다.

메소드의 상세

newInstance

public static SAXParserFactory  newInstance()
SAXParserFactory 의 새로운 인스턴스를 가져옵니다. 이 static 메소드는 새로운 팩토리 인스턴스를 작성합니다. 이 메소드는 다음의 순서의 검색 순서로, 로드하는 SAXParserFactory 구현 클래스를 결정합니다. 어플리케이션이 SAXParserFactory 에의 참조를 취득하면(자), 팩토리를 사용해 퍼서의 인스턴스를 설정 및 취득할 수가 있습니다.

트러블 슈팅의 힌트

 

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

 

DocumentBuilder 의 로드에 문제가 있는 경우, 다음과 같이 합니다.

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

반환값:
SAXParserFactory 의 새로운 인스턴스
예외:
FactoryConfigurationError - 구현을 사용할 수 없는가 인스턴스화할 수 없는 경우

newInstance

public static SAXParserFactory  newInstance(String  factoryClassName,
                                           ClassLoader  classLoader)

SAXParserFactory 의 새로운 인스턴스를 클래스명으로부터 가져옵니다. 이 함수는, 클래스 패스에 복수의 프로바이더가 있는 경우에 편리합니다. 어느 프로바이더가 로드 되는지를 지정할 수 있기 (위해)때문에, 어플리케이션을 한층 더 제어할 수 있습니다.

 

어플리케이션이 SAXParserFactory 에의 참조를 취득하면(자), 팩토리를 사용해 퍼서의 인스턴스를 설정 및 취득할 수가 있습니다.

트러블 슈팅의 힌트

 

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

 

문제가 있는 경우, 다음과 같이 합니다.

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

파라미터:
factoryClassName - javax.xml.parsers.SAXParserFactory 의 구현을 제공하는, 완전 수식의 팩토리 클래스명입니다.
classLoader - 팩토리 클래스의 로드에 사용되는 ClassLoader. null 의 경우는 현재의 Thread 의 문맥 classLoader 가, 팩토리 클래스의 로드에 사용됩니다.
반환값:
SAXParserFactory 의 새로운 인스턴스
예외:
FactoryConfigurationError - factoryClassNamenull, 또는, 팩토리 클래스가 로드, 인스턴스화할 수 없는 경우.
도입된 버젼:
1.6
관련 항목:
newInstance()

newSAXParser

public abstract SAXParser  newSAXParser()
                                throws ParserConfigurationException ,
                                       SAXException 

현재 설정되어 있는 팩토리 파라미터를 사용해 SAXParser 의 새로운 인스턴스를 작성합니다.

반환값:
SAXParser 의 새로운 인스턴스
예외:
ParserConfigurationException - 요구된 구성을 채운다 퍼서를 생성할 수 없는 경우
SAXException - SAX 에러의 경우

setNamespaceAware

public void setNamespaceAware(boolean awareness)
이 팩토리로 작성된 퍼서가 XML 이름 공간을 지원하도록(듯이) 지정합니다. 디폴트에서는, 이 값은 false 로 설정됩니다.

파라미터:
awareness - 이 팩토리로 작성된 퍼서가 XML 이름 공간을 지원하는 경우는 true, 그렇지 않은 경우는 false

setValidating

public void setValidating(boolean validating)
이 팩토리로 작성된 퍼서가 구문 분석시에 문서의 타당성을 검증하도록(듯이) 지정합니다. 디폴트에서는, 이 값은 false 로 설정됩니다.

여기서 말하는 「검증」이란, XML 권고로 정의되고 있는타당성을 검증하는 퍼서라고 하는 의미입니다. 즉, 실질적으로는 DTD 검증을 제어할 뿐(만큼)이라고 하는 것입니다. 다만, JAXP 1.2 에 정의되고 있는 종래의 2 개의 프로퍼티을 제외합니다.

DTD 는 아니고, W3C XML Schema 또는 RELAX NG 등이 새로운 schema 언어를 사용하는 경우는,setValidating(boolean) 메소드를 false 로 해 퍼서를 타당성을 검증하지 않는 설정으로 하고 나서,setSchema(Schema) 메소드로 schema를 퍼서에게 관련짓습니다.

파라미터:
validating - 이 팩토리로 작성된 퍼서가 구문 분석시에 문서의 타당성을 검증하는 경우는 true, 그렇지 않은 경우는 false

isNamespaceAware

public boolean isNamespaceAware()
팩토리가 이름 공간을 인식하는 퍼서를 작성하도록(듯이) 설정되어 있는지 어떤지를 나타냅니다.

반환값:
팩토리가 이름 공간을 인식하는 퍼서를 작성하도록(듯이) 설정되어 있는 경우는 true, 그렇지 않은 경우는 false

isValidating

public boolean isValidating()
구문 분석시에 XML 컨텐츠를 검증하는 퍼서를 작성하도록(듯이) 팩토리가 설정되어 있는지 어떤지를 나타냅니다.

반환값:
구문 분석시에 XML 컨텐츠를 검증하는 퍼서를 작성하도록(듯이) 팩토리가 설정되어 있는 경우는 true, 그렇지 않은 경우는 false

setFeature

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

org.xml.sax.XMLReader 의 기본이 되는 구현에 특정의 기능을 설정합니다. 코어 기능과 코어 프로퍼티의 리스트에 대해서는,http://www.saxproject.org/ 의 사이트를 참조해 주세요.

 

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

파라미터:
name - 설정되는 기능의 이름
value - 설정되는 기능의 값
예외:
ParserConfigurationException - 요구된 구성을 채운다 퍼서를 생성할 수 없는 경우
SAXNotRecognizedException - 기본이 되는 XMLReader 가 프로퍼티명을 인식하지 않는 경우
SAXNotSupportedException - 기본이 되는 XMLReader 는 프로퍼티명을 인식하지만, 그 프로퍼티을 지원하지 않는다 경우
NullPointerException - name 파라미터가 null 의 경우
관련 항목:
XMLReader.setFeature(java.lang.String, boolean)

getFeature

public abstract boolean getFeature(String  name)
                            throws ParserConfigurationException ,
                                   SAXNotRecognizedException ,
                                   SAXNotSupportedException 

org.xml.sax.XMLReader 의 기본이 되는 구현으로 요구된 특정의 프로퍼티을 돌려줍니다.

파라미터:
name - 꺼내지는 프로퍼티의 이름
반환값:
요구된 프로퍼티의 값
예외:
ParserConfigurationException - 요구된 구성을 채우는 퍼서를 생성할 수 없는 경우
SAXNotRecognizedException - 기본이 되는 XMLReader 가 프로퍼티명을 인식하지 않는 경우
SAXNotSupportedException - 기본이 되는 XMLReader 는 프로퍼티명을 인식하지만, 그 프로퍼티을 지원하지 않는 경우
관련 항목:
XMLReader.getProperty(java.lang.String)

getSchema

public Schema  getSchema()
setSchema(Schema schema) 메소드를 개입시켜 지정된 Schema 객체를 가져옵니다.

반환값:
setSchema(Schema) 메소드를 개입시켜 마지막에 설정된 Schema 객체, 또는 SAXParserFactory 가 작성되고 나서 메소드가 불려 가지 않은 경우는 null
예외:
UnsupportedOperationException - 구현이 이 메소드를 오버라이드(override) 하지 않는 경우
도입된 버젼:
1.5

setSchema

public void setSchema(Schema  schema)

이 팩토리로부터 작성된 퍼서에 의해 사용되는 Schema 를 설정합니다.

 

발리 데이터에 의해 에러가 검출되면(자), 퍼서 자신이 에러를 검출했을 경우와 같게, 퍼서가 그 에러를 사용자 지정 DOMErrorHandler 에 보고합니다.

 

발리 데이터에 의해 경고, 에러, 중대한 에러가 검출되면(자), 퍼서는 자신이 이러한 에러를 검출했을 경우와 같게 이것들을 처리할 필요가 있습니다. 즉, 사용자 지정 ErrorHandler 가 설정되어 있는 경우는, 이러한 에러를 받아, 그렇지 않은 경우는 구현 고유의 디폴트의 에러 처리 규칙에 따라 처리될 필요가 있습니다.  

발리 데이터는 SAX 이벤트 스트림을 변경하는 일이 있어 (예를 들어, 문서로부터 없어지고 있던 디폴트 값를 추가하는 등), 퍼서는 이러한 변경된 이벤트 스트림을 어플리케이션이 확실히 받도록(듯이) 하는 역할을 가집니다.

 

최초로,Schema 로서 null 가 설정됩니다.

 

이 처리는 isValidating() 메소드가 false 를 돌려주었을 경우에서도 유효합니다.  

http://java.sun.com/xml/jaxp/properties/schemaSource 프로퍼티 또는 http://java.sun.com/xml/jaxp/properties/schemaLanguage 프로퍼티을 null 이외 Schema 객체와 함께 사용하면(자) 에러가 됩니다. 이러한 설정에서는, 이러한 프로퍼티이 SAXParser 로 설정되어 있으면(자) SAXException 예외가 발생합니다.

구현시의 주의

퍼서는, 모든 Schema 구현으로 동작할 필요가 있습니다. 다만, 퍼서 및 schema가 스펙에 기재되어 있는 결과를 내는 한, 구현 고유의 커스텀 기구를 사용할 수 있습니다.

파라미터:
schema - 사용하는 Schema 또는 schema를 삭제하는 경우는 null
예외:
UnsupportedOperationException - 구현이 이 메소드를 오버라이드(override) 하지 않는 경우
도입된 버젼:
1.5

setXIncludeAware

public void setXIncludeAware(boolean state)

XInclude 처리 상태를 설정합니다.

 

문서 인스턴스에 XInclude 마크 업이 발견되었을 경우,「XML Inclusions (XInclude) Version 1.0」으로 지정되고 있는 대로 처리할 필요가 있습니다.

 

XInclude 처리의 디폴트는 false 로 설정됩니다.

파라미터:
state - XInclude 처리를 true 또는 false 로 설정한다
예외:
UnsupportedOperationException - 구현이 이 메소드를 오버라이드(override) 하지 않는 경우
도입된 버젼:
1.5

isXIncludeAware

public boolean isXIncludeAware()

XInclude 처리 상태를 가져옵니다.

반환값:
XInclude 처리의 현재 상태
예외:
UnsupportedOperationException - 구현이 이 메소드를 오버라이드(override) 하지 않는 경우
도입된 버젼:
1.5

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