JavaTM 2 Platform
Standard Ed. 6

javax.xml.bind.helpers
類別 AbstractMarshallerImpl

java.lang.Object
  繼承者 javax.xml.bind.helpers.AbstractMarshallerImpl
所有已實作的介面:
Marshaller

public abstract class AbstractMarshallerImpl
extends Object
implements Marshaller

部分預設 Marshaller 實作。

此類別提供 Marshaller 介面的部分預設實作。

JAXB 提供者必須實作的方法只有 marshal(Object, javax.xml.transform.Result)marshal(Object, javax.xml.stream.XMLStreamWriter)marshal(Object, javax.xml.stream.XMLEventWriter)

從以下版本開始:
JAXB1.0
另請參見:
=======, >>>>>>> 1.3

巢狀類別摘要
 
從介面 javax.xml.bind.Marshaller 繼承的巢狀類別/介面
Marshaller.Listener
 
欄位摘要
 
從介面 javax.xml.bind.Marshaller 繼承的欄位
JAXB_ENCODING, JAXB_FORMATTED_OUTPUT, JAXB_FRAGMENT, JAXB_NO_NAMESPACE_SCHEMA_LOCATION, JAXB_SCHEMA_LOCATION
 
建構子摘要
AbstractMarshallerImpl()
           
 
方法摘要
<A extends XmlAdapter>
A
getAdapter(Class<A> type)
          獲取與指定型別關聯的適配器。
 AttachmentMarshaller getAttachmentMarshaller()
           
protected  String getEncoding()
          獲取當前輸出編碼的便捷方法。
 ValidationEventHandler getEventHandler()
          返回當前的事件處理程序,如果沒有設置該處理程序,則返回預設的事件處理程序。
protected  String getJavaEncoding(String encoding)
          從 IANA 名稱獲取相應的 Java 編碼名稱。
 Marshaller.Listener getListener()
          返回向此 Marshaller 註冊的 Marshaller.Listener
 Node getNode(Object obj)
          預設情況下,getNode 方法不受支持並拋出 UnsupportedOperationException
protected  String getNoNSSchemaLocation()
          獲取當前 noNamespaceSchemaLocation 的便捷方法。
 Object getProperty(String name)
          getProperty 方法的預設實作處理 Marshaller 中 4 個已定義的屬性。
 Schema getSchema()
          獲取用於執行編組時驗證的 JAXP 1.3 Schema 物件。
protected  String getSchemaLocation()
          獲取當前 schemaLocation 的便捷方法。
protected  boolean isFormattedOutput()
          獲取格式化輸出標誌的便捷方法。
protected  boolean isFragment()
          獲取片段標誌的便捷方法。
 void marshal(Object obj, ContentHandler handler)
          將以 jaxbElement 為根的內容階層樹編組到 SAX2 事件中。
 void marshal(Object obj, Node node)
          將以 jaxbElement 為根的內容階層樹編組到 DOM 階層樹中。
 void marshal(Object obj, OutputStream os)
          將以 jaxbElement 為根的內容階層樹編組到輸出串流中。
 void marshal(Object obj, Writer w)
          將以 jaxbElement 為根的內容階層樹編組到 Writer 中。
 void marshal(Object obj, XMLEventWriter writer)
          將以 jaxbElement 為根的內容階層樹編組到 XMLEventWriter 中。
 void marshal(Object obj, XMLStreamWriter writer)
          將以 jaxbElement 為根的內容階層樹編組到 XMLStreamWriter 中。
<A extends XmlAdapter>
void
setAdapter(Class<A> type, A adapter)
          將已配置的 XmlAdapter 實例與此 marshaller 關聯。
 void setAdapter(XmlAdapter adapter)
          將已配置的 XmlAdapter 實例與此 marshaller 關聯。
 void setAttachmentMarshaller(AttachmentMarshaller am)
          與上下文關聯,使 XML 文檔內的二進制資料能夠以優化的 XML 二進制附件的形式傳送。
protected  void setEncoding(String encoding)
          設置輸出編碼的便捷方法。
 void setEventHandler(ValidationEventHandler handler)
          允許應用程序註冊一個驗證事件處理程序。
protected  void setFormattedOutput(boolean v)
          設置格式化輸出標誌的便捷方法。
protected  void setFragment(boolean v)
          設置片段標誌的便捷方法。
 void setListener(Marshaller.Listener listener)
           向此 Marshaller 註冊編組事件回調 Marshaller.Listener
