private static Bom Deserialize(MemoryStream xmlStream) { Contract.Requires(xmlStream != null); xmlStream.Position = 0; string xmlns = null; using (var reader = XmlReader.Create(xmlStream)) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { xmlns = reader.NamespaceURI; break; } } } xmlStream.Position = 0; if (xmlns != null && !SpecificationVersionHelpers.IsValidXmlNamespace(xmlns)) { xmlns = null; } var serializer = new XmlSerializer(typeof(Bom), xmlns); var bom = (Bom)serializer.Deserialize(xmlStream); bom.SpecVersionString = SpecificationVersionHelpers.XmlNamespaceSpecificationVersion(xmlns); CleanupEmptyXmlArrays(bom); return(bom); }
private static XmlAttributeOverrides GetOverrides(SpecificationVersion specificationVersion) { var overrideBuilder = new OverrideXml(); overrideBuilder.Override <Bom>() .Attr(new XmlRootAttribute("bom") { Namespace = SpecificationVersionHelpers.XmlNamespace(specificationVersion) }); return(overrideBuilder.Commit()); }
public void XmlNamespaceSpecificationVersionTest(string xmlns, string specVersionString) { Assert.Equal(specVersionString, SpecificationVersionHelpers.XmlNamespaceSpecificationVersion(xmlns)); }
public void IsValidXmlNamespaceTest(string xmlns, bool valid) { Assert.Equal(valid, SpecificationVersionHelpers.IsValidXmlNamespace(xmlns)); }