diff --git a/tokio-xmpp/examples/contact_addr.rs b/tokio-xmpp/examples/contact_addr.rs
index c5ff776d07a99e32250309101981e826291f2d3c..1c10f292ad9d34bd5c6a33dc83d7197769c829ae 100644
--- a/tokio-xmpp/examples/contact_addr.rs
+++ b/tokio-xmpp/examples/contact_addr.rs
@@ -1,4 +1,5 @@
use futures::stream::StreamExt;
+use minidom::Element;
use std::env::args;
use std::process::exit;
use std::str::FromStr;
@@ -6,9 +7,9 @@ use tokio_xmpp::AsyncClient as Client;
use xmpp_parsers::{
disco::{DiscoInfoQuery, DiscoInfoResult},
iq::{Iq, IqType},
+ jid::{BareJid, Jid},
ns,
server_info::ServerInfo,
- BareJid, Element, Jid,
};
#[tokio::main]
diff --git a/tokio-xmpp/examples/download_avatars.rs b/tokio-xmpp/examples/download_avatars.rs
index d8dbd67ff7c54e6758c40695860d349799c55631..945ee56c2f39ce3bc094e97227514f2b34e2ad1a 100644
--- a/tokio-xmpp/examples/download_avatars.rs
+++ b/tokio-xmpp/examples/download_avatars.rs
@@ -1,4 +1,5 @@
use futures::stream::StreamExt;
+use minidom::Element;
use std::env::args;
use std::fs::{create_dir_all, File};
use std::io::{self, Write};
@@ -11,6 +12,7 @@ use xmpp_parsers::{
disco::{DiscoInfoQuery, DiscoInfoResult, Feature, Identity},
hashes::Algo,
iq::{Iq, IqType},
+ jid::{BareJid, Jid},
message::Message,
ns,
presence::{Presence, Type as PresenceType},
@@ -20,7 +22,6 @@ use xmpp_parsers::{
NodeName,
},
stanza_error::{DefinedCondition, ErrorType, StanzaError},
- BareJid, Element, Jid,
};
#[tokio::main]
diff --git a/tokio-xmpp/examples/echo_bot.rs b/tokio-xmpp/examples/echo_bot.rs
index 9be2173e968b5ec4bcac32f39fddc551ace2fafb..3dcf3693a312e79d9bf5ca5bfecd123b399d6810 100644
--- a/tokio-xmpp/examples/echo_bot.rs
+++ b/tokio-xmpp/examples/echo_bot.rs
@@ -1,11 +1,12 @@
use futures::stream::StreamExt;
+use minidom::Element;
use std::env::args;
use std::process::exit;
use std::str::FromStr;
use tokio_xmpp::AsyncClient as Client;
+use xmpp_parsers::jid::{BareJid, Jid};
use xmpp_parsers::message::{Body, Message, MessageType};
use xmpp_parsers::presence::{Presence, Show as PresenceShow, Type as PresenceType};
-use xmpp_parsers::{BareJid, Element, Jid};
#[tokio::main]
async fn main() {
diff --git a/tokio-xmpp/examples/echo_component.rs b/tokio-xmpp/examples/echo_component.rs
index 98417dcea3509beb63214a14b0776211c9de80ec..bfaf44be0a5f4b38c887ab264a5fd4179c8d86e9 100644
--- a/tokio-xmpp/examples/echo_component.rs
+++ b/tokio-xmpp/examples/echo_component.rs
@@ -1,11 +1,12 @@
use futures::stream::StreamExt;
+use minidom::Element;
use std::env::args;
use std::process::exit;
use std::str::FromStr;
use tokio_xmpp::tcp::TcpComponent as Component;
+use xmpp_parsers::jid::Jid;
use xmpp_parsers::message::{Body, Message, MessageType};
use xmpp_parsers::presence::{Presence, Show as PresenceShow, Type as PresenceType};
-use xmpp_parsers::{Element, Jid};
#[tokio::main]
async fn main() {
diff --git a/tokio-xmpp/examples/send_message.rs b/tokio-xmpp/examples/send_message.rs
index d929cd6763558e7b5cc0683fb556af89600ffd33..96f97ca6bef631f7645d287d21b8d76a3821bc9a 100644
--- a/tokio-xmpp/examples/send_message.rs
+++ b/tokio-xmpp/examples/send_message.rs
@@ -3,8 +3,8 @@ use std::io::{stdin, Read};
use std::process::exit;
use std::str::FromStr;
use tokio_xmpp::SimpleClient as Client;
+use xmpp_parsers::jid::Jid;
use xmpp_parsers::message::{Body, Message};
-use xmpp_parsers::Jid;
#[tokio::main]
async fn main() {
diff --git a/tokio-xmpp/src/client/async_client.rs b/tokio-xmpp/src/client/async_client.rs
index 4cb52285df10c7bc83480b7e5e96efdbf2f5417b..5c5b5fa2c489977f0bb983d72e049888bb55831f 100644
--- a/tokio-xmpp/src/client/async_client.rs
+++ b/tokio-xmpp/src/client/async_client.rs
@@ -1,9 +1,10 @@
use futures::{sink::SinkExt, task::Poll, Future, Sink, Stream};
+use minidom::Element;
use std::mem::replace;
use std::pin::Pin;
use std::task::Context;
use tokio::task::JoinHandle;
-use xmpp_parsers::{ns, Element, Jid};
+use xmpp_parsers::{jid::Jid, ns};
use super::connect::client_login;
use crate::connect::{AsyncReadAndWrite, ServerConnector};
diff --git a/tokio-xmpp/src/client/connect.rs b/tokio-xmpp/src/client/connect.rs
index 29d710244e73b855b350f9ed1121bae9444f877a..41db57e095fce1ec3dec67c305a2927ef47fc4cc 100644
--- a/tokio-xmpp/src/client/connect.rs
+++ b/tokio-xmpp/src/client/connect.rs
@@ -1,5 +1,5 @@
use sasl::common::Credentials;
-use xmpp_parsers::{ns, Jid};
+use xmpp_parsers::{jid::Jid, ns};
use crate::client::auth::auth;
use crate::client::bind::bind;
diff --git a/tokio-xmpp/src/client/simple_client.rs b/tokio-xmpp/src/client/simple_client.rs
index 19ab2f97fd2f4b6a86bc7a9aca7bf6f5492a344e..bb406e69df21f48e4bf3d8fb9e08270290b5c0f9 100644
--- a/tokio-xmpp/src/client/simple_client.rs
+++ b/tokio-xmpp/src/client/simple_client.rs
@@ -1,8 +1,9 @@
use futures::{sink::SinkExt, Sink, Stream};
+use minidom::Element;
use std::pin::Pin;
use std::task::{Context, Poll};
use tokio_stream::StreamExt;
-use xmpp_parsers::{ns, Element, Jid};
+use xmpp_parsers::{jid::Jid, ns};
use crate::connect::ServerConnector;
use crate::stream_features::StreamFeatures;
diff --git a/tokio-xmpp/src/component/connect.rs b/tokio-xmpp/src/component/connect.rs
index 509172ee0670524275e9196488c238dcaa47f474..63e66d07d28de5c28578e22a88e6347c7a49e26d 100644
--- a/tokio-xmpp/src/component/connect.rs
+++ b/tokio-xmpp/src/component/connect.rs
@@ -1,4 +1,4 @@
-use xmpp_parsers::{ns, Jid};
+use xmpp_parsers::{jid::Jid, ns};
use crate::connect::ServerConnector;
use crate::{xmpp_stream::XMPPStream, Error};
diff --git a/tokio-xmpp/src/component/mod.rs b/tokio-xmpp/src/component/mod.rs
index 5dc6860d4a4df5f5379593d678599b4cfedce308..17b1b38e0993d59b992cf1bb23386c4e87360c2d 100644
--- a/tokio-xmpp/src/component/mod.rs
+++ b/tokio-xmpp/src/component/mod.rs
@@ -2,10 +2,11 @@
//! XMPP server under a JID consisting of just a domain name. They are
//! allowed to use any user and resource identifiers in their stanzas.
use futures::{sink::SinkExt, task::Poll, Sink, Stream};
+use minidom::Element;
use std::pin::Pin;
use std::str::FromStr;
use std::task::Context;
-use xmpp_parsers::{ns, Element, Jid};
+use xmpp_parsers::{jid::Jid, ns};
use self::connect::component_login;
diff --git a/tokio-xmpp/src/connect.rs b/tokio-xmpp/src/connect.rs
index 79f79de36991b406845c93eafe9b697b2293a363..ebd1781f725d22e95fcb77faa73ce6ac55c7cf23 100644
--- a/tokio-xmpp/src/connect.rs
+++ b/tokio-xmpp/src/connect.rs
@@ -2,7 +2,7 @@
use sasl::common::ChannelBinding;
use tokio::io::{AsyncRead, AsyncWrite};
-use xmpp_parsers::Jid;
+use xmpp_parsers::jid::Jid;
use crate::xmpp_stream::XMPPStream;
diff --git a/tokio-xmpp/src/error.rs b/tokio-xmpp/src/error.rs
index 7cf8879e80b2100c898df6e656e2ce885bdcf566..c0299c40a8acb2d7e098fbbbd03a1a6c5cc355dd 100644
--- a/tokio-xmpp/src/error.rs
+++ b/tokio-xmpp/src/error.rs
@@ -6,7 +6,7 @@ use std::io::Error as IoError;
use std::str::Utf8Error;
use xmpp_parsers::sasl::DefinedCondition as SaslDefinedCondition;
-use xmpp_parsers::{Error as ParsersError, JidParseError};
+use xmpp_parsers::{jid::Error as JidParseError, Error as ParsersError};
use crate::connect::ServerConnectorError;
diff --git a/tokio-xmpp/src/event.rs b/tokio-xmpp/src/event.rs
index 2550f593ec6575de5a8a7ed1b644b1c7c9712bc9..05eaf9e69416e0d1339f29c549b3c4c9a7238d23 100644
--- a/tokio-xmpp/src/event.rs
+++ b/tokio-xmpp/src/event.rs
@@ -1,5 +1,6 @@
use super::Error;
-use xmpp_parsers::{Element, Jid};
+use minidom::Element;
+use xmpp_parsers::jid::Jid;
/// High-level event on the Stream implemented by Client and Component
#[derive(Debug)]
diff --git a/tokio-xmpp/src/lib.rs b/tokio-xmpp/src/lib.rs
index ba2e6048d1d23e2ca1e9b3b3c41773f2158ac921..165149dfbf320da70049278f07941f06d39cd647 100644
--- a/tokio-xmpp/src/lib.rs
+++ b/tokio-xmpp/src/lib.rs
@@ -43,6 +43,6 @@ mod error;
pub use crate::error::{AuthError, Error, ParseError, ProtocolError};
// Re-exports
-pub use minidom::Element;
+pub use minidom;
pub use xmpp_parsers as parsers;
-pub use xmpp_parsers::{BareJid, FullJid, Jid, JidParseError};
+pub use xmpp_parsers::jid;
diff --git a/tokio-xmpp/src/starttls/client.rs b/tokio-xmpp/src/starttls/client.rs
index 2a2395cd3486fe338d7107b3483cabfab9b72056..d1d79761ddad14e634308a80f5d236482d2d43ce 100644
--- a/tokio-xmpp/src/starttls/client.rs
+++ b/tokio-xmpp/src/starttls/client.rs
@@ -1,6 +1,6 @@
use std::str::FromStr;
-use xmpp_parsers::Jid;
+use xmpp_parsers::jid::Jid;
use crate::{AsyncClient, AsyncConfig, Error, SimpleClient};
diff --git a/tokio-xmpp/src/starttls/mod.rs b/tokio-xmpp/src/starttls/mod.rs
index f80438a9e6820a4e98691c32f93a3d7197426989..cefa4def82b9d7051c09e2442dc108541f21f5f1 100644
--- a/tokio-xmpp/src/starttls/mod.rs
+++ b/tokio-xmpp/src/starttls/mod.rs
@@ -18,12 +18,13 @@ use {
tokio_native_tls::{TlsConnector, TlsStream},
};
+use minidom::Element;
use sasl::common::ChannelBinding;
use tokio::{
io::{AsyncRead, AsyncWrite},
net::TcpStream,
};
-use xmpp_parsers::{ns, Element, Jid};
+use xmpp_parsers::{jid::Jid, ns};
use crate::{connect::ServerConnector, xmpp_codec::Packet, AsyncClient, SimpleClient};
use crate::{connect::ServerConnectorError, xmpp_stream::XMPPStream};
diff --git a/tokio-xmpp/src/stream_features.rs b/tokio-xmpp/src/stream_features.rs
index 63263f3da0e8ee18a615adeecc0c6cd78ef99238..5599e841d3f3f46451c12b2637784fec926ca91a 100644
--- a/tokio-xmpp/src/stream_features.rs
+++ b/tokio-xmpp/src/stream_features.rs
@@ -1,7 +1,8 @@
//! Contains wrapper for ``
use crate::error::AuthError;
-use xmpp_parsers::{ns, Element};
+use minidom::Element;
+use xmpp_parsers::ns;
/// Wraps ``, usually the very first nonza of an
/// XMPPStream.
diff --git a/tokio-xmpp/src/stream_start.rs b/tokio-xmpp/src/stream_start.rs
index 700f802c18119321667e3e8b6b7a177da3afdb88..5b37f81e38f91dfb6fb4acc0dfafb0fd14e000f7 100644
--- a/tokio-xmpp/src/stream_start.rs
+++ b/tokio-xmpp/src/stream_start.rs
@@ -1,7 +1,8 @@
use futures::{sink::SinkExt, stream::StreamExt};
+use minidom::Element;
use tokio::io::{AsyncRead, AsyncWrite};
use tokio_util::codec::Framed;
-use xmpp_parsers::{ns, Element, Jid};
+use xmpp_parsers::{jid::Jid, ns};
use crate::xmpp_codec::{Packet, XmppCodec};
use crate::xmpp_stream::XMPPStream;
diff --git a/tokio-xmpp/src/tcp/mod.rs b/tokio-xmpp/src/tcp/mod.rs
index db2460080dbaa68a1acc260ad24bb8c35d37b550..321ceca337be8f778a242d0bbf5149e00ca8566b 100644
--- a/tokio-xmpp/src/tcp/mod.rs
+++ b/tokio-xmpp/src/tcp/mod.rs
@@ -38,7 +38,7 @@ impl ServerConnector for TcpServerConnector {
type Error = Error;
async fn connect(
&self,
- jid: &xmpp_parsers::Jid,
+ jid: &xmpp_parsers::jid::Jid,
ns: &str,
) -> Result, Self::Error> {
let stream = TcpStream::connect(&*self.0)
diff --git a/tokio-xmpp/src/xmpp_codec.rs b/tokio-xmpp/src/xmpp_codec.rs
index 291236420502fe35325e5ba5ed0b612e22d5ac74..fd56a6d2cd4f7b2f44604a0d56b960ee0ee44269 100644
--- a/tokio-xmpp/src/xmpp_codec.rs
+++ b/tokio-xmpp/src/xmpp_codec.rs
@@ -4,6 +4,7 @@ use crate::Error;
use bytes::{BufMut, BytesMut};
use log::debug;
use minidom::tree_builder::TreeBuilder;
+use minidom::Element;
use rxml::{Parse, RawParser};
use std::collections::HashMap;
use std::fmt::Write;
@@ -11,7 +12,6 @@ use std::io;
#[cfg(feature = "syntax-highlighting")]
use std::sync::OnceLock;
use tokio_util::codec::{Decoder, Encoder};
-use xmpp_parsers::Element;
#[cfg(feature = "syntax-highlighting")]
static PS: OnceLock = OnceLock::new();
diff --git a/tokio-xmpp/src/xmpp_stream.rs b/tokio-xmpp/src/xmpp_stream.rs
index 57bd8e52ba8e2739fe1d58e5deefcbf20e9f670a..97d84b2ef808bba81cf753a67581ad5ae84410f6 100644
--- a/tokio-xmpp/src/xmpp_stream.rs
+++ b/tokio-xmpp/src/xmpp_stream.rs
@@ -2,12 +2,13 @@
use futures::sink::Send;
use futures::{sink::SinkExt, task::Poll, Sink, Stream};
+use minidom::Element;
use rand::{thread_rng, Rng};
use std::pin::Pin;
use std::task::Context;
use tokio::io::{AsyncRead, AsyncWrite};
use tokio_util::codec::Framed;
-use xmpp_parsers::{Element, Jid};
+use xmpp_parsers::jid::Jid;
use crate::stream_features::StreamFeatures;
use crate::stream_start;