Struct xml::ParserConfig
source · [−]pub struct ParserConfig {
pub trim_whitespace: bool,
pub whitespace_to_characters: bool,
pub cdata_to_characters: bool,
pub ignore_comments: bool,
pub coalesce_characters: bool,
pub extra_entities: HashMap<String, String>,
pub ignore_end_of_stream: bool,
}
Expand description
Parser configuration structure.
This structure contains various configuration options which affect behavior of the parser.
Fields
trim_whitespace: bool
Whether or not should whitespace in textual events be removed. Default is false.
When true, all standalone whitespace will be removed (this means no
Whitespace
events will ve emitted), and leading and trailing whitespace
from Character
events will be deleted. If after trimming Characters
event will be empty, it will also be omitted from output stream. This is
possible, however, only if whitespace_to_characters
or
cdata_to_characters
options are set.
This option does not affect CDATA events, unless cdata_to_characters
option is also set. In that case CDATA content will also be trimmed.
whitespace_to_characters: bool
Whether or not should whitespace be converted to characters. Default is false.
If true, instead of Whitespace
events Characters
events with the
same content will be emitted. If trim_whitespace
is also true, these
events will be trimmed to nothing and, consequently, not emitted.
cdata_to_characters: bool
Whether or not should CDATA be converted to characters. Default is false.
If true, instead of CData
events Characters
events with the same
content will be emitted. If trim_whitespace
is also true, these events
will be trimmed. If corresponding CDATA contained nothing but whitespace,
this event will be omitted from the stream.
ignore_comments: bool
Whether or not should comments be omitted. Default is true.
If true, Comment
events will not be emitted at all.
coalesce_characters: bool
Whether or not should sequential Characters
events be merged.
Default is true.
If true, multiple sequential Characters
events will be merged into
a single event, that is, their data will be concatenated.
Multiple sequential Characters
events are only possible if either
cdata_to_characters
or ignore_comments
are set. Otherwise character
events will always be separated by other events.
extra_entities: HashMap<String, String>
A map of extra entities recognized by the parser. Default is an empty map.
By default the XML parser recognizes the entities defined in the XML spec. Sometimes, however, it is convenient to make the parser recognize additional entities which are also not available through the DTD definitions (especially given that at the moment DTD parsing is not supported).
ignore_end_of_stream: bool
Whether or not the parser should ignore the end of stream. Default is false.
By default the parser will either error out when it encounters a premature end of stream or complete normally if the end of stream was expected. If you want to continue reading from a stream whose input is supplied progressively, you can set this option to true. In this case the parser will allow you to invoke the next() method even if a supposed end of stream has happened.
Note that support for this functionality is incomplete; for example, the parser will fail if the premature end of stream happens inside PCDATA. Therefore, use this option at your own risk.
Implementations
sourceimpl ParserConfig
impl ParserConfig
sourcepub fn new() -> ParserConfig
pub fn new() -> ParserConfig
Returns a new config with default values.
You can tweak default values using builder-like pattern:
use xml::reader::ParserConfig;
let config = ParserConfig::new()
.trim_whitespace(true)
.ignore_comments(true)
.coalesce_characters(false);
sourcepub fn create_reader<R: Read>(self, source: R) -> EventReader<R>
pub fn create_reader<R: Read>(self, source: R) -> EventReader<R>
Creates an XML reader with this configuration.
This is a convenience method for configuring and creating a reader at the same time:
use xml::reader::ParserConfig;
let mut source: &[u8] = b"...";
let reader = ParserConfig::new()
.trim_whitespace(true)
.ignore_comments(true)
.coalesce_characters(false)
.create_reader(&mut source);
This method is exactly equivalent to calling EventReader::new_with_config()
with
this configuration object.
sourcepub fn add_entity<S: Into<String>, T: Into<String>>(
self,
entity: S,
value: T
) -> ParserConfig
pub fn add_entity<S: Into<String>, T: Into<String>>(
self,
entity: S,
value: T
) -> ParserConfig
Adds a new entity mapping and returns an updated config object.
This is a convenience method for adding external entities mappings to the XML parser. An example:
use xml::reader::ParserConfig;
let mut source: &[u8] = b"...";
let reader = ParserConfig::new()
.add_entity("nbsp", " ")
.add_entity("copy", "©")
.add_entity("reg", "®")
.create_reader(&mut source);
sourceimpl ParserConfig
impl ParserConfig
sourcepub fn trim_whitespace(self, value: bool) -> ParserConfig
pub fn trim_whitespace(self, value: bool) -> ParserConfig
Sets the field to the provided value and returns updated config object.
sourceimpl ParserConfig
impl ParserConfig
sourcepub fn whitespace_to_characters(self, value: bool) -> ParserConfig
pub fn whitespace_to_characters(self, value: bool) -> ParserConfig
Sets the field to the provided value and returns updated config object.
sourceimpl ParserConfig
impl ParserConfig
sourcepub fn cdata_to_characters(self, value: bool) -> ParserConfig
pub fn cdata_to_characters(self, value: bool) -> ParserConfig
Sets the field to the provided value and returns updated config object.
sourceimpl ParserConfig
impl ParserConfig
sourcepub fn ignore_comments(self, value: bool) -> ParserConfig
pub fn ignore_comments(self, value: bool) -> ParserConfig
Sets the field to the provided value and returns updated config object.
sourceimpl ParserConfig
impl ParserConfig
sourcepub fn coalesce_characters(self, value: bool) -> ParserConfig
pub fn coalesce_characters(self, value: bool) -> ParserConfig
Sets the field to the provided value and returns updated config object.
sourceimpl ParserConfig
impl ParserConfig
sourcepub fn ignore_end_of_stream(self, value: bool) -> ParserConfig
pub fn ignore_end_of_stream(self, value: bool) -> ParserConfig
Sets the field to the provided value and returns updated config object.
Trait Implementations
sourceimpl Clone for ParserConfig
impl Clone for ParserConfig
sourcefn clone(&self) -> ParserConfig
fn clone(&self) -> ParserConfig
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for ParserConfig
impl Debug for ParserConfig
sourceimpl Default for ParserConfig
impl Default for ParserConfig
sourcefn default() -> ParserConfig
fn default() -> ParserConfig
Returns the “default value” for a type. Read more
sourceimpl PartialEq<ParserConfig> for ParserConfig
impl PartialEq<ParserConfig> for ParserConfig
sourcefn eq(&self, other: &ParserConfig) -> bool
fn eq(&self, other: &ParserConfig) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &ParserConfig) -> bool
fn ne(&self, other: &ParserConfig) -> bool
This method tests for !=
.
impl Eq for ParserConfig
impl StructuralEq for ParserConfig
impl StructuralPartialEq for ParserConfig
Auto Trait Implementations
impl RefUnwindSafe for ParserConfig
impl Send for ParserConfig
impl Sync for ParserConfig
impl Unpin for ParserConfig
impl UnwindSafe for ParserConfig
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more