|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface XMLSerializer
Interface of support object used to serialize XMLSerializable objects to XML.
The XMLSerializable tells what to generate to this XMLSerializer using events similar to SAX events. So, this interface is
similar to the org.xml.sax.ContentHandler interface. It's simply because this interface does similar job as SAX
ContentHandler but just in the other direction (serialize from java objects to a stream). Fortunately, using the event-based
SAX model is very easy when you are on the provider part. So, interacting with this XMLSerializer is pretty straightforward.
You can also view this interface as a Visitor pattern specialized for XML. This object plays the "visitor" role while objects
implementing the XMLSerializable
interface play the role of "element" and the "accept" method is called
serialize
.
Method Summary | |
---|---|
void |
attribute(String localName,
String value)
Add an attribute to the element that was just started. |
void |
attribute(String namespaceUri,
String localName,
String value)
Add an attribute to the element that was just started. |
void |
characters(String text)
Add character content of an element. |
void |
charactersMultiLine(String text)
Same as characters but the text (supposed to be multi-line) is formatted to be an indented text block. |
void |
endDocument()
End the current XML document. |
void |
endElement(String namespaceUri,
String localName)
End an XML element. |
Object |
getCustomObject(Object key)
Get back any custom object that was put in with the putCustomObject(key, value) method. |
void |
putCustomObject(Object key,
Object value)
Put a custom object in an internal Map. |
void |
simpleElement(String namespaceUri,
String localName,
String text)
This is a helper method useful to add a simpleType element in one call. |
void |
startDocument()
Start an XML document. |
void |
startElement(String namespaceUri,
String localName)
Start an XML element. |
void |
startPrefixMapping(String prefix,
String namespaceUri)
Define a prefix mapping. |
Method Detail |
---|
void startDocument() throws XMLSerializeException
XMLSerializeException
void startPrefixMapping(String prefix, String namespaceUri) throws XMLSerializeException
This method should be called for each namespace URI before the first time they are used.
If the given namespace is already associated to another prefix (or the same prefix), this method call is ignored (i.e. first association wins).
If the given prefix is already associated to an other namespace, a new prefix is generated and mapped at the place of the given one.
prefix
- a prefix (can be "" for default prefix mapping)namespaceUri
- a namespace URI
XMLSerializeException
- if prefix or namespaceUri is null or if required action cannot be done (implementation dependent).void startElement(String namespaceUri, String localName) throws XMLSerializeException
namespaceUri
- The element namespace URI (can be null if namespace are not used)localName
- The element local name (a.k.a. NCName)
XMLSerializeException
- if required action cannot be done (implementation dependent).void attribute(String localName, String value) throws XMLSerializeException
startElement
call. attribute. This attribute use no namespace.
localName
- The attribute local name (a.k.a. NCName)value
- the attribute value (null is treated as empty string).
XMLSerializeException
- if you don't call this method just after startElement
or if required action cannot be done
(implementation dependent).void attribute(String namespaceUri, String localName, String value) throws XMLSerializeException
startElement
call. attribute
namespaceUri
- The attribute namespace URI. This URI is usually null because most of the time, attributes don't use a
namespace.localName
- The attribute local name (a.k.a. NCName)value
- the attribute value (null is treated as empty string).
XMLSerializeException
- if you don't call this method just after startElement
or if required action cannot be done
(implementation dependent).void endElement(String namespaceUri, String localName) throws XMLSerializeException
namespaceUri
- The element namespace URI (can be null if namespace are not used)localName
- The element local name (a.k.a. NCName)
XMLSerializeException
- if required action cannot be done (implementation dependent).void characters(String text) throws XMLSerializeException
startElement
(possibly followed by
attribute
) and endElement
. If this method is called several times for the same element, the
texts are concatenated.
text
- text of the currently started element.
XMLSerializeException
- if you don't call this method just beteween startElement
and endElement
or if
required action cannot be done (implementation dependent).void charactersMultiLine(String text) throws XMLSerializeException
<tag> some text spanning multiple lines. </tag>While usual output would have given:
<tag>some text spanning multiple lines.</tag>The original text can be retrieved (when parsing) with the
ElementText.getMultilineText(..)
method. This
method will automatically remove the added space.
text
- the text to serialize in XML
XMLSerializeException
ElementText.getMultilineText(String, XMLEventParser)
void simpleElement(String namespaceUri, String localName, String text) throws XMLSerializeException
startElement(namespaceUri, localName); characters(text); endElement(namespaceUri, localName);
namespaceUri
- The element namespace URI (can be null if namespace are not used)localName
- The element local name (a.k.a. NCName)text
- text of the element.
XMLSerializeException
void endDocument() throws XMLSerializeException
XMLSerializeException
void putCustomObject(Object key, Object value)
getCustomObject(key)
method.
key
- key of the custom object.value
- custom object.Object getCustomObject(Object key)
putCustomObject(key, value)
method.
key
- key of the custom object.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |