[−][src]Crate xml5ever
This crate provides a push based XML parser library that adheres to XML5 specification. In other words this library trades well-formedness for error recovery.
The idea behind this, was to minimize number of errors from
tools that generate XML (e.g. S
won't just return S
as text, but will parse it into S
).
You can check out full specification here.
What this library provides is a solid XML parser that can:
- Parse somewhat erroneous XML input
- Provide support for Numeric character references.
- Provide partial XML namespace support.
- Provide full set of SVG/MathML entities
What isn't in scope for this library:
- Document Type Definition parsing - this is pretty hard to do right and nowadays, its used
Modules
buffer_queue | The |
data | Data that is known at compile-time and hard-coded into the binary. |
driver | Driver |
interface | Types for tag and attribute names, and tree-builder functionality. |
rcdom | A simple reference-counted DOM. |
serialize | Traits for serializing elements. The serializer expects the data to be xml-like (with a name, and optional children, attrs, text, comments, doctypes, and processing instructions). It uses the visitor pattern, where the serializer and the serializable objects are decoupled and implement their own traits. |
serialize | Serializer for XML5. |
smallcharset | This module contains a single struct |
tendril | |
tokenizer | XML5 tokenizer - converts input into tokens |
tree_builder | XML5 tree builder - converts tokens into a tree like structure |
Macros
expanded_name | Helper to quickly create an expanded name. |
local_name | Takes a local name as a string and returns its key in the string cache. |
namespace_prefix | Takes a namespace prefix string and returns its key in a string cache. |
namespace_url | Takes a namespace url string and returns its key in a string cache. |
ns | Maps the input of |
small_char_set | Create a |
Structs
LocalNameStaticSet | |
NamespaceStaticSet | |
PrefixStaticSet | |
SmallCharSet | Represents a set of "small characters", those with Unicode scalar values less than 64. |
Type Definitions
LocalName | |
Namespace | |
Prefix |