:sig DValue xml_decode(String s) :params s : XML source string return value : element-shaped DValue :see >markup xml_encode json_decode 0_DValue 0_String :content Parses a simple XML document into a structured `DValue`. `xml_decode()` parses a compact XML subset. It does not validate schemas, DTDs, namespaces, or document types. It parses the first root element and returns the same structural element shape accepted by `xml_encode()`. Try the live example in the [XML demo](../demo/xml.uce). Return shape: Example: CDATA and numeric entities are folded into text: Supported parser features: - elements - attributes with quoted values - self-closing tags - text nodes - XML entities such as `&`, `<`, `>`, `"`, and `'` - decimal and hexadecimal numeric entities - comments, processing instructions, and CDATA sections Whitespace-only text between child elements is ignored. Mixed non-empty text is concatenated into `node["text"]`. Malformed XML raises a request-visible runtime error. :example DValue node = xml_decode("Ada"); print(node.is_array() ? "xml\n" : "empty\n");