protected  void setNoNSSchemaLocation(String location)
          設置 noNamespaceSchemaLocation 的便捷方法。
 void setProperty(String name, Object value)
          setProperty 方法的預設實作處理 Marshaller 中 4 個已定義的屬性。
 void setSchema(Schema schema)
          指定應該用作驗證後續編組操作依據的 JAXP 1.3 Schema 物件。
protected  void setSchemaLocation(String location)
          設置 schemaLocation 的便捷方法。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
從介面 javax.xml.bind.Marshaller 繼承的方法
marshal
 

建構子詳細資訊

AbstractMarshallerImpl

public AbstractMarshallerImpl()
方法詳細資訊

marshal

public final void marshal(Object obj,
                          OutputStream os)
                   throws JAXBException
從介面 Marshaller 複製的描述
將以 jaxbElement 為根的內容階層樹編組到輸出串流中。

指定者:
介面 Marshaller 中的 marshal
參數:
obj - 要編組的內容階層樹的根。
os - XML 將被添加到此串流。
拋出:
JAXBException - 如果在編組期間發生任何不可預料的問題。
MarshalException - 如果 ValidationEventHandler 從其 handleEvent 方法返回 false,或者 Marshaller 不能編組 obj(或任何可從 obj 獲得的物件)。請參閱編組 JAXB 元素

marshal

public final void marshal(Object obj,
                          Writer w)
                   throws JAXBException
從介面 Marshaller 複製的描述
將以 jaxbElement 為根的內容階層樹編組到 Writer 中。

指定者:
介面 Marshaller 中的 marshal
參數:
obj - 要編組的內容階層樹的根。
w - XML 將被發送到此編寫器。
拋出:
JAXBException - 如果在編組期間發生任何不可預料的問題。
MarshalException - 如果 ValidationEventHandler 從其 handleEvent 方法返回 false,或者 Marshaller 不能編組 obj(或任何可從 obj 獲得的物件)。請參閱編組 JAXB 元素

marshal

public final void marshal(Object obj,
                          ContentHandler handler)
                   throws JAXBException
從介面 Marshaller 複製的描述
將以 jaxbElement 為根的內容階層樹編組到 SAX2 事件中。

指定者:
介面 Marshaller 中的 marshal
參數:
obj - 要編組的內容階層樹的根。
handler - XML 將被作為 SAX2 事件發送到此處理程序。
拋出:
JAXBException - 如果在編組期間發生任何不可預料的問題。
MarshalException - 如果 ValidationEventHandler 從其 handleEvent 方法返回 false,或者 Marshaller 不能編組 obj(或任何可從 obj 獲得的物件)。請參閱編組 JAXB 元素

marshal

public final void marshal(Object obj,
                          Node node)
                   throws JAXBException
從介面 Marshaller 複製的描述
將以 jaxbElement 為根的內容階層樹編組到 DOM 階層樹中。

指定者:
介面 Marshaller 中的 marshal
參數:
obj - 要編組的內容階層樹。
node - DOM 節點將作為此節點的子節點添加。此參數必須是一個可接受子節點(DocumentDocumentFragmentElement)的 Node。
拋出:
JAXBException - 如果在編組期間發生任何不可預料的問題。
MarshalException - 如果 ValidationEventHandler 從其 handleEvent 方法返回 false,或者 Marshaller 不能編組 jaxbElement(或任何可從 jaxbElement 獲得的物件)。請參閱編組 JAXB 元素

getNode

public Node getNode(Object obj)
             throws JAXBException
預設情況下,getNode 方法不受支持並拋出 UnsupportedOperationException。 選擇支持此方法的實作必須覆寫此方法。

指定者:
介面 Marshaller 中的 getNode
參數:
obj - XML 內容的 JAXB Java 表示形式
返回:
contentTree 的 DOM 階層樹視圖
拋出:
JAXBException - 如果發生任何不可預料的問題

getEncoding

protected String getEncoding()
獲取當前輸出編碼的便捷方法。

返回:
當前的編碼,如果沒有設置編碼,則返回 "UTF-8"。

setEncoding

protected void setEncoding(String encoding)
設置輸出編碼的便捷方法。

參數:
encoding - Marshaller 類別文檔中指定的有效編碼

getSchemaLocation

protected String getSchemaLocation()
獲取當前 schemaLocation 的便捷方法。

返回:
當前的 schemaLocation,如果沒有設置 schemaLocation,則返回 null

setSchemaLocation

protected void setSchemaLocation(String location)
設置 schemaLocation 的便捷方法。

參數:
location - schemaLocation 值

getNoNSSchemaLocation

protected String getNoNSSchemaLocation()
獲取當前 noNamespaceSchemaLocation 的便捷方法。

