Package-level declarations

Core package for a wrapper that provides XML pull parsing access. Note that the implementations may do some adjustments beyond what is provided by the underlying implementation to improve compatibility across platforms. The access point to the package/module is (XmlStreaming)nl.adaptivity.xml.XmlStreaming.

Core package for a wrapper that provides XML pull parsing access. Note that the implementations may do some adjustments beyond what is provided by the underlying implementation to improve compatibility across platforms. The access point to the package/module is (XmlStreaming)nl.adaptivity.xml.XmlStreaming.

Core package for a wrapper that provides XML pull parsing access. Note that the implementations may do some adjustments beyond what is provided by the underlying implementation to improve compatibility across platforms. The access point to the package/module is (XmlStreaming)nl.adaptivity.xml.XmlStreaming.

Core package for a wrapper that provides XML pull parsing access. Note that the implementations may do some adjustments beyond what is provided by the underlying implementation to improve compatibility across platforms. The access point to the package/module is (XmlStreaming)nl.adaptivity.xml.XmlStreaming.

Types

Link copied to clipboard
class DomWriter : PlatformXmlWriterBase, XmlWriter

Writer that uses the DOM for the underlying storage (rather than writing to some string).

Link copied to clipboard

Enum representing the type of an xml node/event.

Link copied to clipboard

Annotation to signify that the annotated code is experimental, with limited compatibility support.

Link copied to clipboard

Namespace context that allows iterating over the namespaces.

Link copied to clipboard
interface IXmlStreaming
Link copied to clipboard
interface Namespace

Interface that represents a namespace with prefix and uri.

Link copied to clipboard
actual interface NamespaceContext

Interface that provides access to namespace queries

expect interface NamespaceContext

Interface that provides access to namespace queries

actual interface NamespaceContext
Link copied to clipboard
actual class QName(namespaceURI: String, localPart: String, prefix: String)
expect class QName(namespaceURI: String, localPart: String, prefix: String)
actual class QName(namespaceURI: String, localPart: String, prefix: String)
actual typealias QName = javax.xml.namespace.QName
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

A simple namespace context that stores namespaces in a single array Created by pdvrieze on 24/08/15.

Link copied to clipboard

An xml reader that has a buffer that allows peeking events as well as injecting events into the stream. Note that this class does not do any validation of the xml. If injecting/removing elements into/from the buffer you can create invalid XML.

Link copied to clipboard
Link copied to clipboard

Class that writes xml to a linear buffer of xml events.

Link copied to clipboard

A reader that presents a list of events as an xml reader. This is designed to work together with XmlBufferedWriter.

Link copied to clipboard

Various namespace constants and their corresponding default prefixes.

Link copied to clipboard
Link copied to clipboard

Simple baseclass for a delating XmlReader. It merely functions as a delegate. With Kotlin it's not really needed, but nice.

Link copied to clipboard
abstract class XmlDelegatingWriter(delegate: XmlWriter) : XmlWriter

Simple delegating writer that passes all calls on to the delegate. This class is abstract for the only reason that any direct instances of this class make little sense.

Link copied to clipboard
sealed class XmlEvent

A class to represent the events that can occur in XML Documents

Link copied to clipboard
open class XmlException : IOException

Simple exception for xml related things.

Link copied to clipboard
Link copied to clipboard
interface XmlReader : Closeable, Iterator<EventType>

Interface that is the entry point to the xml parsing. All implementations implement this interface, generally by delegating to a platform specific parser.

Link copied to clipboard

Serial Descriptor delegate that supports special casing by the XML format. This means that the descriptor can be different for non-xml and xml serialization. (Used by the QName serializer).

Link copied to clipboard
annotation class XmlSerialDescriptorMarker

Marker to signify that the descriptor is an xmlSerialDescriptor and the delegate can be retrieved through getElementDescriptor with negative value.

Link copied to clipboard
Link copied to clipboard

Combined interface for custom serializers that support special casing by the XML Format.

Link copied to clipboard
actual interface XmlStreamingFactory
expect interface XmlStreamingFactory
actual interface XmlStreamingFactory
actual interface XmlStreamingFactory
Link copied to clipboard

Annotation to signify that the annotated code is internal to the XmlUtil module, and no API stability is guaranteed.

