public UidCollector ParseFile() { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (collector.RootElementLineNumber < 0) { collector.RootElementLineNumber = reader.LineNumber; collector.RootElementLinePosition = reader.LinePosition; } if (reader.Name.IndexOf('.') < 0) { var uid = new Uid(reader.LineNumber, reader.LinePosition + reader.Name.Length, reader.Name, SpaceInsertion.BeforeUid); if (reader.HasAttributes) { reader.MoveToNextAttribute(); uid.LineNumber = reader.LineNumber; uid.LinePosition = reader.LinePosition; uid.Space = SpaceInsertion.AfterUid; do { string ns = nsMgr.LookupNamespace(reader.Prefix); //string ns = reader.NamespaceURI; if ((reader.LocalName == AttributeNameUid) && (ns == XamlNamespaceX)) { uid.Value = reader.Value; uid.LineNumber = reader.LineNumber; uid.LinePosition = reader.LinePosition; } else if ((reader.LocalName == AttributeNameName) && (ns == XamlNamespaceDefault)) { uid.FrameworkElementName = reader.Value; } else if ((reader.LocalName == AttributeNameName) && (ns == XamlNamespaceX)) { uid.FrameworkElementName = reader.Value; } else if (reader.Prefix == PerefixXmlns) { collector.AddNamespacePrefix(reader.LocalName); } } while (reader.MoveToNextAttribute()); } if (uid.Value == null) { string prefix = nsMgr.LookupPrefix(XamlNamespaceX); //string prefix = reader.LookupPrefix(XamlNamespaceX); if (prefix != string.Empty) { uid.NamespacePrefix = prefix; } } collector.AddUid(uid, true); } } } return(collector); }
/// <summary> /// Retrieves, as an option, a prefix in this namespace resolver corresponding to the specified namespace name. /// If the namespace name is unknown, the option will be empty. /// A namespace name may correspond to multiple prefixes, and this method is not guaranteed to return the same result from any two calls for the same input. /// </summary> /// <param name="namespaceResolver"></param> /// <param name="namespaceName"></param> /// <returns></returns> public static Opt <string> LookupPrefixOpt(this IXmlNamespaceResolver namespaceResolver, string namespaceName) { if (namespaceResolver == null) { throw new ArgumentNullException("namespaceResolver"); } if (namespaceName == null) { throw new ArgumentNullException("namespaceName"); } var prefix = namespaceResolver.LookupPrefix(namespaceName); return(Opt.FullIfNotNull(prefix)); }
protected static string QNameToString(XmlQualifiedName qname, IXmlNamespaceResolver nsResolver) { string prefix; if (nsResolver == null) { return(string.Concat("{", qname.Namespace, "}", qname.Name)); } prefix = nsResolver.LookupPrefix(qname.Namespace); if (prefix == null) { throw new InvalidCastException(SR.Format(SR.XmlConvert_TypeNoPrefix, qname.ToString(), qname.Namespace)); } return((prefix.Length != 0) ? string.Concat(prefix, ":", qname.Name) : qname.Name); }
protected static string QNameToString(XmlQualifiedName qname, IXmlNamespaceResolver nsResolver) { if (nsResolver == null) { return("{" + qname.Namespace + "}" + qname.Name); } string prefix = nsResolver.LookupPrefix(qname.Namespace); if (prefix == null) { throw new InvalidCastException(Res.GetString("XmlConvert_TypeNoPrefix", new object[] { qname.ToString(), qname.Namespace })); } if (prefix.Length == 0) { return(qname.Name); } return(prefix + ":" + qname.Name); }
internal XmlAtomicValue(XmlSchemaType xmlType, object value, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException("value"); } if (xmlType == null) { throw new ArgumentNullException("xmlType"); } this.xmlType = xmlType; this.objVal = value; if ((nsResolver != null) && ((this.xmlType.TypeCode == XmlTypeCode.QName) || (this.xmlType.TypeCode == XmlTypeCode.Notation))) { XmlQualifiedName objVal = this.objVal as XmlQualifiedName; string ns = objVal.Namespace; this.nsPrefix = new NamespacePrefixForQName(nsResolver.LookupPrefix(ns), ns); } }
internal XmlAtomicValue(XmlSchemaType xmlType, object value, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException(nameof(value)); } if (xmlType == null) { throw new ArgumentNullException(nameof(xmlType)); } _xmlType = xmlType; _objVal = value; if (nsResolver != null && (_xmlType.TypeCode == XmlTypeCode.QName || _xmlType.TypeCode == XmlTypeCode.Notation)) { //Its a qualifiedName XmlQualifiedName qname = _objVal as XmlQualifiedName; Debug.Assert(qname != null); //string representation is handled in a different overload string ns = qname.Namespace; _nsPrefix = new NamespacePrefixForQName(nsResolver.LookupPrefix(ns), ns); } }
/// <summary> /// The retrieve default namespace prefix. /// </summary> /// <param name="resolver"> /// The resolver. /// </param> /// <returns> /// The <see cref="string"/>. /// </returns> public static string RetrieveDefaultNamespacePrefix(IXmlNamespaceResolver resolver) { if (resolver == null) { return(null); } var str = resolver.LookupNamespace(string.Empty); if (string.IsNullOrEmpty(str)) { return(string.Empty); } var prefix = resolver.LookupPrefix(str); if (string.IsNullOrEmpty(prefix)) { var namespacesInScope = resolver.GetNamespacesInScope(XmlNamespaceScope.All); if (namespacesInScope == null) { return(prefix); } foreach (var pair in namespacesInScope) { var key = pair.Key; if (!string.IsNullOrEmpty(key) && (string.Compare(pair.Value, str, StringComparison.Ordinal) == 0)) { return(key); } } } return(prefix); }
string?IXmlNamespaceResolver.LookupPrefix(string namespaceName) { return(_readerAsResolver?.LookupPrefix(namespaceName)); }
string IXmlNamespaceResolver.LookupPrefix(string namespaceName) { return(readerAsNSResolver.LookupPrefix(namespaceName)); }
public string LookupPrefix(string ns) { return(nsResolver.LookupPrefix(ns)); }
public string LookupPrefix(string ns) { IXmlNamespaceResolver nsr = reader as IXmlNamespaceResolver; return(nsr.LookupPrefix(NameTable.Get(ns))); }
string IXmlNamespaceResolver.LookupPrefix(string namespaceName) { return((_readerAsResolver == null) ? null : _readerAsResolver.LookupPrefix(namespaceName)); }
string IXmlNamespaceResolver.LookupPrefix(string ns) { return(nsResolver != null?nsResolver.LookupPrefix(ns) : String.Empty); }
public string LookupPrefix(string namespaceName) => _baseNamespaceResolver?.LookupPrefix( _nsmap.FirstOrDefault(x => x.Value == namespaceName).Value ?? namespaceName);
public string LookupPrefix(string namespaceName) => _other.LookupPrefix(namespaceName);
protected static string QNameToString(XmlQualifiedName qname, IXmlNamespaceResolver nsResolver) { if (nsResolver == null) { return ("{" + qname.Namespace + "}" + qname.Name); } string prefix = nsResolver.LookupPrefix(qname.Namespace); if (prefix == null) { throw new InvalidCastException(Res.GetString("XmlConvert_TypeNoPrefix", new object[] { qname.ToString(), qname.Namespace })); } if (prefix.Length == 0) { return qname.Name; } return (prefix + ":" + qname.Name); }
internal string LookupPrefix(string namespaceName) { return(coreReaderNSResolver.LookupPrefix(namespaceName)); }
internal XmlAtomicValue(XmlSchemaType xmlType, object value, IXmlNamespaceResolver nsResolver) { if (value == null) throw new ArgumentNullException(nameof(value)); if (xmlType == null) throw new ArgumentNullException(nameof(xmlType)); _xmlType = xmlType; _objVal = value; if (nsResolver != null && (_xmlType.TypeCode == XmlTypeCode.QName || _xmlType.TypeCode == XmlTypeCode.Notation)) { //Its a qualifiedName XmlQualifiedName qname = _objVal as XmlQualifiedName; Debug.Assert(qname != null); //string representation is handled in a different overload string ns = qname.Namespace; _nsPrefix = new NamespacePrefixForQName(nsResolver.LookupPrefix(ns), ns); } }
private static string QNameToString(XmlQualifiedName qname, IXmlNamespaceResolver nsResolver) { string prefix; if (nsResolver == null) return string.Concat("{", qname.Namespace, "}", qname.Name); prefix = nsResolver.LookupPrefix(qname.Namespace); if (prefix == null) throw new InvalidCastException(SR.Format(SR.XmlConvert_TypeNoPrefix, qname.ToString(), qname.Namespace)); return (prefix.Length != 0) ? string.Concat(prefix, ":", qname.Name) : qname.Name; }
/// <summary> /// Creates an XSI:TYPE attribute that is friendly for RMIM structures /// </summary> private string CreateXSITypeName(Type type, Type interactionContextType, IXmlNamespaceResolver namespaceResolver) { StringBuilder xsiType = new StringBuilder(); // Scan the registered xsi:types first before creating a type lock(this.m_syncRoot) foreach (var itm in this.s_typeNameMaps) if (itm.Value == type) return itm.Key; // First, does the type acutally have a model name? Object[] saList = type.GetCustomAttributes(typeof(StructureAttribute), true); if (saList.Length == 0) xsiType.Append(type.FullName); else { StructureAttribute sa = saList[0] as StructureAttribute; // Namespace prefix? if (!String.IsNullOrEmpty(sa.NamespaceUri) && namespaceResolver != null) { string prefix = namespaceResolver.LookupPrefix(sa.NamespaceUri); if (!String.IsNullOrEmpty(prefix)) xsiType.AppendFormat("{0}:", prefix); } // Is the type generic? if (type.IsGenericType) // yes, then first we output the interaction { if (interactionContextType == null) throw new FormatterException("Cannot emit xsi:type when no interaction context is provided!"); Object[] inSaList = interactionContextType.GetCustomAttributes(typeof(StructureAttribute), true); if (inSaList.Length == 0) throw new FormatterException("Invalid interaction context. Interaction context type must carry a StructureAttribute"); xsiType.AppendFormat("{0}.", (inSaList[0] as StructureAttribute).Name); } // Output the model and class name if(sa.Model != null) xsiType.AppendFormat("{0}.{1}", sa.Model, sa.Name); else xsiType.Append(sa.Name); } return xsiType.ToString(); }