JavaTM Platform
Standard Ed. 6

javax.xml.bind
클래스 Binder<XmlNode>

java.lang.Object 
  상위를 확장 javax.xml.bind.Binder<XmlNode>


public abstract class Binder<XmlNode>
extends Object

같은 XML 문서를 표현하는, XML 정보 세트 노드와 JAXB 객체의 동기를 가능하게 합니다.

이 클래스의 인스턴스는, 정보 세트 보관 유지 뷰의 XML 노드와 XML 문서의 JAXB 표현동안이 관련짓고를 보관 유지합니다. 2 개의 뷰간의 네비게이션은,getXMLNode(Object)getJAXBNode(Object) 메소드에 의해 제공됩니다.

한편의 뷰가 변경되지 않고 그대로의 경우, 정보 세트 보관 유지 뷰 또는 문서의 JAXB 표현의 어느 쪽인지 한편을 변경할 수가 있습니다. Binder 에서는,updateXML(Object, Object) 또는 updateJAXB(Object) 의 적절한 Binder 갱신 메소드를 사용해, 한편의 뷰에의 변경이 한편의 뷰에 반영되도록(듯이) 동기를 취할 수가 있습니다.

다음에, 일반적인 사용 시나리오를 나타냅니다.

Binder 인스턴스는, 팩토리 메소드 JAXBContext.createBinder() 또는 JAXBContext.createBinder(Class) 를 사용해 작성됩니다.

템플릿 파라미터 XmlNode 는, XML 정보 세트 보관 유지 표현의 루트 인터페이스 또는 루트 클래스입니다. Binder 의 구현에서는,org.w3c.dom.Node.classXmlNode 치를 최저한 지원할 필요가 있습니다. Binder 의 구현으로, 다른 XML 정보 세트 보관 유지 표현을 지원할 수도 있습니다.

도입된 버젼:
JAXB 2.0

생성자 의 개요
Binder ()
           
 
메소드의 개요
abstract  ValidationEventHandler getEventHandler ()
          현재의 이벤트 핸들러, 또는, 그것이 설정되어 있지 않은 경우는 디폴트 이벤트 핸들러를 돌려줍니다.
abstract  Object getJAXBNode (XmlNode  xmlNode)
          지정한 XML 요소에 관련지을 수 있고 있는 JAXB 객체를 가져옵니다.
abstract  Object getProperty (String  name)
          Binder 의 기본이 되는 구현의 특정의 프로퍼티을 가져옵니다.
abstract  Schema getSchema ()
          setSchema(Schema) 메소드에 의해 마지막에 설정된 Schema 객체 (null 를 포함한다)를 가져옵니다.
abstract  XmlNode getXMLNode (Object  jaxbObject)
          지정한 JAXB 객체에 관련지을 수 있고 있는 XML 요소를 가져옵니다.
abstract  void marshal (Object  jaxbObject, XmlNode  xmlNode)
          JAXB 객체 트리를 새로운 XML 문서에 정렬화합니다.
abstract  void setEventHandler (ValidationEventHandler  handler)
          어플리케이션이 ValidationEventHandler 를 등록할 수가 있습니다.
abstract  void setProperty (String  name, Object  value)
          Binder 의 기본이 되는 구현에 특정의 프로퍼티을 설정합니다.
abstract  void setSchema (Schema  schema)
          정렬화, 비정렬화, 갱신 메소드가 XML 컨텐츠로 검증을 실행할지 어떨지를 지정합니다.
abstract  Object unmarshal (XmlNode  xmlNode)
          XML 정보 셋트뷰를 JAXB 객체 트리에 비정렬화합니다.
abstract
<T> JAXBElement <T>
unmarshal (XmlNode  xmlNode, Class <T> declaredType)
          지정된 declaredType 로 XML 루트 요소를 JAXB 객체 트리에 비정렬화합니다.
abstract  Object updateJAXB (XmlNode  xmlNode)
          XML 노드를 인수로 해, 거기에 관련지을 수 있었던 JAXB 객체와 그 하위 객체를 갱신합니다.
abstract  XmlNode updateXML (Object  jaxbObject)
          JAXB 객체를 인수로 해, 거기에 관련지을 수 있었던 XML 노드와 그 하위 노드를 갱신합니다.