Link copied to clipboard

Annotation to signify that the annotated code is internal to the XmlUtil module, and no API stability is guaranteed.

Link copied to clipboard
interface XmlWriter : Closeable

Interface representing the (wrapper) type that allows generating xml documents.

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
const val DEFAULT_FLAGS: Int

The default used flags

Link copied to clipboard
const val FLAG_OMIT_XMLDECL: Int = 1

Flag to indicate that the xml declaration should be omitted, when possible.

Link copied to clipboard
const val FLAG_REPAIR_NS: Int = 2

Flag to indicate that the namespace usable should be automatically repaired.

Link copied to clipboard
val <Error class: unknown class>.genericFactory: XmlStreaming.GenericFactory
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard

Consume all text and non-content (comment/processing instruction) to get an uninterrupted text sequence. This will skip over comments but not ignorable whitespace that starts the string, but not tags. Any tags encountered will lead to a return of this function. Any tags encountered with cause an exception to be thrown. It can either be invoked when in a start tag to return all text content, or on a content element to include it (if text or cdata) and all subsequent siblings.

Link copied to clipboard

Get the next text sequence in the reader. This will skip over comments and ignorable whitespace (starting the content), but not tags. Any tags encountered with cause an exception to be thrown. It can either be invoked when in a start tag to return all text content, or on a content element to include it (if text or cdata) and all subsequent siblings.

Link copied to clipboard

Convert a prefixed element name (CNAME) to a qname. If there is no prefix, the default prefix is used.

Link copied to clipboard
Link copied to clipboard

Consume all text and non-content (comment/processing instruction) to get an uninterrupted text sequence. This will skip over comments and ignorable whitespace that starts the string, but not tags. Any tags encountered will lead to a return of this function. Any tags encountered with cause an exception to be thrown. It can either be invoked when in a start tag to return all text content, or on a content element to include it (if text or cdata) and all subsequent siblings.

Link copied to clipboard

Differs from .siblingsToFragment in that it skips the current event.

Link copied to clipboard

Read the current element (and content) only into a fragment.

Link copied to clipboard
fun XmlWriter.endTag(predelemname: QName)
Link copied to clipboard
Link copied to clipboard
fun XmlReader.isElement(elementname: QName): Boolean

fun XmlReader.isElement(type: EventType, elementname: QName): Boolean
fun XmlReader.isElement(elementNamespace: String?, elementName: String, elementPrefix: String? = null): Boolean
fun XmlReader.isElement(type: EventType, elementNamespace: String?, elementName: String, elementPrefix: String? = null): Boolean

Check that the current state is a start element for the given name. The mPrefix is ignored.

Link copied to clipboard
infix fun QName.isEquivalent(other: QName): Boolean
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Determine whether the character is xml whitespace.

Link copied to clipboard
fun <Error class: unknown class>.newGenericReader(inputStream: InputStream): <Error class: unknown class>
Link copied to clipboard
fun IXmlStreaming.newGenericWriter(output: Appendable, isRepairNamespaces: Boolean = false, xmlDeclMode: XmlDeclMode = XmlDeclMode.None): KtXmlWriter
Link copied to clipboard
fun <Error class: unknown class>.newReader(inputStream: InputStream): <Error class: unknown class>
fun <Error class: unknown class>.newReader(node: Node): <Error class: unknown class>
Link copied to clipboard
actual fun IXmlStreaming.newWriter(output: Appendable, repairNamespaces: Boolean, xmlDeclMode: XmlDeclMode): XmlWriter
actual fun IXmlStreaming.newWriter(writer: Writer, repairNamespaces: Boolean, xmlDeclMode: XmlDeclMode): XmlWriter
expect fun IXmlStreaming.newWriter(output: Appendable, repairNamespaces: Boolean = false, xmlDeclMode: XmlDeclMode = XmlDeclMode.None): XmlWriter
expect fun IXmlStreaming.newWriter(writer: Writer, repairNamespaces: Boolean = false, xmlDeclMode: XmlDeclMode = XmlDeclMode.None): XmlWriter
actual fun IXmlStreaming.newWriter(output: Appendable, repairNamespaces: Boolean, xmlDeclMode: XmlDeclMode): XmlWriter
actual fun IXmlStreaming.newWriter(writer: Writer, repairNamespaces: Boolean, xmlDeclMode: XmlDeclMode): XmlWriter
fun <Error class: unknown class>.newWriter(writer: Writer, repairNamespaces: Boolean = false, xmlDeclMode: <Error class: unknown class> = XmlDeclMode.None): <Error class: unknown class>
Link copied to clipboard
fun qname(namespaceUri: String?, localname: String, prefix: String? = DEFAULT_NS_PREFIX): QName
Link copied to clipboard

