JavaTM Platform
Standard Ed. 6

javax.xml.validation
클래스 SchemaFactory

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


public abstract class SchemaFactory
extends Object

Schema 객체를 작성하기 위한 팩토리입니다. API 검증의 엔트리 포인트입니다.

SchemaFactory 는 schema 컴파일러입니다. schema의 외부 표현을 읽어내, 그것들을 검증을 위해서(때문에) 준비합니다.

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

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

schema 언어

이 스펙은 이름 공간 URI 를 사용해, schema 언어를 지정합니다. 다음의 겉(표)에, 이 스펙에 의해 정의된 값을 나타냅니다.  

스펙에 준거하기 위해서, 구현으로 지원할 필요가 있는 것은 W3C XML Schema 1.0 뿐입니다. 다만, 여기에 나타낸 그 외의 schema 언어를 지원하는 경우는, 이 스펙에 설명하는 관련의 동작에 따를 필요가 있습니다.

여기에 나타내지 않은 schema 언어에서는, 독자적인 URI 를 도입해, 그것들을 나타내는 것이 기대됩니다. SchemaFactory 클래스는 실행시에, 다른 schema 언어외의 구현을 찾아낼 수가 있습니다.

XML DTD 는, 구문 분석 프로세스에 강하게 연결시킬 수 있고 있어 구문 분석 프로세스에 큰 영향을 주기 (위해)때문에, DTD 검증을 구문 분석으로부터 독립한 프로세스로서 정의할 수 없습니다. 이 때문에, 이 스펙에서는, XML DTD 의 시멘틱스를 정의하지 않습니다. 이것은, 적절이라고 생각되는 방법에서의 구현을 금지하는 것이 아닙니다만, 이 인터페이스에 구현된 DTD 검증을, 반드시 XML 1.0 으로 정의되는 XML DTD 시멘틱스로부터 갈라 놓도록 해 주세요.

value language
XMLConstants.W3C_XML_SCHEMA_NS_URI ("http://www.w3.org/2001/XMLSchema") W3C XML Schema 1.0
XMLConstants.RELAXNG_NS_URI ("http://relaxng.org/ns/structure/1. 0") RELAX NG 1.0

도입된 버젼:
1.5

생성자 의 개요
protected SchemaFactory ()
          상속 클래스의 생성자 입니다.
 
메소드의 개요
abstract  ErrorHandler getErrorHandler ()
          이 SchemaFactory 로 설정된 현재 ErrorHandler 를 가져옵니다.
 boolean getFeature (String  name)
          기능 플래그의 값을 검색합니다.
 Object getProperty (String  name)
          프로퍼티치를 검색합니다.
abstract  LSResourceResolver getResourceResolver ()
          이 SchemaFactory 로 설정된 현재 LSResourceResolver 를 가져옵니다.
abstract  boolean isSchemaLanguageSupported (String  schemaLanguage)
          지정된 schema가 이 SchemaFactory 에 지원되고 있을까를 돌려줍니다.
static SchemaFactory newInstance (String  schemaLanguage)
          지정된 schema 언어를 지원하는 SchemaFactory 의 구현을 검색해, 그것을 돌려줍니다.
static SchemaFactory newInstance (String  schemaLanguage, String  factoryClassName, ClassLoader  classLoader)
          클래스명으로부터 SchemaFactory 의 새로운 인스턴스를 가져옵니다.
abstract  Schema newSchema ()
          특수한 Schema 객체를 작성합니다.
 Schema newSchema (File  schema)
          지정된 File 를 schema로서 구문 분석 해, 그것을 Schema 로서 돌려줍니다.
 Schema newSchema (Source  schema)
          지정된 소스를 schema로서 구문 분석 해, 그것을 schema로서 돌려줍니다.
abstract  Schema newSchema (Source [] schemas)
          지정된 소스를 schema로서 구문 분석 해, 그것을 schema로서 돌려줍니다.
 Schema newSchema (URL  schema)
          지정된 URL 를 schema로서 구문 분석 해, 그것을 Schema 로서 돌려줍니다.
