[][src]Crate xml_data

This library provides a generic interface to parse XML data: a user might implement how to parse and serialize their data (possibly derived), while others will implement adaptors for generic XML parsers.

This is similar to what serde does; but serde assumes your data consists of "native data" (strings, integers, floats, ...) and nested data (lists and maps). XML doesn't map to this very well; while there are some adaptors, they often accept lots of structually different input data: an element might be interpreted as map in serde. A subelement with text now can be interpreted as key (<key>value</key>), but an attribute is interpreted the same way <... key="value">.

This library focuses only on XML instead, and provides a more strict interface with clearly defined output.

For the following XML handling crates adaptors are included if enabled through the equally named features:

If the derive feature is enabled the following traits can be derived:

  • Element
  • parser::Element
  • serializer::Element
  • Inner
  • parser::Inner
  • serializer::Inner

Modules

errors

Helper functions to generate common errors

extensions

Use this to activate all trait extensions without importing their names.

parser

Traits and helper structs to parse XML

quick_xml

Parser/serializer adaptors using quick-xml

serializer

Traits and helper structs to serialize XML

Traits

Element

Combining parser::Element and serializer::Element.

Inner

Combining parser::Inner and serializer::Inner.

Type Definitions

Error

For now we use a simple boxed error to show the user

Result

Result alias with out error type included

Derive Macros

Element

Derive xml-data::{parser,serializer}::Element

Inner

Derive xml-data::{parser,serializer}::Inner