返回:
當前的 noNamespaceSchemaLocation;如果沒有設置 noNamespaceSchemaLocation,則返回 null

setNoNSSchemaLocation

protected void setNoNSSchemaLocation(String location)
設置 noNamespaceSchemaLocation 的便捷方法。

參數:
location - noNamespaceSchemaLocation 值

isFormattedOutput

protected boolean isFormattedOutput()
獲取格式化輸出標誌的便捷方法。

返回:
格式化輸出標誌的當前值;如果沒有設置該值,則返回 false。

setFormattedOutput

protected void setFormattedOutput(boolean v)
設置格式化輸出標誌的便捷方法。

參數:
v - 格式化輸出標誌的值。

isFragment

protected boolean isFragment()
獲取片段標誌的便捷方法。

返回:
片段標誌的當前值;如果沒有設置該值,則返回 false。

setFragment

protected void setFragment(boolean v)
設置片段標誌的便捷方法。

參數:
v - 片段標誌的值。

getJavaEncoding

protected String getJavaEncoding(String encoding)
                          throws UnsupportedEncodingException
從 IANA 名稱獲取相應的 Java 編碼名稱。 此方法是派生類別用來轉換編碼名稱的 helper 方法。

拋出:
UnsupportedEncodingException - 如果此實作無法找到 Java 編碼名稱。

setProperty

public void setProperty(String name,
                        Object value)
                 throws PropertyException
setProperty 方法的預設實作處理 Marshaller 中 4 個已定義的屬性。如果提供者需要處理其他屬性,則應該在派生類別中覆寫此方法。

指定者:
介面 Marshaller 中的 setProperty
參數:
name - 要設置的屬性的名稱。此值可以使用一個常數欄位來指定,也可以是一個使用者提供的字元串。
value - 要設置的屬性值
拋出:
PropertyException - 如果處理給定屬性或值時發生錯誤

getProperty

public Object getProperty(String name)
                   throws PropertyException
getProperty 方法的預設實作處理 Marshaller 中 4 個已定義的屬性。如果提供者需要支持特定於其他提供者的屬性,則應該在派生類別中覆寫此方法。

指定者:
介面 Marshaller 中的 getProperty
參數:
name - 將檢索的屬性的名稱
返回:
所請求屬性的值
拋出:
PropertyException - 如果檢索給定屬性或值屬性名稱時發生錯誤

getEventHandler

public ValidationEventHandler getEventHandler()
                                       throws JAXBException
從介面 Marshaller 複製的描述
返回當前的事件處理程序,如果沒有設置該處理程序,則返回預設的事件處理程序。

指定者:
介面 Marshaller 中的 getEventHandler
返回:
當前的 ValidationEventHandler,如果沒有設置該處理程序,則返回預設的事件處理程序
拋出:
JAXBException - 如果獲取當前的事件處理程序時遇到錯誤
另請參見:
Marshaller.getEventHandler()

setEventHandler

public void setEventHandler(ValidationEventHandler handler)
                     throws JAXBException
從介面 Marshaller 複製的描述
允許應用程序註冊一個驗證事件處理程序。

如果在調用任何編組 API 期間遇到任何驗證錯誤,則 JAXB 提供者將調用驗證事件處理程序。如果客戶端應用程序沒有在調用某個 marshal 方法之前註冊驗證事件處理程序,則將使用預設事件處理程序處理驗證事件,預設處理程序將在遇到第一個錯誤或致命錯誤之後將終止編組操作。

調用帶有 null 參數的此方法將導致 Marshaller 重新使用預設事件處理程序。

指定者:
介面 Marshaller 中的 setEventHandler
參數:
handler - 驗證事件處理程序
拋出:
JAXBException - 如果在設置事件處理程序時遇到錯誤
另請參見:
Marshaller.setEventHandler(ValidationEventHandler)

marshal

public void marshal(Object obj,
                    XMLEventWriter writer)
             throws JAXBException
從介面 Marshaller 複製的描述
將以 jaxbElement 為根的內容階層樹編組到 XMLEventWriter 中。

指定者:
介面 Marshaller 中的 marshal
參數:
obj - 要編組的以 jaxbElement 為根的內容階層樹。
writer - XML 將被發送到此編寫器。
拋出:
JAXBException - 如果在編組期間發生任何不可預料的問題。
MarshalException - 如果 ValidationEventHandler 從其 handleEvent 方法返回 false,或者 Marshaller 不能編組 obj(或任何可從 obj 獲得的物件)。請參閱編組 JAXB 元素

marshal

