using System.Xml.Serialization;
public static void Main()
var xsd = new XmlSchemaSet();
XmlSchema.Read(new StringReader(
targetNamespace = "http://example.org/scratch"
xmlns = "http://example.org/scratch"
xmlns:xs = "http://www.w3.org/2001/XMLSchema">
<xs:element name="root" type="xs:token"/>
<pre:root xmlns:pre="http://example.org/scratch"> abc </pre:root>
var xmlReaderSettings = new XmlReaderSettings
DtdProcessing = DtdProcessing.Prohibit,
ValidationType = ValidationType.Schema,
using var xreader1 = XmlReader.Create(new StringReader(xdoc), xmlReaderSettings);
xreader1.MoveToContent();
xreader1.ReadElementContentAsString().Length.Dump();
using var xreader2 = XmlReader.Create(new StringReader(xdoc), xmlReaderSettings);
var r = (Root)new XmlSerializer(typeof(Root)).Deserialize(xreader2);
[XmlRoot(Namespace = "http://example.org/scratch", ElementName = "root")]
[XmlText(DataType = "token")]
public string Value {get;set;}