abstract  void setErrorHandler (ErrorHandler  errorHandler)
          newSchema 메소드의 호출로 발생한 에러를 받도록(듯이) ErrorHandler 를 설정합니다.
 void setFeature (String  name, boolean value)
          이 SchemaFactory, 이 팩토리에 의해 작성된 Schema , 한층 더 그러한 Schema 에 의해 작성된 ValidatorValidatorHandler 의 기능을 설정합니다.
 void setProperty (String  name, Object  object)
          프로퍼티치를 설정합니다.
abstract  void setResourceResolver (LSResourceResolver  resourceResolver)
          schema의 구문 분석시에 자원 해결을 커스터마이즈 하도록(듯이) LSResourceResolver 를 설정합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

SchemaFactory

protected SchemaFactory()

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

 

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

 

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

메소드의 상세

newInstance

public static final SchemaFactory  newInstance(String  schemaLanguage)

지정된 schema 언어를 지원하는 SchemaFactory 의 구현을 검색해, 그것을 돌려줍니다.

 

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

  1. 시스템 프로퍼티「javax.xml.validation.SchemaFactory:schemaLanguage가 존재하는 (schemaLanguage 는 이 메소드의 파라미터) 경우, 그 값은 클래스명으로서 읽어내집니다. 이 메소드는, 클래스 로더를 사용해 이 클래스의 새로운 인스턴스를 작성을 시도해 성공했을 경우는 그것을 돌려줍니다.
  2. $java.home/lib/jaxp.properties 가 읽어내져 상기의 시스템 프로퍼티인 키에 관련지을 수 있었던 값이 검색됩니다. 값이 존재하면, 상기와 같이 값이 처리됩니다.
  3.  

    클래스 로더는, 자원 디렉토리 META-INF/services 내의 javax.xml.validation.SchemaFactory 에 일치하는 서비스 프로바이더의 프로바이더 구성 파일이 요구됩니다. 파일 형식과 구문 분석 규칙에 대해서는, JAR 파일의 스펙을 참조해 주세요. 각 서비스 프로바이더는, 다음의 메소드를 구현하고 있을 필요가 있습니다.

            isSchemaLanguageSupported(String schemaLanguage) 
         
    지정된 schema 언어를 지원하는 클래스 로더내에서 최초로 검출된 서비스 프로바이더가 돌려주어집니다.
  4. 플랫폼의 디폴트 SchemaFactory 는, 구현 고유의 방법으로 배치됩니다. W3C XML Schema 용의 플랫폼의 디폴트 SchemaFactory 가 있을 필요가 있습니다.
 

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

 

트러블 슈팅의 힌트

 

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

 http\://www.w3.org/2001/XMLSchema=org.acme.foo.XSSchemaFactory
 

파라미터:
schemaLanguage - 반환되는 SchemaFactory 가 이해한다 schema 언어를 지정한다. 지정할 수 있는 값에 대해서는 사용 가능한 schema 언어의 리스트를 참조
반환값:
SchemaFactory 의 새로운 인스턴스
예외:
IllegalArgumentException - 사용 가능한 schema 언어의 구현이 없는 경우
NullPointerException - schemaLanguage 파라미터가 null 의 경우
관련 항목:
newInstance(String schemaLanguage, String factoryClassName, ClassLoader classLoader)

newInstance

public static SchemaFactory  newInstance(String  schemaLanguage,
                                        String  factoryClassName,
                                        ClassLoader  classLoader)

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

트러블 슈팅의 힌트

 

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

 

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

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