From a start tag read the text only content of the element. Comments are allowed and handled, but subtags are not allowed. This tag finishes at the end of the element.

Link copied to clipboard

Serialize the content of the reader to the writer. This will continue until the reader has no more events. Note that this does not attempt to balance the tags. It will ignore star/end document events, processing instructions and document declarations if the writer has depth>0 (is in an element where such instructions are illegal).

fun <Error class: unknown class>.serialize(node: Node)
Link copied to clipboard

Read the current element (and content) and all its siblings into a fragment.

Link copied to clipboard

From a start element, skip all element content until the corresponding end element has been read. After invocation the end element has just been read (and would be returned on relevant state calls).

Link copied to clipboard

Skil the preamble events in the stream reader

Link copied to clipboard
inline fun XmlWriter.smartStartTag(qName: QName, body: XmlWriter.() -> Unit)

Enhanced function for writing start tags, that will attempt to reuse prefixes.

fun XmlWriter.smartStartTag(nsUri: String?, localName: String, prefix: String? = null): String

Enhanced function for writing start tags, that will attempt to reuse prefixes. Rather than use the passed prefix it will look up the prefix for the given namespace, and if present use that. It will also ensure to write the appropriate namespace attribute if needed. If the namespace is the default/null, xml or the xmlns namespace the implementation will be as expected.

inline fun XmlWriter.smartStartTag(nsUri: String?, localName: String, prefix: String? = null, body: XmlWriter.() -> Unit)

Helper function for writing tags that will automatically write the end tag. Otherwise

Link copied to clipboard
inline fun XmlWriter.startTag(nsUri: String?, localName: String, prefix: String? = null, body: XmlWriter.() -> Unit)
Link copied to clipboard
fun <Error class: unknown class>.toCharArrayWriter(): CharArrayWriter
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Convert the string as fqn literal to an actual qname

Convert the string as fqn literal to actual name, but use the namespace parameter to fill in namespace (but not prefix)

Link copied to clipboard
fun XmlWriter.writeAttribute(name: String, value: Any?)
fun XmlWriter.writeAttribute(name: String, value: Long)
fun XmlWriter.writeAttribute(name: String, value: QName?)
fun XmlWriter.writeAttribute(name: QName, value: String?)
Link copied to clipboard
fun <Error class: unknown class>.writeChild(node: Node)
Link copied to clipboard

Write the current event to the writer. This will not move the reader.

Link copied to clipboard

Write the current event to the writer. Note that for tags/start elements this will write the attributes, but not the children.

Link copied to clipboard
fun XmlWriter.writeElement(missingNamespaces: MutableMap<String, String>?, reader: XmlReader)

Write the entirety of an element content to the writer.

Link copied to clipboard
fun XmlWriter.writeElementContent(missingNamespaces: MutableMap<String, String>?, reader: XmlReader)

Write the child content of the current element in the reader to the output This does not write the container itself

Link copied to clipboard
inline fun <T> XmlWriter.writeListIfNotEmpty(iterable: Iterable<T>, nsUri: String?, localName: String, prefix: String? = null, body: XmlWriter.(T) -> Unit)

Helper function for writing a list only if it contains any element.

Link copied to clipboard
fun XmlWriter.writeSimpleElement(nsUri: String?, localName: String, prefix: String?, value: String?)
Link copied to clipboard
fun SerialDescriptor.xml(xmlDescriptor: SerialDescriptor = this, serialQName: QName? = null): XmlSerialDescriptor

Helper function that allows the XML format to use a different descriptor for the given type. This is intended for use with custom serializers implementing XmlSerializer to handle xml serialization specially.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard