Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
        }