파라미터:
schemaLanguage - 반환되는 SchemaFactory 가 이해한다 schema 언어를 지정한다. 지정할 수 있는 값에 대해서는 사용 가능한 schema 언어의 리스트를 참조
factoryClassName - javax.xml.validation.SchemaFactory 의 구현을 제공하는 완전 수식의 팩토리 클래스명
classLoader - 팩토리 클래스의 로드에 사용하는 ClassLoader. null 의 경우, 팩토리 클래스의 로드에는 현재의 Thread 의 문맥 classLoader 가 사용된다
반환값:
SchemaFactory 의 새로운 인스턴스
예외:
IllegalArgumentException - factoryClassNamenull 의 경우. 또는, 팩토리 클래스를 로드 및 인스턴스화할 수 없는 경우. 또는, 팩토리 클래스가 schemLanguage 파라미터로 지정된 schema 언어를 지원하지 않는 경우
NullPointerException - schemaLanguage 파라미터가 null 의 경우
도입된 버젼:
1.6
관련 항목:
newInstance(String schemaLanguage)

isSchemaLanguageSupported

public abstract boolean isSchemaLanguageSupported(String  schemaLanguage)

지정된 schema가 이 SchemaFactory 에 지원되고 있을까를 돌려줍니다.

파라미터:
schemaLanguage - 반환되는 SchemaFactory 가 이해하는 schema 언어를 지정한다. schemaLanguage유효한 schema 언어를 지정할 필요가 있다
반환값:
SchemaFactoryschemaLanguage 를 지원하고 있는 경우는 true, 그렇지 않은 경우는 false
예외:
NullPointerException - schemaLanguagenull 의 경우
IllegalArgumentException - schemaLanguage.length() == 0 또는 schemaLanguage유효한 schema 언어를 지정하지 않는 경우

getFeature

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

기능명은 완전 수식 URI 입니다. 기능명은 완전 수식 URI 입니다. SchemaFactory 는 기능명을 인식할 수 있습니다만, 일시적으로 그 값을 돌려줄 수 없습니다.  

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

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

setFeature

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

SchemaFactory, 이 팩토리에 의해 작성된 Schema , 한층 더 그러한 Schema 에 의해 작성된 ValidatorValidatorHandler 의 기능을 설정합니다.

 

구현시 및 개발시에는,newSchema() 에 의해 반환되는 특별한 Schema 객체의 처리 방법으로 특별히 주의하도록(듯이) 합니다. 예를 들어, 경우에 따라서는,SchemaFactory 와 클래스가, 다른 구현으로부터의 schema를 실제로 로드할 때,SchemaFactory 의 기능을 자동적으로 상속할 수 없는 것이 있습니다. 개발시에는, 시큐리티 처리등의 기능을 양쪽 모두의 장소에서 명시적으로 설정하도록 해 주세요.

 

기능명은 완전 수식 URI 입니다. 기능명은 완전 수식 URI 입니다. SchemaFactory 는 기능의 값을 표시할 수 있습니다만, 현재의 값을 변경할 수 없습니다.

 

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

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

setProperty

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

프로퍼티명은 완전 수식 URI 입니다. SchemaFactory 는 프로퍼티명을 인식할 수 있습니다만, 현재의 값을 변경할 수 없습니다.

 

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

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

getProperty

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

프로퍼티명은 완전 수식 URI 입니다. SchemaFactory 는 프로퍼티명을 인식할 수 있습니다만, 일시적으로 그 값을 돌려줄 수 없습니다.

 

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

 

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

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

setErrorHandler

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

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

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

Throwable (또는 그 상속 클래스의 인스턴스)가 ErrorHandler 로부터 throw 되면(자),newSchema 메소드의 호출 바탕으로는 같은 Throwable 객체가 throw 됩니다.

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

어플리케이션에서는 Schema 의 구문 분석 그 중에서 이 메소드를 호출할 수가 있습니다.

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
     }
 }
 

새로운 SchemaFactory 객체가 작성되면(자), 최초로 이 필드는 null 로 설정됩니다. 이 필드는, 이 SchemaFactory 로부터 작성된 Schema ,Validator , 또는 ValidatorHandler 에 상속되지 않습니다.

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

getErrorHandler

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

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

setResourceResolver

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

SchemaFactory 는, schema의 구문 분석중에 외부 자원의 장소를 확인할 필요가 있을 때 LSResourceResolver 를 사용합니다만, 「외부 자원의 검색」을 엄밀하게 구성하는 것은 schema 언어에 의해 다릅니다. 예를 들어, W3C XML Schema 에서는,<include> 또는 <import> 된 파일, 및 schema 파일로부터 참조된 DTD 등이 포함됩니다.

