protected XmlnsDefinitionMap(ITypeResolver typeResolver, IAssembly targetAssembly, XmlNamespaceCanonicalization canonicalization) { this.typeResolver = typeResolver; this.map = new Dictionary<IXmlNamespace, XmlnsDefinitionMap.XmlNamespaceTypeMap>(); this.targetAssembly = targetAssembly; this.canonicalization = canonicalization; }
public XmlNamespace GetXmlNamespace(XmlnsPrefix prefix, XmlNamespaceCanonicalization canonicalization) { if (prefix == XmlnsPrefix.EmptyPrefix) { return(XmlNamespace.AvalonXmlNamespace); } if (prefix.Value == "x") { return(XmlNamespace.XamlXmlNamespace); } return((XmlNamespace)null); }
XmlNamespace IXmlNamespaceResolver.GetXmlNamespace(XmlnsPrefix prefix, XmlNamespaceCanonicalization canonicalization) { for (XmlElementReference elementReference = this; elementReference != null; elementReference = elementReference.Parent as XmlElementReference) { foreach (XmlElementReference.Attribute attribute in elementReference.AttributesToPreserve) { if ((attribute.Type == XmlElementReference.AttributeType.Xmlns || attribute.Type == XmlElementReference.AttributeType.SerializerAddedXmlns) && string.Equals(string.IsNullOrEmpty(attribute.XmlAttribute.Prefix) ? attribute.XmlAttribute.Prefix : attribute.XmlAttribute.LocalName, prefix.Value, StringComparison.Ordinal)) { return(XmlNamespace.ToNamespace(attribute.XmlAttribute.Value.Value, canonicalization)); } } } return((XmlNamespace)null); }
public static XmlNamespace ToNamespace(string value, XmlNamespaceCanonicalization canonicalization) { switch (value) { case "http://schemas.microsoft.com/winfx/2006/xaml/presentation": if (canonicalization == XmlNamespaceCanonicalization.ToJolt) { return(XmlNamespace.JoltXmlNamespace); } return(XmlNamespace.AvalonXmlNamespace); case "http://schemas.microsoft.com/client/2007": if (canonicalization == XmlNamespaceCanonicalization.ToAvalon) { return(XmlNamespace.AvalonXmlNamespace); } return(XmlNamespace.JoltXmlNamespace); case "http://schemas.microsoft.com/netfx/2007/xaml/presentation": return(XmlNamespace.NetFx2007Namespace); case "http://schemas.microsoft.com/winfx/2006/xaml": return(XmlNamespace.XamlXmlNamespace); case "http://schemas.microsoft.com/winfx/2006/xaml/presentation/options": return(XmlNamespace.PresentationOptionsXmlNamespace); case "http://schemas.openxmlformats.org/markup-compatibility/2006": return(XmlNamespace.CompatibilityXmlNamespace); case "http://schemas.microsoft.com/expression/blend/2008": case "http://schemas.microsoft.com/expression/interactivedesigner/2006": case "http://schemas.microsoft.com/expression/blend/2006": return(XmlNamespace.DesignTimeXmlNamespace); case "http://schemas.microsoft.com/expression/blend/extensions/annotations/2008": return(XmlNamespace.AnnotationsXmlNamespace); default: return(new XmlNamespace(value)); } }