So verwenden Sie XML zu Rust
- Fügen Sie ein repräsentatives XML-Beispiel ein, idealerweise eines, in dem alle optionalen Felder gefüllt sind.
- Legen Sie den Namen des Wurzeltyps fest und entscheiden Sie, ob Sie auch Hilfscode oder nur Typen haben möchten.
- Kopieren Sie den erzeugten Rust-Code in Ihr Projekt.
Über XML zu Rust
Modellklassen für eine große XML-Payload von Hand zu schreiben, ist öde, und genau dort schleichen sich Tippfehler ein. Fügen Sie hier ein Beispiel ein, und der Generator ermittelt die Struktur: welche Felder es gibt, welche Objekte, welche Arrays sind und welchen Typ jeder Wert hat. Die Ausgabe sind Structs, die Serialize und Deserialize aus der serde-Crate ableiten.
XML wird zuerst auf dieselbe Weise in JSON umgewandelt wie in unserem Tool XML zu JSON: Attribute erhalten das Präfix @_, und Textinhalt neben Attributen heißt #text. Aus diesem Ergebnis werden die Rust-Typen erzeugt. Feldnamen werden in snake_case umgewandelt, mit einem serde-rename-Attribut, wenn sich das Original unterscheidet.
Den erzeugten Code verwenden
Fügen Sie serde und serde_json zu Cargo.toml hinzu und rufen Sie serde_json::from_str::<Root>(&json) auf.
Optionale Felder sind Option<T>. Null und fehlende Schlüssel werden beide zu None.