示例#1
0
        internal XMLName toQualifiedName(Context cx, Object namespaceValue,
                                         Object nameValue)
        {
            // This is duplication of constructQName(cx, namespaceValue, nameValue)
            // but for XMLName

            String uri;
            String localName;

            if (nameValue is QName)
            {
                QName qname = (QName)nameValue;
                localName = qname.LocalName;
            }
            else
            {
                localName = ScriptConvert.ToString(nameValue);
            }

            Namespace ns;

            if (namespaceValue == Undefined.Value)
            {
                if ("*".Equals(localName))
                {
                    ns = null;
                }
                else
                {
                    ns = GetDefaultNamespace(cx);
                }
            }
            else if (namespaceValue == null)
            {
                ns = null;
            }
            else if (namespaceValue is Namespace)
            {
                ns = (Namespace)namespaceValue;
            }
            else
            {
                ns = Namespace.Parse(this, cx, namespaceValue);
            }

            if (ns == null)
            {
                uri = null;
            }
            else
            {
                uri = ns.Uri;
            }

            return(XMLName.FormProperty(uri, localName));
        }
示例#2
0
        internal static QName Parse(XMLLib lib, Context cx, object namespaceValue, object nameValue)
        {
            String uri;
            String localName;
            String prefix;

            if (nameValue is QName)
            {
                QName qname = (QName)nameValue;
                localName = qname.LocalName;
            }
            else
            {
                localName = ScriptConvert.ToString(nameValue);
            }

            Namespace ns;

            if (namespaceValue == Undefined.Value)
            {
                if ("*".Equals(localName))
                {
                    ns = null;
                }
                else
                {
                    ns = lib.GetDefaultNamespace(cx);
                }
            }
            else if (namespaceValue == null)
            {
                ns = null;
            }
            else if (namespaceValue is Namespace)
            {
                ns = (Namespace)namespaceValue;
            }
            else
            {
                ns = Namespace.Parse(lib, cx, namespaceValue);
            }

            if (ns == null)
            {
                uri    = null;
                prefix = null;
            }
            else
            {
                uri    = ns.Uri;
                prefix = ns.Prefix;
            }

            return(new QName(lib, uri, localName, prefix));
        }
示例#3
0
        private object jsConstructor(Context cx, bool inNewExpr, object [] args)
        {
            if (!inNewExpr && args.Length == 1)
            {
                return(Namespace.Parse(lib, cx, args [0]));
            }

            if (args.Length == 0)
            {
                return(Namespace.Parse(lib, cx));
            }
            else if (args.Length == 1)
            {
                return(Namespace.Parse(lib, cx, args [0]));
            }
            else
            {
                return(Namespace.Parse(lib, cx, args [0], args [1]));
            }
        }
示例#4
0
 public object ToDefaultXmlNamespace(Context cx, object uriValue)
 {
     return(Namespace.Parse(this, cx, uriValue));
 }