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);
        }
Beispiel #2
0
        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));
 }