abstract  XmlNode updateXML (Object  jaxbObject, XmlNode  xmlNode)
          JAXB 객체 트리의 변경을 그것과 관련지을 수 있고 있는 XML 구문나무로 갱신됩니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

Binder

public Binder()
메소드의 상세

unmarshal

public abstract Object  unmarshal(XmlNode  xmlNode)
                          throws JAXBException 
XML 정보 셋트뷰를 JAXB 객체 트리에 비정렬화합니다.

이 메소드는 Unmarshaller.unmarshal(Node) 와 유사합니다만, XML 노드와 생성된 JAXB 객체간이 관련짓고를 보관 유지하는 것이 더해져,updateXML(Object, Object) 또는 updateJAXB(Object) 에 의한 후의 갱신 처리를 가능하게 합니다.

getSchema() 가 null 이외의 경우, 이 조작중에 xmlNode 와 그 자손이 검증됩니다.

Binder JAXBContext 에,@xsi:type 를 개입시켜 지정 가능한 xmlNode 의 XML 요소명 또는 형태로부터 JAXB 맵 클래스에의 매핑이 포함되지 않는 경우, 이 메소드는 UnmarshalException 를 throw 합니다. 이 unmarshal(Object, Class) 메소드에 의해, 어플리케이션이 xmlNode 를 맵 해야 할 , JAXB 맵 클래스를 지정할 수 있게 됩니다.

파라미터:
xmlNode - 비정렬화하는 XML 데이터가 포함되는 문서 또는 요소
반환값:
새롭게 작성되는 JAXB 객체 트리의 루트 객체
예외:
JAXBException - 비정렬화의 실행중에 예상외의 에러가 발생했을 경우
UnmarshalException - ValidationEventHandlerhandleEvent 메소드로부터 false 가 반환되는지, 또는 Binder 가 XML 로부터 Java 에의 바인딩을 실행 할 수 없는 경우
IllegalArgumentException - 노드 파라미터가 null 의 경우

unmarshal

public abstract <T> JAXBElement <T> unmarshal(XmlNode  xmlNode,
                                             Class <T> declaredType)
                                  throws JAXBException 
지정된 declaredType 로 XML 루트 요소를 JAXB 객체 트리에 비정렬화합니다.

선언형에 의한 비정렬화」를 구현합니다.

이 메소드는 Unmarshaller.unmarshal(Node, Class) 와 유사합니다만, XML 노드와 생성된 JAXB 객체간이 관련짓고를 보관 유지하는 것이 더해져,updateXML(Object, Object) 또는 updateJAXB(Object) 에 의한 후의 갱신 처리를 가능하게 합니다.

getSchema() 가 null 이외의 경우, 이 조작중에 xmlNode 와 그 자손이 검증됩니다.

파라미터:
xmlNode - 비정렬화하는 XML 데이터가 포함되는 문서 또는 요소
declaredType - 노드의 XML 데이터를 보관 유지하는, 적절한 JAXB 맵 클래스
반환값:
노드JAXB 요소 표현
예외:
JAXBException - 비정렬화의 실행중에 예상외의 에러가 발생했을 경우
UnmarshalException - ValidationEventHandlerhandleEvent 메소드로부터 false 가 반환되는지, 또는 Binder 가 XML 로부터 Java 에의 바인딩을 실행 할 수 없는 경우
IllegalArgumentException - 몇개의 입력 파라미터가 null 의 경우
도입된 버젼:
JAXB2. 0

marshal

public abstract void marshal(Object  jaxbObject,
                             XmlNode  xmlNode)
                      throws JAXBException 
JAXB 객체 트리를 새로운 XML 문서에 정렬화합니다.

이 메소드는 Marshaller.marshal(Object, Node) 와 유사합니다만, JAXB 객체와 생성된 XML 노드간이 관련짓고를 보관 유지하는 것이 더해져,updateXML(Object, Object) 또는 updateJAXB(Object) 등에 의하는 후의 갱신 처리를 가능하게 합니다.

getSchema() 가 null 이외의 경우, 이 조작중에 정렬화 된 XML 컨텐츠가 검증됩니다.

