diff --git a/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs b/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs
index 3767027306..cac89edb4b 100644
--- a/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs
+++ b/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs
@@ -218,7 +218,6 @@ namespace OpenSim.Framework.Serialization.External
// Deal with bug introduced in Oct. 20 (1eb3e6cc43e2a7b4053bc1185c7c88e22356c5e8)
// Fix bad assets before sending them elsewhere
xmlData = SanitizeXml(xmlData);
-
using (StringWriter sw = new StringWriter())
using (XmlTextWriter writer = new XmlTextWriter(sw))
using (XmlTextReader wrappedReader = new XmlTextReader(xmlData, XmlNodeType.Element, null))
@@ -226,7 +225,7 @@ namespace OpenSim.Framework.Serialization.External
{
TransformXml(reader, writer, sceneName, homeURL, userService, scopeID);
- // Console.WriteLine("Output: [{0}]", sw.ToString());
+ // Console.WriteLine("Output: [{0}]", sw.ToString());
return sw.ToString();
}
@@ -242,12 +241,12 @@ namespace OpenSim.Framework.Serialization.External
while (reader.Read())
{
- // Console.WriteLine("Depth: {0}, name {1}", reader.Depth, reader.Name);
+ // Console.WriteLine("Depth: {0}, name {1}", reader.Depth, reader.Name);
switch (reader.NodeType)
{
case XmlNodeType.Attribute:
- // Console.WriteLine("FOUND ATTRIBUTE {0}", reader.Name);
+ // Console.WriteLine("FOUND ATTRIBUTE {0}", reader.Name);
writer.WriteAttributeString(reader.Name, reader.Value);
break;
@@ -395,14 +394,19 @@ namespace OpenSim.Framework.Serialization.External
}
///
- /// Sanitation for bug introduced in Oct. 20 (1eb3e6cc43e2a7b4053bc1185c7c88e22356c5e8)
+ /// Sanitation for bug introduced in Oct. 20 2014 (1eb3e6cc43e2a7b4053bc1185c7c88e22356c5e8)
///
///
///
public static string SanitizeXml(string xmlData)
{
- xmlData = xmlData.Replace("xmlns:xmlns:xmlns:", "xmlns:"); // temp fix, things do show this
- return xmlData.Replace("xmlns:xmlns:", "xmlns:");
+ if (!string.IsNullOrWhiteSpace(xmlData))
+ {
+ // Loop, because it may contain multiple
+ while (xmlData.Contains("xmlns:xmlns:"))
+ xmlData = xmlData.Replace("xmlns:xmlns:", "xmlns:");
+ }
+ return xmlData;
}
}
}