static string GetValue(object o, XmlNode n) { if (o is Altova.Types.QName) { Altova.Types.QName q = (Altova.Types.QName)o; if (q.Uri == null || q.Uri.Length == 0) { return(q.LocalName); } String prefix = n.GetPrefixOfNamespace(q.Uri); if (prefix == null || prefix.Length == 0) { if (q.Prefix != null && n.GetNamespaceOfPrefix(q.Prefix) == q.Uri) { prefix = q.Prefix; } else { prefix = Altova.Xml.XmlTreeOperations.FindUnusedPrefix(n, q.Prefix); ((XmlElement)n).SetAttribute("xmlns:" + prefix, q.Uri); } } int i = q.LocalName.IndexOf(':'); if (i == -1) { return(prefix + ":" + q.LocalName); } return(prefix + ":" + q.LocalName.Substring(i + 1)); } if (o is Altova.Mapforce.IMFNode) { Altova.Mapforce.IMFNode node = (Altova.Mapforce.IMFNode)o; string s = ""; foreach (object v in node.Select(Altova.Mapforce.MFQueryKind.AllChildren, null)) { s += GetValue(v, n); } return(s); } return(o.ToString()); }
public Altova.Types.QName GetQNameValue() { IEnumerable children = Select(MFQueryKind.AllChildren, null); IEnumerator en = children.GetEnumerator(); if (!en.MoveNext()) { throw new Exception("Trying to convert NULL to QName."); } Altova.Types.QName qn = (Altova.Types.QName)en.Current; if (en.MoveNext()) { throw new Exception("Trying to convert multiple values to QName."); } return(qn); }