- All Implemented Interfaces:
Marshaller
Marshaller implementation.
This class provides a partial default implementation for the
Marshaller interface.
The only methods that a Jakarta XML Binding Provider has to implement are
marshal(Object, javax.xml.transform.Result),
marshal(Object, javax.xml.stream.XMLStreamWriter), and
marshal(Object, javax.xml.stream.XMLEventWriter).
- Author:
- Kohsuke Kawaguchi, Sun Microsystems, Inc.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface jakarta.xml.bind.Marshaller
Marshaller.Listener -
Field Summary
Fields inherited from interface jakarta.xml.bind.Marshaller
JAXB_ENCODING, JAXB_FORMATTED_OUTPUT, JAXB_FRAGMENT, JAXB_NO_NAMESPACE_SCHEMA_LOCATION, JAXB_SCHEMA_LOCATION -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDo-nothing constructor for the derived classes. -
Method Summary
Modifier and TypeMethodDescription<A extends XmlAdapter<?,?>>
AgetAdapter(Class<A> type) Gets the adapter associated with the specified type.protected StringConvenience method for getting the current output encoding.Return the current event handler or the default event handler if one hasn't been set.protected StringgetJavaEncoding(String encoding) Gets the corresponding Java encoding name from an IANA name.ReturnMarshaller.Listenerregistered with thisMarshaller.By default, the getNode method is unsupported and throw anUnsupportedOperationException.protected StringConvenience method for getting the current noNamespaceSchemaLocation.getProperty(String name) Default implementation of the getProperty method handles the four defined properties in Marshaller.Get the JAXPSchemaobject being used to perform marshal-time validation.protected StringConvenience method for getting the current schemaLocation.protected booleanConvenience method for getting the formatted output flag.protected booleanConvenience method for getting the fragment flag.voidMarshal the content tree rooted atjaxbElementinto a file.final voidmarshal(Object obj, OutputStream os) Marshal the content tree rooted atjaxbElementinto an output stream.final voidMarshal the content tree rooted atjaxbElementinto a Writer.voidmarshal(Object obj, XMLEventWriter writer) Marshal the content tree rooted atjaxbElementinto aXMLEventWriter.voidmarshal(Object obj, XMLStreamWriter writer) Marshal the content tree rooted atjaxbElementinto aXMLStreamWriter.final voidMarshal the content tree rooted atjaxbElementinto a DOM tree.final voidmarshal(Object obj, ContentHandler handler) Marshal the content tree rooted atjaxbElementinto SAX2 events.<A extends XmlAdapter<?,?>>
voidsetAdapter(A adapter) Associates a configured instance ofXmlAdapterwith this marshaller.<A extends XmlAdapter<?,?>>
voidsetAdapter(Class<A> type, A adapter) Associates a configured instance ofXmlAdapterwith this marshaller.voidAssociate a context that enables binary data within an XML document to be transmitted as XML-binary optimized attachment.protected voidsetEncoding(String encoding) Convenience method for setting the output encoding.voidsetEventHandler(ValidationEventHandler handler) Allow an application to register a validation event handler.protected voidsetFormattedOutput(boolean v) Convenience method for setting the formatted output flag.protected voidsetFragment(boolean v) Convenience method for setting the fragment flag.voidsetListener(Marshaller.Listener listener) Register marshal event callbackMarshaller.Listenerwith thisMarshaller.protected voidsetNoNSSchemaLocation(String location) Convenience method for setting the noNamespaceSchemaLocation.voidsetProperty(String name, Object value) Default implementation of the setProperty method handles the four defined properties in Marshaller.voidSpecify the JAXPSchemaobject that should be used to validate subsequent marshal operations against.protected voidsetSchemaLocation(String location) Convenience method for setting the schemaLocation.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jakarta.xml.bind.Marshaller
marshal
-
Constructor Details
-
AbstractMarshallerImpl
protected AbstractMarshallerImpl()Do-nothing constructor for the derived classes.
-
-
Method Details
-
marshal
Description copied from interface:MarshallerMarshal the content tree rooted atjaxbElementinto an output stream.- Specified by:
marshalin interfaceMarshaller- Parameters:
obj- The root of content tree to be marshalled.os- XML will be added to this stream.- Throws:
JAXBException- If any unexpected problem occurs during the marshalling.
-
marshal
Description copied from interface:MarshallerMarshal the content tree rooted atjaxbElementinto a file.- Specified by:
marshalin interfaceMarshaller- Parameters:
jaxbElement- The root of content tree to be marshalled.output- File to be written. If this file already exists, it will be overwritten.- Throws:
JAXBException- If any unexpected problem occurs during the marshalling.
-
marshal
Description copied from interface:MarshallerMarshal the content tree rooted atjaxbElementinto a Writer.- Specified by:
marshalin interfaceMarshaller- Parameters:
obj- The root of content tree to be marshalled.w- XML will be sent to this writer.- Throws:
JAXBException- If any unexpected problem occurs during the marshalling.
-
marshal
Description copied from interface:MarshallerMarshal the content tree rooted atjaxbElementinto SAX2 events.- Specified by:
marshalin interfaceMarshaller- Parameters:
obj- The root of content tree to be marshalled.handler- XML will be sent to this handler as SAX2 events.- Throws:
JAXBException- If any unexpected problem occurs during the marshalling.
-
marshal
Description copied from interface:MarshallerMarshal the content tree rooted atjaxbElementinto a DOM tree.- Specified by:
marshalin interfaceMarshaller- Parameters:
obj- The content tree to be marshalled.node- DOM nodes will be added as children of this node. This parameter must be a Node that accepts children (Document,DocumentFragment, orElement)- Throws:
JAXBException- If any unexpected problem occurs during the marshalling.
-
getNode
By default, the getNode method is unsupported and throw anUnsupportedOperationException.Implementations that choose to support this method must override this method.
- Specified by:
getNodein interfaceMarshaller- Parameters:
obj- - Jakarta XML Binding Java representation of XML content- Returns:
- the DOM tree view of the contentTree
- Throws:
JAXBException- If any unexpected problem occurs
-
getEncoding
Convenience method for getting the current output encoding.- Returns:
- the current encoding or "UTF-8" if it hasn't been set.
-
setEncoding
Convenience method for setting the output encoding.- Parameters:
encoding- a valid encoding as specified in the Marshaller class documentation
-
getSchemaLocation
Convenience method for getting the current schemaLocation.- Returns:
- the current schemaLocation or null if it hasn't been set
-
setSchemaLocation
Convenience method for setting the schemaLocation.- Parameters:
location- the schemaLocation value
-
getNoNSSchemaLocation
Convenience method for getting the current noNamespaceSchemaLocation.- Returns:
- the current noNamespaceSchemaLocation or null if it hasn't been set
-
setNoNSSchemaLocation
Convenience method for setting the noNamespaceSchemaLocation.- Parameters:
location- the noNamespaceSchemaLocation value
-
isFormattedOutput
protected boolean isFormattedOutput()Convenience method for getting the formatted output flag.- Returns:
- the current value of the formatted output flag or false if it hasn't been set.
-
setFormattedOutput
protected void setFormattedOutput(boolean v) Convenience method for setting the formatted output flag.- Parameters:
v- value of the formatted output flag.
-
isFragment
protected boolean isFragment()Convenience method for getting the fragment flag.- Returns:
- the current value of the fragment flag or false if it hasn't been set.
-
setFragment
protected void setFragment(boolean v) Convenience method for setting the fragment flag.- Parameters:
v- value of the fragment flag.
-
getJavaEncoding
Gets the corresponding Java encoding name from an IANA name.This method is a helper method for the derived class to convert encoding names.
- Throws:
UnsupportedEncodingException- If this implementation couldn't find the Java encoding name.
-
setProperty
Default implementation of the setProperty method handles the four defined properties in Marshaller. If a provider needs to handle additional properties, it should override this method in a derived class.- Specified by:
setPropertyin interfaceMarshaller- Parameters:
name- the name of the property to be set. This value can either be specified using one of the constant fields or a user supplied string.value- the value of the property to be set- Throws:
PropertyException- when there is an error processing the given property or value
-
getProperty
Default implementation of the getProperty method handles the four defined properties in Marshaller. If a provider needs to support additional provider specific properties, it should override this method in a derived class.- Specified by:
getPropertyin interfaceMarshaller- Parameters:
name- the name of the property to retrieve- Returns:
- the value of the requested property
- Throws:
PropertyException- when there is an error retrieving the given property or value property name
-
getEventHandler
Description copied from interface:MarshallerReturn the current event handler or the default event handler if one hasn't been set.- Specified by:
getEventHandlerin interfaceMarshaller- Returns:
- the current ValidationEventHandler or the default event handler if it hasn't been set
- Throws:
JAXBException- if an error was encountered while getting the current event handler- See Also:
-
setEventHandler
Description copied from interface:MarshallerAllow an application to register a validation event handler.The validation event handler will be called by the Jakarta XML Binding Provider if any validation errors are encountered during calls to any of the marshal API's. If the client application does not register a validation event handler before invoking one of the marshal methods, then validation events will be handled by the default event handler which will terminate the marshal operation after the first error or fatal error is encountered.
Calling this method with a null parameter will cause the Marshaller to revert back to the default event handler.
- Specified by:
setEventHandlerin interfaceMarshaller- Parameters:
handler- the validation event handler- Throws:
JAXBException- if an error was encountered while setting the event handler- See Also:
-
marshal
Description copied from interface:MarshallerMarshal the content tree rooted atjaxbElementinto aXMLEventWriter.- Specified by:
marshalin interfaceMarshaller- Parameters:
obj- The content tree rooted at jaxbElement to be marshalled.writer- XML will be sent to this writer.- Throws:
JAXBException- If any unexpected problem occurs during the marshalling.
-
marshal
Description copied from interface:MarshallerMarshal the content tree rooted atjaxbElementinto aXMLStreamWriter.- Specified by:
marshalin interfaceMarshaller- Parameters:
obj- The content tree to be marshalled.writer- XML will be sent to this writer.- Throws:
JAXBException- If any unexpected problem occurs during the marshalling.
-
setSchema
Description copied from interface:MarshallerSpecify the JAXPSchemaobject that should be used to validate subsequent marshal operations against. Passing null into this method will disable validation.This method allows the caller to validate the marshalled XML as it's marshalled.
Initially this property is set to
null.- Specified by:
setSchemain interfaceMarshaller- Parameters:
schema- Schema object to validate marshal operations against or null to disable validation
-
getSchema
Description copied from interface:MarshallerGet the JAXPSchemaobject being used to perform marshal-time validation. If there is no Schema set on the marshaller, then this method will return null indicating that marshal-time validation will not be performed.- Specified by:
getSchemain interfaceMarshaller- Returns:
- the Schema object being used to perform marshal-time validation or null if not present.
-
setAdapter
Description copied from interface:MarshallerAssociates a configured instance ofXmlAdapterwith this marshaller.This is a convenience method that invokes
setAdapter(adapter.getClass(),adapter);.- Specified by:
setAdapterin interfaceMarshaller- Type Parameters:
A- the type of the adapter- Parameters:
adapter- The instance of the adapter to be used. If null, it will un-register the current adapter set for this type.- See Also:
-
setAdapter
Description copied from interface:MarshallerAssociates a configured instance ofXmlAdapterwith this marshaller.Every marshaller internally maintains a
Map<Class,XmlAdapter>, which it uses for marshalling classes whose fields/methods are annotated withXmlJavaTypeAdapter.This method allows applications to use a configured instance of
XmlAdapter. When an instance of an adapter is not given, a marshaller will create one by invoking its default constructor.- Specified by:
setAdapterin interfaceMarshaller- Type Parameters:
A- the type of the adapter- Parameters:
type- The type of the adapter. The specified instance will be used whenXmlJavaTypeAdapter.value()refers to this type.adapter- The instance of the adapter to be used. If null, it will un-register the current adapter set for this type.
-
getAdapter
Description copied from interface:MarshallerGets the adapter associated with the specified type. This is the reverse operation of theMarshaller.setAdapter(A)method.- Specified by:
getAdapterin interfaceMarshaller- Type Parameters:
A- the type of the adapter- Parameters:
type- The type of the adapter. The specified instance will be used whenXmlJavaTypeAdapter.value()refers to this type.- Returns:
- The adapter associated with the specified type.
-
setAttachmentMarshaller
Description copied from interface:MarshallerAssociate a context that enables binary data within an XML document to be transmitted as XML-binary optimized attachment. The attachment is referenced from the XML document content model by content-id URIs(cid) references stored within the xml document.- Specified by:
setAttachmentMarshallerin interfaceMarshaller- Parameters:
am- the attachment marshaller to be set
-
getAttachmentMarshaller
- Specified by:
getAttachmentMarshallerin interfaceMarshaller
-
setListener
Description copied from interface:MarshallerRegister marshal event callback
Marshaller.Listenerwith thisMarshaller.There is only one Listener per Marshaller. Setting a Listener replaces the previous set Listener. One can unregister current Listener by setting listener to
null.- Specified by:
setListenerin interfaceMarshaller- Parameters:
listener- an instance of a class that implementsMarshaller.Listener
-
getListener
Description copied from interface:MarshallerReturn
Marshaller.Listenerregistered with thisMarshaller.- Specified by:
getListenerin interfaceMarshaller- Returns:
- registered
Marshaller.Listenerornullif no Listener is registered with this Marshaller.
-