public abstract class AbstractMarshaller extends java.lang.Object implements Marshaller, Unmarshaller
Marshaller
および Unmarshaller
インターフェースの抽象実装。この実装は、指定された Source
または Result
をインスペクションし、さらに処理をオーバーライド可能なテンプレートメソッドに委譲します。コンストラクターと説明 |
---|
AbstractMarshaller() |
修飾子と型 | メソッドと説明 |
---|---|
protected org.w3c.dom.Document | buildDocument() DOM ノードのプレースホルダーとして、このマーシャラーの DocumentBuilderFactory から新しい Document を構築します。 |
protected javax.xml.parsers.DocumentBuilder | createDocumentBuilder(javax.xml.parsers.DocumentBuilderFactory factory) このマーシャラーが空の DOMSource を渡されたときに DOM ドキュメントを作成するために使用する DocumentBuilder を作成します。 |
protected javax.xml.parsers.DocumentBuilderFactory | createDocumentBuilderFactory() このマーシャラーが空の DOMSource を渡されたときに DOM ドキュメントを作成するために使用する DocumentBuilder を作成します。 |
protected org.xml.sax.XMLReader | createXmlReader() このマーシャラーが空の SAXSource を渡されたときに XMLReader を作成します。 |
protected java.lang.String | getDefaultEncoding() バイトストリームからのマーシャリングまたはアンマーシャリングに使用するデフォルトエンコーディングを決定します。存在しない場合は null を決定します。 |
boolean | isProcessExternalEntities() XML 外部エンティティを許可するかどうかの構成値を返します。 |
boolean | isSupportDtd() DTD 解析がサポートされているかどうか。 |
void | marshal(java.lang.Object graph, javax.xml.transform.Result result) 指定されたルートを持つオブジェクトグラフを、提供された javax.xml.transform.Result にマーシャリングします。 |
protected abstract void | marshalDomNode(java.lang.Object graph, org.w3c.dom.Node node) 指定されたオブジェクトグラフを DOM Node にマーシャリングする抽象テンプレートメソッド。 |
protected void | marshalDomResult(java.lang.Object graph, javax.xml.transform.dom.DOMResult domResult) DOMResult を処理するためのテンプレートメソッド。 |
protected abstract void | marshalOutputStream(java.lang.Object graph, java.io.OutputStream outputStream) 指定されたオブジェクトグラフを OutputStream にマーシャリングする抽象テンプレートメソッド。 |
protected abstract void | marshalSaxHandlers(java.lang.Object graph, org.xml.sax.ContentHandler contentHandler, org.xml.sax.ext.LexicalHandler lexicalHandler) 指定されたオブジェクトグラフを SAX ContentHandler にマーシャリングする抽象テンプレートメソッド。 |
protected void | marshalSaxResult(java.lang.Object graph, javax.xml.transform.sax.SAXResult saxResult) SAXResult を処理するためのテンプレートメソッド。 |
protected void | marshalStaxResult(java.lang.Object graph, javax.xml.transform.Result staxResult) StaxResult を処理するためのテンプレートメソッド。 |
protected void | marshalStreamResult(java.lang.Object graph, javax.xml.transform.stream.StreamResult streamResult) StreamResult を処理するためのテンプレートメソッド。 |
protected abstract void | marshalWriter(java.lang.Object graph, java.io.Writer writer) 指定されたオブジェクトグラフを Writer にマーシャリングする抽象テンプレートメソッド。 |
protected abstract void | marshalXmlEventWriter(java.lang.Object graph, javax.xml.stream.XMLEventWriter eventWriter) 指定されたオブジェクトを StAX XMLEventWriter にマーシャリングする抽象テンプレートメソッド。 |
protected abstract void | marshalXmlStreamWriter(java.lang.Object graph, javax.xml.stream.XMLStreamWriter streamWriter) 指定されたオブジェクトを StAX XMLStreamWriter にマーシャリングする抽象テンプレートメソッド。 |
void | setProcessExternalEntities(boolean processExternalEntities) 非整列化時に外部 XML エンティティが処理されるかどうかを示します。 |
void | setSupportDtd(boolean supportDtd) DTD 解析をサポートする必要があるかどうかを示します。 |
java.lang.Object | unmarshal(javax.xml.transform.Source source) 指定された提供された javax.xml.transform.Source をオブジェクトグラフに非整列化します。 |
protected abstract java.lang.Object | unmarshalDomNode(org.w3c.dom.Node node) 指定された DOM Node から非整列化するための抽象テンプレートメソッド。 |
protected java.lang.Object | unmarshalDomSource(javax.xml.transform.dom.DOMSource domSource) DOMSource を処理するためのテンプレートメソッド。 |
protected abstract java.lang.Object | unmarshalInputStream(java.io.InputStream inputStream) 指定された InputStream から非整列化するための抽象テンプレートメソッド。 |
protected abstract java.lang.Object | unmarshalReader(java.io.Reader reader) 指定された Reader から非整列化するための抽象テンプレートメソッド。 |
protected abstract java.lang.Object | unmarshalSaxReader(org.xml.sax.XMLReader xmlReader, org.xml.sax.InputSource inputSource) 特定の SAX XMLReader および InputSource を使用して非整列化するための抽象テンプレートメソッド。 |
protected java.lang.Object | unmarshalSaxSource(javax.xml.transform.sax.SAXSource saxSource) SAXSource を処理するためのテンプレートメソッド。 |
protected java.lang.Object | unmarshalStaxSource(javax.xml.transform.Source staxSource) StaxSource を処理するためのテンプレートメソッド。 |
protected java.lang.Object | unmarshalStreamSource(javax.xml.transform.stream.StreamSource streamSource) StreamSource を処理するためのテンプレートメソッド。 |
protected abstract java.lang.Object | unmarshalXmlEventReader(javax.xml.stream.XMLEventReader eventReader) 指定された Stax XMLEventReader から非整列化するための抽象テンプレートメソッド。 |
protected abstract java.lang.Object | unmarshalXmlStreamReader(javax.xml.stream.XMLStreamReader streamReader) 指定された Stax XMLStreamReader から非整列化するための抽象テンプレートメソッド。 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
supports
supports
protected final Log logger
public void setSupportDtd(boolean supportDtd)
デフォルトは false
で、DTD が無効になっています。
public boolean isSupportDtd()
public void setProcessExternalEntities(boolean processExternalEntities)
デフォルトは false
です。これは、外部エンティティが解決されないことを意味します。unmarshal(Source)
に渡される Source
が SAXSource
または StreamSource
である場合にのみ、外部エンティティの処理が有効または無効になることに注意してください。DOMSource
または StAXSource
インスタンスには影響しません。
注意 : このオプションを true
に設定すると、setSupportDtd(boolean)
が true
に自動的に設定されます。
public boolean isProcessExternalEntities()
createXmlReader()
protected org.w3c.dom.Document buildDocument()
DocumentBuilderFactory
から新しい Document
を構築します。protected javax.xml.parsers.DocumentBuilderFactory createDocumentBuilderFactory() throws javax.xml.parsers.ParserConfigurationException
DOMSource
を渡されたときに DOM ドキュメントを作成するために使用する DocumentBuilder
を作成します。 結果の DocumentBuilderFactory
はキャッシュされるため、このメソッドは一度だけ呼び出されます。
javax.xml.parsers.ParserConfigurationException
- JAXP メソッドによってスローされた場合 protected javax.xml.parsers.DocumentBuilder createDocumentBuilder(javax.xml.parsers.DocumentBuilderFactory factory) throws javax.xml.parsers.ParserConfigurationException
DOMSource
を渡されたときに DOM ドキュメントを作成するために使用する DocumentBuilder
を作成します。サブクラスでオーバーライドでき、ビルダーの初期化を追加します。
factory
- DocumentBuilder を作成する DocumentBuilderFactory
DocumentBuilder
javax.xml.parsers.ParserConfigurationException
- JAXP メソッドによってスローされた場合 protected org.xml.sax.XMLReader createXmlReader() throws org.xml.sax.SAXException
SAXSource
を渡されたときに XMLReader
を作成します。org.xml.sax.SAXException
- JAXP メソッドによってスローされた場合 @Nullable protected java.lang.String getDefaultEncoding()
null
を決定します。 デフォルトの実装は null
を返します。
public final void marshal(java.lang.Object graph, javax.xml.transform.Result result) throws java.io.IOException, XmlMappingException
javax.xml.transform.Result
にマーシャリングします。 この実装は、指定された結果をインスペクションし、marshalDomResult
、marshalSaxResult
、marshalStreamResult
を呼び出します。
Marshaller
の marshal
graph
- マーシャリングするオブジェクトグラフのルート result
- マーシャリングする結果 java.io.IOException
- I/O 例外が発生した場合 XmlMappingException
- 指定されたオブジェクトを結果に整列化できない場合 java.lang.IllegalArgumentException
- result
の場合 DOMResult
、SAXResult
、StreamResult
のいずれでもない場合 marshalDomResult(Object, javax.xml.transform.dom.DOMResult)
, marshalSaxResult(Object, javax.xml.transform.sax.SAXResult)
, marshalStreamResult(Object, javax.xml.transform.stream.StreamResult)
protected void marshalDomResult(java.lang.Object graph, javax.xml.transform.dom.DOMResult domResult) throws XmlMappingException
DOMResult
を処理するためのテンプレートメソッド。 この実装は marshalDomNode
に委譲します。
graph
- マーシャリングするオブジェクトグラフのルート domResult
- DOMResult
XmlMappingException
- 指定されたオブジェクトを結果に整列化できない場合 java.lang.IllegalArgumentException
- domResult
が空の場合 marshalDomNode(Object, org.w3c.dom.Node)
protected void marshalStaxResult(java.lang.Object graph, javax.xml.transform.Result staxResult) throws XmlMappingException
StaxResult
を処理するためのテンプレートメソッド。 この実装は、StaxResult
の内容に応じて、marshalXMLSteamWriter
または marshalXMLEventConsumer
に委譲します。
graph
- マーシャリングするオブジェクトグラフのルート staxResult
- JAXP 1.4 StAXSource
XmlMappingException
- 指定されたオブジェクトを結果に整列化できない場合 java.lang.IllegalArgumentException
- domResult
が空の場合 marshalDomNode(Object, org.w3c.dom.Node)
protected void marshalSaxResult(java.lang.Object graph, javax.xml.transform.sax.SAXResult saxResult) throws XmlMappingException
SAXResult
を処理するためのテンプレートメソッド。 この実装は marshalSaxHandlers
に委譲します。
graph
- マーシャリングするオブジェクトグラフのルート saxResult
- SAXResult
XmlMappingException
- 指定されたオブジェクトを結果に整列化できない場合 marshalSaxHandlers(Object, org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler)
protected void marshalStreamResult(java.lang.Object graph, javax.xml.transform.stream.StreamResult streamResult) throws XmlMappingException, java.io.IOException
StreamResult
を処理するためのテンプレートメソッド。 この実装は、StreamResult
の内容に応じて、marshalOutputStream
または marshalWriter
に委譲します。
graph
- マーシャリングするオブジェクトグラフのルート streamResult
- StreamResult
java.io.IOException
- I/O 例外が発生した場合 XmlMappingException
- 指定されたオブジェクトを結果に整列化できない場合 java.lang.IllegalArgumentException
- streamResult
に OutputStream
も Writer
も含まれていない場合 public final java.lang.Object unmarshal(javax.xml.transform.Source source) throws java.io.IOException, XmlMappingException
javax.xml.transform.Source
をオブジェクトグラフに非整列化します。 この実装は、指定された結果をインスペクションし、unmarshalDomSource
、unmarshalSaxSource
、unmarshalStreamSource
を呼び出します。
Unmarshaller
の unmarshal
source
- マーシャリングのソース java.io.IOException
- I/O 例外が発生した場合 XmlMappingException
- 指定されたソースをオブジェクトにマップできない場合 java.lang.IllegalArgumentException
- source
が DOMSource
、SAXSource
、StreamSource
でない場合 unmarshalDomSource(javax.xml.transform.dom.DOMSource)
, unmarshalSaxSource(javax.xml.transform.sax.SAXSource)
, unmarshalStreamSource(javax.xml.transform.stream.StreamSource)
protected java.lang.Object unmarshalDomSource(javax.xml.transform.dom.DOMSource domSource) throws XmlMappingException
DOMSource
を処理するためのテンプレートメソッド。 この実装は unmarshalDomNode
に委譲します。指定されたソースが空の場合、空のソース Document
がプレースホルダーとして作成されます。
domSource
- DOMSource
XmlMappingException
- 指定されたソースをオブジェクトにマップできない場合 java.lang.IllegalArgumentException
- domSource
が空の場合 unmarshalDomNode(org.w3c.dom.Node)
protected java.lang.Object unmarshalStaxSource(javax.xml.transform.Source staxSource) throws XmlMappingException
StaxSource
を処理するためのテンプレートメソッド。 この実装は unmarshalXmlStreamReader
または unmarshalXmlEventReader
に委譲します。
staxSource
- StaxSource
XmlMappingException
- 指定されたソースをオブジェクトにマップできない場合 protected java.lang.Object unmarshalSaxSource(javax.xml.transform.sax.SAXSource saxSource) throws XmlMappingException, java.io.IOException
SAXSource
を処理するためのテンプレートメソッド。 この実装は unmarshalSaxReader
に委譲します。
saxSource
- SAXSource
XmlMappingException
- 指定されたソースをオブジェクトにマップできない場合 java.io.IOException
- I/O 例外が発生した場合 unmarshalSaxReader(org.xml.sax.XMLReader, org.xml.sax.InputSource)
protected java.lang.Object unmarshalStreamSource(javax.xml.transform.stream.StreamSource streamSource) throws XmlMappingException, java.io.IOException
StreamSource
を処理するためのテンプレートメソッド。 この実装は unmarshalInputStream
または unmarshalReader
に委譲します。
streamSource
- StreamSource
java.io.IOException
- I/O 例外が発生した場合 XmlMappingException
- 指定されたソースをオブジェクトにマップできない場合 protected abstract void marshalDomNode(java.lang.Object graph, org.w3c.dom.Node node) throws XmlMappingException
Node
にマーシャリングする抽象テンプレートメソッド。 実際には、ノードは Document
ノード、DocumentFragment
ノード、Element
ノードです。つまり、子を受け入れるノードです。
graph
- マーシャリングするオブジェクトグラフのルート node
- 結果ツリーを含む DOM ノード XmlMappingException
- 指定されたオブジェクトを DOM ノードに整列化できない場合 Document
、DocumentFragment
、Element
protected abstract void marshalXmlEventWriter(java.lang.Object graph, javax.xml.stream.XMLEventWriter eventWriter) throws XmlMappingException
XMLEventWriter
にマーシャリングする抽象テンプレートメソッド。graph
- マーシャリングするオブジェクトグラフのルート eventWriter
- 書き込む XMLEventWriter
XmlMappingException
- 指定されたオブジェクトを DOM ノードに整列化できない場合 protected abstract void marshalXmlStreamWriter(java.lang.Object graph, javax.xml.stream.XMLStreamWriter streamWriter) throws XmlMappingException
XMLStreamWriter
にマーシャリングする抽象テンプレートメソッド。graph
- マーシャリングするオブジェクトグラフのルート streamWriter
- 書き込む XMLStreamWriter
XmlMappingException
- 指定されたオブジェクトを DOM ノードに整列化できない場合 protected abstract void marshalSaxHandlers(java.lang.Object graph, org.xml.sax.ContentHandler contentHandler, @Nullable org.xml.sax.ext.LexicalHandler lexicalHandler) throws XmlMappingException
ContentHandler
にマーシャリングする抽象テンプレートメソッド。graph
- マーシャリングするオブジェクトグラフのルート contentHandler
- SAX ContentHandler
lexicalHandler
- SAX2 LexicalHandler
null
にすることができます。XmlMappingException
- 指定されたオブジェクトをハンドラーにマーシャリングできない場合 protected abstract void marshalOutputStream(java.lang.Object graph, java.io.OutputStream outputStream) throws XmlMappingException, java.io.IOException
OutputStream
にマーシャリングする抽象テンプレートメソッド。graph
- マーシャリングするオブジェクトグラフのルート outputStream
- 書き込む OutputStream
XmlMappingException
- 指定されたオブジェクトをライターにマーシャリングできない場合 java.io.IOException
- I/O 例外が発生した場合 protected abstract void marshalWriter(java.lang.Object graph, java.io.Writer writer) throws XmlMappingException, java.io.IOException
Writer
にマーシャリングする抽象テンプレートメソッド。graph
- マーシャリングするオブジェクトグラフのルート writer
- 書き込む Writer
XmlMappingException
- 指定されたオブジェクトをライターにマーシャリングできない場合 java.io.IOException
- I/O 例外が発生した場合 protected abstract java.lang.Object unmarshalDomNode(org.w3c.dom.Node node) throws XmlMappingException
Node
から非整列化するための抽象テンプレートメソッド。node
- 非整列化するオブジェクトを含む DOM ノード XmlMappingException
- 指定された DOM ノードをオブジェクトにマップできない場合 protected abstract java.lang.Object unmarshalXmlEventReader(javax.xml.stream.XMLEventReader eventReader) throws XmlMappingException
XMLEventReader
から非整列化するための抽象テンプレートメソッド。eventReader
- 読み込む XMLEventReader
XmlMappingException
- 指定されたイベントリーダーをオブジェクトに変換できない場合 protected abstract java.lang.Object unmarshalXmlStreamReader(javax.xml.stream.XMLStreamReader streamReader) throws XmlMappingException
XMLStreamReader
から非整列化するための抽象テンプレートメソッド。streamReader
- 読み込む XMLStreamReader
XmlMappingException
- 指定されたストリームリーダーをオブジェクトに変換できない場合 protected abstract java.lang.Object unmarshalSaxReader(org.xml.sax.XMLReader xmlReader, org.xml.sax.InputSource inputSource) throws XmlMappingException, java.io.IOException
XMLReader
および InputSource
を使用して非整列化するための抽象テンプレートメソッド。xmlReader
- 解析する SAX XMLReader
inputSource
- 解析する入力ソース XmlMappingException
- 指定されたリーダーと入力ソースをオブジェクトに変換できない場合 java.io.IOException
- I/O 例外が発生した場合 protected abstract java.lang.Object unmarshalInputStream(java.io.InputStream inputStream) throws XmlMappingException, java.io.IOException
InputStream
から非整列化するための抽象テンプレートメソッド。inputStream
- 読み込む InputStreamStream
XmlMappingException
- 指定されたストリームをオブジェクトに変換できない場合 java.io.IOException
- I/O 例外が発生した場合 protected abstract java.lang.Object unmarshalReader(java.io.Reader reader) throws XmlMappingException, java.io.IOException
Reader
から非整列化するための抽象テンプレートメソッド。reader
- 読み込む Reader
XmlMappingException
- 指定されたリーダーをオブジェクトに変換できない場合 java.io.IOException
- I/O 例外が発生した場合