public class XmlEventWriter
extends java.lang.Object
Used to create XML content as events rather than serialized text.
You can obtain an instance of this object using one of
XmlContainer.putDocumentAsEventWriter(com.sleepycat.dbxml.XmlDocument)
or
XmlDocument.getContentAsEventWriter(com.sleepycat.dbxml.XmlEventWriter)
. It can also be
used by XmlEventReaderToWriter
.
Once you acquire an instance of this class, use its methods to write
content, and when the document has been completed, call the
close()
method to finish putting the document
in the container. Some methods will do this implicitly.
All text written must be encoded as UTF-8 or a subset.
Documents created in this manner are not subject to validation. This class allows applications to directly create content without involving a parser. It also allows use of an external parser to generate events that are pushed into BDB XML content
Constructor and Description |
---|
XmlEventWriter() |
Modifier and Type | Method and Description |
---|---|
void |
close()
Complete the
XmlContainer.putDocumentAsEventWriter(com.sleepycat.dbxml.XmlDocument) operation,
and free the resources associated with this object. |
void |
writeAttribute(java.lang.String localName,
java.lang.String prefix,
java.lang.String uri,
java.lang.String value,
boolean isSpecified)
Write an attribute to the event stream.
|
void |
writeDTD(java.lang.String dtd)
Write a DTD (internal subset).
|
void |
writeDTD(java.lang.String dtd,
int length)
Write a DTD (internal subset).
|
void |
writeEndDocument()
Write the EndDocument event.
|
void |
writeEndElement(java.lang.String localName,
java.lang.String prefix,
java.lang.String uri)
Write an EndElement event.
|
void |
writeEndEntity(java.lang.String name)
Write an event indicating the end of content expanded
by an entity reference.
|
void |
writeProcessingInstruction(java.lang.String target,
java.lang.String data)
Write a ProcessingInstruction event.
|
void |
writeStartDocument(java.lang.String version,
java.lang.String encoding,
java.lang.String standalone)
Write the StartDocument event.
|
void |
writeStartElement(java.lang.String localName,
java.lang.String prefix,
java.lang.String uri,
int numAttributes,
boolean isEmpty)
Write a StartElement event.
|
void |
writeStartEntity(java.lang.String name,
boolean expandedInfoFollows)
Write an event indicating the start of an entity reference.
|
void |
writeText(int type,
java.lang.String text)
Write a text event.
|
void |
writeText(int type,
java.lang.String text,
int length)
Write a text event.
|
public void close() throws XmlException
XmlContainer.putDocumentAsEventWriter(com.sleepycat.dbxml.XmlDocument)
operation,
and free the resources associated with this object. This call must be made
when you are done with this object.XmlException
public void writeAttribute(java.lang.String localName, java.lang.String prefix, java.lang.String uri, java.lang.String value, boolean isSpecified) throws XmlException
localName
- The localName of the attribute.prefix
- The namespace prefix of the attribute.uri
- The namespace uri of the attribute.value
- The value of the attribute.isSpecified
- A boolean indicating whether the attribute is specified.
in the document (vs defaulted)XmlException
public void writeText(int type, java.lang.String text) throws XmlException
type
- The event type of the text. Must be one of
XmlEventReader.Characters
, XmlEventReader.CDATA
, XmlEventReader.Comment
, or XmlEventReader.Whitespace
.text
- The text string itself.XmlException
public void writeText(int type, java.lang.String text, int length) throws XmlException
type
- The event type of the text. Must be one of
XmlEventReader.Characters
, XmlEventReader.CDATA
, XmlEventReader.Comment
, or XmlEventReader.Whitespace
.text
- The text string itself.length
- The length of the text string, in UTF-8 bytes.XmlException
public void writeProcessingInstruction(java.lang.String target, java.lang.String data) throws XmlException
target
- The ProcessingInstruction target.data
- The ProcessingInstruction data.XmlException
public void writeStartElement(java.lang.String localName, java.lang.String prefix, java.lang.String uri, int numAttributes, boolean isEmpty) throws XmlException
localName
- The localName of the element.prefix
- The namespace prefix of the element.uri
- The namespace uri of the element.numAttributes
- The number of attributes the element has. This
number is used to determine whether or not to accept calls to
writeAttribute(java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean)
.isEmpty
- This is true if the element is empty (has neither child
elements nor text content). If an element is noted as empty, the caller must
not make a corresponding call to writeEndElement(java.lang.String, java.lang.String, java.lang.String)
.XmlException
public void writeEndElement(java.lang.String localName, java.lang.String prefix, java.lang.String uri) throws XmlException
writeStartElement(java.lang.String, java.lang.String, java.lang.String, int, boolean)
localName
- The localName of the element.prefix
- The namespace prefix of the element.uri
- The namespace uri of the element.XmlException
public void writeDTD(java.lang.String dtd) throws XmlException
dtd
- The DTD text.XmlException
public void writeDTD(java.lang.String dtd, int length) throws XmlException
dtd
- The DTD text.length
- The length of the text string, in UTF-8 bytes.XmlException
public void writeStartDocument(java.lang.String version, java.lang.String encoding, java.lang.String standalone) throws XmlException
version
- The XML version string ('1.0' or '1.1' typically).encoding
- The encoding used by the document. This must be UTF-8
or a compatible subset, as all content is treated as UTF-8.standalone
- Set to the desired value of 'yes' or 'no', or null.XmlException
public void writeEndDocument() throws XmlException
XmlException
public void writeStartEntity(java.lang.String name, boolean expandedInfoFollows) throws XmlException
Most applications will not use this method.
In most cases, a caller will already have expanded entity
content, and may not know that it came from an entity reference.
In such cases, this event will never be written. If an application
does know when expanded content starts and ends, BDB XML will
accept that information, and maintain it, so that a document
can be serialized back to its unexpanded form (just the entity
reference itself). This event is used to note such information,
and is used with writeEndEntity(java.lang.String)
to track
when entities start and end.
name
- The entity reference text. E.g. if the entity reference
is "&foo;" this value should be "foo"expandedInfoFollows
- If the expanded entity text will follow
as further events, set this boolean to true. This allows the writing
of the entity reference alone, without the expanded content.XmlException
public void writeEndEntity(java.lang.String name) throws XmlException
Most applications will not use this method. See
the notes in writeStartEntity(java.lang.String, boolean)
for details.
name
- The entity reference text. E.g. if the entity reference
is "&foo;" this value should be "foo"XmlException
Copyright (c) 2004,2014 Oracle. All rights reserved.