Hi,
You could get this working using a
XmlReader
and setting the used namespaces in a
XmlParserContext
/
XmlNamespaceManager
.
Here is the example code I used to test:
1 string xml = @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>
2 <svg width=""768"" height=""768"">
3 <image x=""0"" y=""0"" width=""768"" height=""768"" xlink:href=""images/mask.png""/>
4 </svg>";
5
6 XmlSerializer pageDeserializer = new XmlSerializer(typeof(svg));
7
8 using (TextReader txReader = new StringReader(xml))
9 {
10
11 XmlReaderSettings settings = new XmlReaderSettings();
12 settings.ConformanceLevel = ConformanceLevel.Fragment;
13 settings.IgnoreWhitespace = true;
14 settings.IgnoreComments = true;
15
16
17 NameTable nt = new NameTable();
18
19
20 XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
21
22
23 nsmgr.AddNamespace("xlink", "urn:http://namespaceurl.com");
24
25
26 XmlParserContext ctx = new XmlParserContext(null, nsmgr, null, XmlSpace.None);
27
28
29 XmlReader reader = XmlReader.Create(txReader, settings, ctx);
30
31
32 svg deserialize = (svg) pageDeserializer.Deserialize(reader);
33 }
Hope this helps.
Best regards and happy coding,
Stops