파라미터:
jaxbObject - 정렬화하는 컨텐츠 트리
xmlNode - 이 파라미터는, 아이를 받아들이는 노드일 필요가 있다
예외:
JAXBException - 정렬화의 실행중에 예상외의 문제가 발생했을 경우
MarshalException - ValidationEventHandlerhandleEvent 메소드로부터 false 가 반환되는지, 또는 BinderjaxbObject (또는,jaxbObject로부터 도달 가능한 객체)를 정렬화할 수 없는 경우
IllegalArgumentException - 몇개의 메소드 파라미터가 null 의 경우

getXMLNode

public abstract XmlNode  getXMLNode(Object  jaxbObject)
지정한 JAXB 객체에 관련지을 수 있고 있는 XML 요소를 가져옵니다.

JAXB 객체 트리가 XML fragment에 일단 관련지을 수 있으면(자), 이 메소드를 사용해 2 개의 트리간의 네비게이션이 가능하게 됩니다.

XML 요소와 JAXB 객체간이 관련짓고는, 바인드메소드와 갱신 메소드에 의해 확립됩니다. 이 관련짓고는 부분적이며, 모든 XML 요소를 관련지을 수 있었던 JAXB 객체를 가지는 것으로 없고, 또, 모든 JAXB 객체를 관련지을 수 있었던 XML 요소를 가지는 것으로 없는 것에 주의해 주세요.

파라미터:
jaxbObject - JAXB 객체 트리를 돌려준 바인드메소드 또는 갱신 메소드의 사전의 호출로부터, 도달 가능한 인스턴스
반환값:
지정한 JAXB 객체가 이 Binder 로 기존이 아닌 경우, 또는, 그것이 XML 요소와 관련지을 수 있지 않은 경우, null
예외:
IllegalArgumentException - jaxbObject 파라미터가 null 의 경우

getJAXBNode

public abstract Object  getJAXBNode(XmlNode  xmlNode)
지정한 XML 요소에 관련지을 수 있고 있는 JAXB 객체를 가져옵니다.

JAXB 객체 트리가 XML fragment에 일단 관련지을 수 있으면(자), 이 메소드를 사용해 2 개의 트리간의 네비게이션이 가능하게 됩니다.

XML 요소와 JAXB 객체간이 관련짓고는, 비정렬화, 정렬화 및 갱신 메소드에 의해 확립됩니다. 이 관련짓고는 부분적이며, 모든 XML 요소를 관련지을 수 있었던 JAXB 객체를 가지는 것으로 없고, 또, 모든 JAXB 객체를 관련지을 수 있었던 XML 요소를 가지는 것으로 없는 것에 주의해 주세요.

반환값:
지정한 XML 요소가 이 Binder 로 기존이 아닌 경우, 또는, 그것이 JAXB 객체와 관련지을 수 있지 않은 경우, null
예외:
IllegalArgumentException - 노드 파라미터가 null 의 경우

updateXML

public abstract XmlNode  updateXML(Object  jaxbObject)
                           throws JAXBException 
JAXB 객체를 인수로 해, 거기에 관련지을 수 있었던 XML 노드와 그 하위 노드를 갱신합니다.

이것은, 다음의 메소드의 편리한 메소드입니다.

 updateXML( jaxbObject, getXMLNode(jaxbObject));
 

예외:
JAXBException - 대응하는 XML 컨텐츠의 갱신중에 예상외의 문제가 발생했을 경우
IllegalArgumentException - jaxbObject 파라미터가 null 의 경우

updateXML

public abstract XmlNode  updateXML(Object  jaxbObject,
                                  XmlNode  xmlNode)
                           throws JAXBException 
JAXB 객체 트리의 변경을 그것과 관련지을 수 있고 있는 XML 구문나무로 갱신됩니다.

이 조작은, 「인프레이스」정렬화 처리라고 파악할 수가 있습니다. 차이점은, 새로운 XML 트리 전체를 작성하는 것이 아니라, 이 조작은 기존의 트리를 갱신해, 가능한 한 많은 XML 를 유지하려고 하는 점입니다.

예를 들어, JAXB 에 바인드되어 있지 않은 불명한 XML 요소 또는 속성은 미변경입니다 (그에 대해, 정렬화 조작에서는 이러한 요소나 속성을 포함하지 않는 새로운 트리가 작성됩니다).

부작용으로서 이 조작은 XML 노드와 JAXB 객체가 관련짓고를 갱신합니다.