public void marshal(Object obj,
                    XMLStreamWriter writer)
             throws JAXBException
從介面 Marshaller 複製的描述
將以 jaxbElement 為根的內容階層樹編組到 XMLStreamWriter 中。

指定者:
介面 Marshaller 中的 marshal
參數:
obj - 要編組的內容階層樹。
writer - XML 將被發送到此編寫器。
拋出:
JAXBException - 如果在編組期間發生任何不可預料的問題。
MarshalException - 如果 ValidationEventHandler 從其 handleEvent 方法返回 false,或者 Marshaller 不能編組 obj(或任何可從 obj 獲得的物件)。請參閱編組 JAXB 元素

setSchema

public void setSchema(Schema schema)
從介面 Marshaller 複製的描述
指定應該用作驗證後續編組操作依據的 JAXP 1.3 Schema 物件。向此方法傳遞 null 將禁用驗證。

此方法允許調用者在對已編組的 XML 進行編組時驗證它。

最初,此屬性被設置為 null

指定者:
介面 Marshaller 中的 setSchema
參數:
schema - 作為驗證編組操作依據的 Schema 物件;為 null 表示禁用驗證

getSchema

public Schema getSchema()
從介面 Marshaller 複製的描述
獲取用於執行編組時驗證的 JAXP 1.3 Schema 物件。如果未在 marshaller 上設置 Schema,則此方法將返回 null,指示不執行編組時驗證。

指定者:
介面 Marshaller 中的 getSchema
返回:
返回用於執行編組時驗證的 Schema 物件;如果該物件不存在,則返回 null。

setAdapter

public void setAdapter(XmlAdapter adapter)
從介面 Marshaller 複製的描述
將已配置的 XmlAdapter 實例與此 marshaller 關聯。

這是調用 setAdapter(adapter.getClass(),adapter) 的一個便捷方法。

指定者:
介面 Marshaller 中的 setAdapter
另請參見:
Marshaller.setAdapter(Class,XmlAdapter)

setAdapter

public <A extends XmlAdapter> void setAdapter(Class<A> type,
                                              A adapter)
從介面 Marshaller 複製的描述
將已配置的 XmlAdapter 實例與此 marshaller 關聯。

每個 marshaller 都可以在內部維護一個 Map<Class,XmlAdapter>,可用來編組使用 XmlJavaTypeAdapter 註釋其欄位/方法的類別。

此方法允許應用程序使用已配置好的 XmlAdapter 實例。如果沒有給出適配器實例,則 marshaller 將調用其預設建構子創建一個實例。

指定者:
介面 Marshaller 中的 setAdapter
參數:
type - 適配器的型別。當 XmlJavaTypeAdapter.value() 參考此型別時,將使用指定的實例。
adapter - 將要使用的適配器實例。如果為 null,則將註銷此型別的當前適配器集合。

getAdapter

public <A extends XmlAdapter> A getAdapter(Class<A> type)
從介面 Marshaller 複製的描述
獲取與指定型別關聯的適配器。 這是 Marshaller.setAdapter(javax.xml.bind.annotation.adapters.XmlAdapter) 方法的反向操作。

指定者:
介面 Marshaller 中的 getAdapter

setAttachmentMarshaller

public void setAttachmentMarshaller(AttachmentMarshaller am)
從介面 Marshaller 複製的描述

與上下文關聯,使 XML 文檔內的二進制資料能夠以優化的 XML 二進制附件的形式傳送。可以使用存儲在 xml 文檔中的內容 id URI (cid) 從 XML 文檔內容網要參考附件。

指定者:
介面 Marshaller 中的 setAttachmentMarshaller

getAttachmentMarshaller

public AttachmentMarshaller getAttachmentMarshaller()
指定者:
介面 Marshaller 中的 getAttachmentMarshaller

setListener

public void setListener(Marshaller.Listener listener)
從介面 Marshaller 複製的描述

向此 Marshaller 註冊編組事件回調 Marshaller.Listener

每個 Marshaller 只有一個 Listener。設置 Listener 將替換以前設置的 Listener。通過將 listener 設置為 null 可註銷當前的 Listener。

指定者:
介面 Marshaller 中的 setListener
參數:
listener - 實作 Marshaller.Listener 的類別的實例

getListener

public Marshaller.Listener getListener()
從介面 Marshaller 複製的描述

返回向此 Marshaller 註冊的 Marshaller.Listener

指定者:
介面 Marshaller 中的 getListener
返回:
註冊的 Marshaller.Listener;如果未向此 Marshaller 註冊任何 Listener,則返回 null

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only