The following test case, in RdfXmlTests, can be added to show the issue
[TestMethod]
public void ParsingRdfXmlWithUrlEscapedNodes()
{
NTriplesFormatter formatter = new NTriplesFormatter();
RdfXmlParser domParser = new RdfXmlParser(RdfXmlParserMode.DOM);
Graph g = new Graph();
domParser.Load(g, "urlencodes-in-rdfxml.rdf");
IUriNode encodedNode = g.GetUriNode(new Uri("http://example.com/some%40encoded%2FUri"));
Assert.IsNotNull(encodedNode, "The encoded node should be returned by its encoded URI");
IUriNode unencodedNode = g.GetUriNode(new Uri("http://example.com/some@encoded/Uri"));
Assert.IsNotNull(unencodedNode, "The unencoded node should be returned by its unencoded URI");
IUriNode encoded = g.CreateUriNode(new Uri("http://example.org/schema/encoded"));
Assert.IsTrue(g.ContainsTriple(new Triple(encodedNode, encoded, g.CreateLiteralNode("true"))), "The encoded node should have the property 'true' from the file");
Assert.IsTrue(g.ContainsTriple(new Triple(unencodedNode, encoded, g.CreateLiteralNode("false"))), "The unencoded node should have the property 'false' from the file");
}