파라미터:
jaxbObject - 변경된 가능성이 있는 JAXB 객체 트리의 루트
xmlNode - 갱신 타겟의 XML 구문나무의 루트
반환값:
갱신된 XML 노드를 돌려준다. 일반적으로, 이것은, xmlNode 로서 건네준 것과 같은 노드이지만, 예를 들어, 객체의 태그명이 변경 되었을 경우 등, 다른 객체가 될 가능성도 있다
예외:
JAXBException - 대응하는 XML 컨텐츠의 갱신중에 예상외의 문제가 발생했을 경우
IllegalArgumentException - 몇개의 입력 파라미터가 null 의 경우

updateJAXB

public abstract Object  updateJAXB(XmlNode  xmlNode)
                           throws JAXBException 
XML 노드를 인수로 해, 거기에 관련지을 수 있었던 JAXB 객체와 그 하위 객체를 갱신합니다.

이 조작은, 「인프레이스」비정렬화 처리라고 파악할 수가 있습니다. 차이점은, 새로운 JAXB 트리 전체를 작성하므로 없고, 이 조작은 기존의 트리를 갱신해, 가능한 한 많은 JAXB 객체를 재사용하는 점입니다.

부작용으로서 이 조작은 XML 노드와 JAXB 객체가 관련짓고를 갱신합니다.

반환값:
갱신된 JAXB 객체를 돌려준다. 일반적으로, 이것은, 사전의 marshal(Object, Object) 또는, updateJAXB(Object) 메소드의 호출로 반환된 객체와 같다. 그러나, 예를 들어, XML 요소명이 변경되었을 경우 등, 다른 객체가 된다 가능성도 있다
예외:
JAXBException - 컨텐츠가 맵 된, 대응하는 JAXB 의 갱신중에 예상외의 문제가 발생했을 경우
IllegalArgumentException - 노드 파라미터가 null 의 경우

setSchema

public abstract void setSchema(Schema  schema)
정렬화, 비정렬화, 갱신 메소드가 XML 컨텐츠로 검증을 실행할지 어떨지를 지정합니다.

파라미터:
schema - 검증을 무효로 하려면 null 로 설정
관련 항목:
Unmarshaller.setSchema(Schema)

getSchema

public abstract Schema  getSchema()
setSchema(Schema) 메소드에 의해 마지막에 설정된 Schema 객체 (null 를 포함한다)를 가져옵니다.

반환값:
검증하는 Schema 객체, 또는, 존재하지 않는 경우, null

setEventHandler

public abstract void setEventHandler(ValidationEventHandler  handler)
                              throws JAXBException 
어플리케이션이 ValidationEventHandler 를 등록할 수가 있습니다.

ValidationEventHandler 는, Binder 비정렬화, 정렬화 및 갱신 메소드의 어느쪽이든을 호출하고 있는 도중에 검증 에러가 발생했을 경우, JAXB 프로바이더에 의해 불려 갑니다.

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

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

getEventHandler

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

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

setProperty

public abstract void setProperty(String  name,
                                 Object  value)
                          throws PropertyException 
Binder 의 기본이 되는 구현에 특정의 프로퍼티을 설정합니다. 이 메소드를 사용할 수 있는 것은, 표준의 정의 끝난 JAXB 비정렬화 또는 정렬화 프로퍼티의 1 개를 설정하는 경우, 또는, 바인더, 비정렬화, 정렬화용의, 프로바이더 고유의 프로퍼티의 1 개를 설정하는 경우만입니다. 미정도리의 프로퍼티을 설정하려고 했을 경우, PropertyException 가 throw 됩니다. 「지원되고 있는 비정렬화 프로퍼티」과「지원되고 있는 정렬화 프로퍼티」을 참조해 주세요.

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

getProperty

public abstract Object  getProperty(String  name)
                            throws PropertyException 
Binder 의 기본이 되는 구현의 특정의 프로퍼티을 가져옵니다. 이 메소드를 사용할 수 있는 것은, 표준의 정의 끝난 JAXB 비정렬화 또는 정렬화 프로퍼티의 1 개를 설정하는 경우, 또는, 바인더, 비정렬화, 정렬화용의, 프로바이더 고유의 프로퍼티의 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 도 참조해 주세요.