어플리케이션에서는 Schema 의 구문 분석 그 중에서 이 메소드를 호출할 수가 있습니다.

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

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

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

새로운 SchemaFactory 객체가 작성되면(자), 최초로 이 필드는 null 로 설정됩니다. 이 필드는, 이 SchemaFactory 로부터 작성된 Schema ,Validator , 또는 ValidatorHandler 에 상속되지 않습니다.

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

getResourceResolver

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

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

newSchema

public Schema  newSchema(Source  schema)
                 throws SAXException 

지정된 소스를 schema로서 구문 분석 해, 그것을 schema로서 돌려줍니다.

 

이것은 newSchema(Source[] schemas) 의 편리한 메소드입니다.

파라미터:
schema - schema를 나타내는 소스
반환값:
schema 의 구문 분석으로부터의 새로운 Schema
예외:
SAXException - 구문 분석시에 SAX 에러가 발생했을 경우
NullPointerException - schema 가 null 의 경우

newSchema

public Schema  newSchema(File  schema)
                 throws SAXException 

지정된 File 를 schema로서 구문 분석 해, 그것을 Schema 로서 돌려줍니다.

 

이것은 newSchema(Source schema) 의 편리한 메소드입니다.

파라미터:
schema - schema를 나타내는 파일
반환값:
schema 의 구문 분석으로부터의 새로운 Schema
예외:
SAXException - 구문 분석시에 SAX 에러가 발생했을 경우
NullPointerException - schema 가 null 의 경우

newSchema

public Schema  newSchema(URL  schema)
                 throws SAXException 

지정된 URL 를 schema로서 구문 분석 해, 그것을 Schema 로서 돌려줍니다.

 

이것은 newSchema(Source schema) 의 편리한 메소드입니다.

파라미터:
schema - schema를 나타내는 URL
반환값:
schema 의 구문 분석으로부터의 새로운 Schema
예외:
SAXException - 구문 분석시에 SAX 에러가 발생했을 경우
NullPointerException - schema 가 null 의 경우

newSchema

public abstract Schema  newSchema(Source [] schemas)
                          throws SAXException 
지정된 소스를 schema로서 구문 분석 해, 그것을 schema로서 돌려줍니다.

불려 가는 측은 모든 Source 를 읽어내, 그것들을 1 개의 schema에 결합합니다. 이 편성의 정확한 시멘틱스는, 이 SchemaFactory 객체가 작성된 schema 언어에 따라서 다릅니다.

ErrorHandler 가 설정되어 있는 경우, 불려 가는 측은 소스에 발견된 모든 에러를 핸들러에 보고합니다. 핸들러는 예외를 throw 하면(자), schema의 컴파일을 중단합니다. 그리고 같은 예외가 이 메소드로부터 throw 됩니다. 또, 에러가 핸들러에 보고된 뒤, 불려 가는 측은 에러를 throw 하는 것에 의한 이후의 처리를 중단할 수가 있습니다. 에러 핸들러가 설정되어 있는 경우는, 불려 가는 측이 소스에 발견된 최초의 에러를 throw 합니다.

W3C XML Schema 1.0

결과적으로 얻을 수 있는 schema에는, 지정된 소스로부터의 컴퍼넌트가 포함됩니다. 이것들 모든 소스를, schemaLocation 과 이름 공간의 적절한 값을 사용해, 다른 targetNamespace 를 가지는 고유의 컴퍼넌트를 가지지 않는 1 개의 schema 문서에 임포트 했을 경우에서도, 임포트 요소가 소스로서 같은 순서가 되어 있으면 같은 결과를 얻을 수 있습니다. XML Schema 권고의 섹션 4.2. 3 에, 이것에 관한 프로세서의 옵션이 기재되어 있습니다. 프로세서는 JAXP schema 소스와 XML schema의 임포트를 일관해 취급할 필요가 있습니다만, JAXP 준거의 퍼서 사이의 동작은 달라도 괜찮습니다. 특히, schemaLocation 로 제공되는 정보에 관계없이, 퍼서는 지정된 이름 공간의 최초의 <import > 이외를 모두 무시할 수 있습니다.

