Does it use [XmlElement] / [XmlAttribute] for XmlSerializer?
Yes. The generator emits classes annotated with [XmlRoot], [XmlElement("name")], and [XmlAttribute("name")] from System.Xml.Serialization. The classes deserialize directly with new XmlSerializer(typeof(Root)).Deserialize(stream) — no custom converter or reflection setup required.
Or System.Text.Json — can the same class be used?
No. System.Text.Json is JSON-only and ignores XML attributes. For XML use System.Xml.Serialization (XmlSerializer) or System.Xml.Linq (XDocument). If you also need JSON, add [JsonPropertyName] alongside the XML attributes — both serializers will respect their own annotations on the same POCO.
How are XML attributes mapped to C# properties?
XML attributes (e.g. <book id="bk101">) become public properties annotated with [XmlAttribute("id")]. Element children (<title>...</title>) instead receive [XmlElement("title")]. The two annotations tell XmlSerializer exactly where each value lives in the source XML, so round-tripping is lossless.
How are repeated elements like <tag> in <tags> represented?
Repeated child elements become a List<TagType> property on the parent class. XmlSerializer automatically marshals and unmarshals the list against repeated <tag> elements. You can also wrap with [XmlArray("tags")] [XmlArrayItem("tag")] for explicit container/item naming.
What about XML namespaces?
The basic generator strips namespaces. For namespace-aware binding add Namespace = "http://example.com/ns" to each [XmlElement] and [XmlRoot] attribute, or pass an XmlSerializerNamespaces instance to the serializer at runtime so prefixes are emitted on output.
Can elements with both attributes and text content be modeled?
Yes. <price currency="USD">59.99</price> generates a Price class with two properties — Currency annotated with [XmlAttribute("currency")] and a Value field annotated with [XmlText]. XmlSerializer populates the text content into the [XmlText] property while reading the attribute separately.
Is the XML I paste sent to your servers?
No. XML is parsed by the browser DOMParser and the C# code is generated entirely in JavaScript on your machine. Open DevTools → Network and you will see no requests when you click Convert. Safe for SOAP envelopes and configuration containing API keys, connection strings, or secrets.
How do I deserialize XML into the generated POCOs?
Use XmlSerializer: var serializer = new XmlSerializer(typeof(Book)); using var reader = new StringReader(xml); var book = (Book)serializer.Deserialize(reader); — the [XmlElement]/[XmlAttribute]-annotated properties are populated automatically. Works on .NET Framework 4.x, .NET Core, and .NET 6/7/8.