Enum values that include a namespace prefix (e.g. tns:Sender) are currently treated as literal strings during serialization/deserialization.
https://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd
<xs:simpleType name="faultcodeEnum">
<xs:restriction base="xs:QName">
<xs:enumeration value="tns:DataEncodingUnknown"/>
<xs:enumeration value="tns:MustUnderstand"/>
<xs:enumeration value="tns:Receiver"/>
<xs:enumeration value="tns:Sender"/>
<xs:enumeration value="tns:VersionMismatch"/>
</xs:restriction>
</xs:simpleType>
Code gen for quick-xml
#[derive(Debug)]
pub enum FaultcodeEnum {
TnsDataEncodingUnknown,
TnsMustUnderstand,
TnsReceiver,
TnsSender,
TnsVersionMismatch,
}
impl SerializeBytes for FaultcodeEnum {
fn serialize_bytes(&self, helper: &mut SerializeHelper) -> Result<Option<Cow<'_, str>>, Error> {
match self {
Self::TnsDataEncodingUnknown => Ok(Some(Cow::Borrowed("tns:DataEncodingUnknown"))),
Self::TnsMustUnderstand => Ok(Some(Cow::Borrowed("tns:MustUnderstand"))),
Self::TnsReceiver => Ok(Some(Cow::Borrowed("tns:Receiver"))),
Self::TnsSender => Ok(Some(Cow::Borrowed("tns:Sender"))),
Self::TnsVersionMismatch => Ok(Some(Cow::Borrowed("tns:VersionMismatch"))),
}
}
}
impl DeserializeBytes for FaultcodeEnum {
fn deserialize_bytes(helper: &mut DeserializeHelper, bytes: &[u8]) -> Result<Self, Error> {
match bytes {
b"tns:DataEncodingUnknown" => Ok(Self::TnsDataEncodingUnknown),
b"tns:MustUnderstand" => Ok(Self::TnsMustUnderstand),
b"tns:Receiver" => Ok(Self::TnsReceiver),
b"tns:Sender" => Ok(Self::TnsSender),
b"tns:VersionMismatch" => Ok(Self::TnsVersionMismatch),
x => Err(Error::from(ErrorKind::UnknownOrInvalidValue(
RawByteStr::from_slice(x),
))),
}
}
}
Enum values that include a namespace prefix (e.g.
tns:Sender) are currently treated as literal strings during serialization/deserialization.https://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd
Code gen for quick-xml