해석된 일련의 schema에, XML Schema 스펙의 섹션 5.1 에 나타내는 것 같은 에러가 포함되는 경우, 에러를 ErrorHandler 에 보고할 필요가 있습니다.

RELAX NG

 

RELAX NG 의 경우로 schemas.length! =1 때, 이 메소드는 UnsupportedOperationException 를 throw 할 필요가 있습니다.

파라미터:
schemas - 해석되는 입력. SAXSource , StreamSource , StAXSource , 및 DOMSource (을)를 인식하기 위해서 SchemaFactory 가 필요. 입력 schema는 XML 문서 또는 XML 요소인 것이 필요해 null 는 불가. 하위 호환성을 위해서(때문에), 문서와 요소 이외의 모든 것을 주고 받은 결과는 구현에 의존하고 있다. 구현은, 입력을 인식해 처리하는지, IllegalArgumentException 를 throw 할 필요가 있다
반환값:
항상 null 이외의 유효한 Schema 객체를 돌려준다. 에러가 보고되었을 경우, 반환된 Schema 객체가 의미를 가지는 것은 보증되지 않는다
예외:
SAXException - 지정된 입력의 처리시에 에러가 발견되었을 경우. ErrorHandler 가 설정되어 있는 경우, 에러는 최초로 그것들에 보고된다. setErrorHandler(ErrorHandler) 를 참조
NullPointerException - schemas 파라미터 자체가 null 인가, 배열내의 항목이 null 인 경우
IllegalArgumentException - 배열내의 항목이 이 메소드에 의해 인식되지 않는 경우
UnsupportedOperationException - schema 언어가 이 처리를 지원하고 있지 않는 경우

newSchema

public abstract Schema  newSchema()
                          throws SAXException 
특수한 Schema 객체를 작성합니다.  

반환되는 Schema 객체의 정확한 시멘틱스는, 이 SchemaFactory 가 작성된 schema 언어에 따라서 다릅니다.  

게다가 구현에서는 구현 고유의 프로퍼티 또는 기능을 사용해, 이 메소드의 시멘틱스를 변경할 수 있습니다.

 

구현시 및 개발시에는, 이 특수한 Schema 에 의한 SchemaFactory 의 기능 세트의 처리 방법으로 특별히 주의하도록(듯이) 합니다. 예를 들어, 경우에 따라서는,SchemaFactory 와 클래스가, 다른 구현으로부터의 schema를 실제로 로드할 때,SchemaFactory 의 기능을 자동적으로 상속할 수 없는 것이 있습니다. 개발시에는, 시큐리티 처리등의 기능을 양쪽 모두의 장소에서 명시적으로 설정하도록 해 주세요.

W3C XML Schema 1.0

XML Schema 의 경우, 이 메소드는 문서로 지정된 장소의 힌트를 사용해, 검증을 실행하는 Schema 객체를 작성합니다.

반환되는 Schema 객체는, 문서로 schema의 장소의 힌트의 같은 URL 를 참조하고 있는 경우, 그것들은 항상 같은 schema 문서에 해결되는 것으로 간주합니다. 이 상정에 의해, 구현에서는 schema 문서의 해석 결과를 재사용할 수 있기 (위해)때문에, 같은 schema에 대한 복수의 검증의 실행이 빨라집니다.

schema의 장소의 힌트를 사용하는 것으로, 서비스 방해 공격을 받기 쉬워질테니 주의해 주세요.

RELAX NG

RELAX NG 에서는 이 처리를 지원하고 있습니다.

반환값:
항상 null 이외의 유효한 Schema 객체를 돌려준다
예외:
UnsupportedOperationException - 이 처리가 불려 가는 측에야는 지원되어 있지 않은 경우
SAXException - 이 처리는 지원되고 있지만, 어떠한 이유에 의해 실패했을 경우

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