Skip to content

Features

Standard compatibility#

General compatibility with the XML 1.0 specs

XML parsing#

  • namespaces 1
  • cdata
  • text
  • comments (with optional stripping)
  • processing directives (with optional stripping)
  • basic entities
  • complex entities

XML serialization#

  • namespaces
  • processing
  • cdata
  • text
  • comments
  • output prettifycation
    • indentation
    • newline style
    • other linting

Library features#

Tree builder#

  • namespaces
  • processing
  • cdata
  • text
  • comments

Algorithms#

  • iterators for nodes
  • iterators for attributes
  • Unified iterator for text of an element, scanning all text/CDATA children in a single element.
  • tree/sub-tree cloning
    • Basic copy
    • String compression
  • attributes reordering
  • node injection
  • simplified tree wrapper to avoid xml::sv->string_view conversions.
  • documents
  • archives

Queries#

Portability#

Issues concerning usage in embedded and offloaded contexts. Mode details in the respective pages.

  • noexcept mode
  • noassert mode
  • no memory allocations
    • for the tree/document/archive binary representation
    • in the query builder2
    • in tree building2
    • in query processing3

  1. Partially, no validation for them 

  2. The objective is to pass custom allocators so that arena strategies can be implemented for example. 

  3. Queries allocates as a stack, so specific strategies and allocator can be adopted for them.