示例#1
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));
        }
示例#2
0
        internal static QName Parse(XMLLib lib, Context cx, string localName)
        {
            if (localName == null)
            {
                throw new ArgumentNullException("localName");
            }

            String uri;
            String prefix;

            if ("*".Equals(localName))
            {
                uri    = null;
                prefix = null;
            }
            else
            {
                Namespace ns = lib.GetDefaultNamespace(cx);
                uri    = ns.Uri;
                prefix = ns.Prefix;
            }

            return(new QName(lib, uri, localName, prefix));
        }
示例#3
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);
        }
示例#4
0
        internal static QName Parse (XMLLib lib, Context cx, string localName)
        {
            if (localName == null)
                throw new ArgumentNullException ("localName");

            String uri;
            String prefix;

            if ("*".Equals (localName)) {
                uri = null;
                prefix = null;
            }
            else {
                Namespace ns = lib.GetDefaultNamespace (cx);
                uri = ns.Uri;
                prefix = ns.Prefix;
            }

            return new QName (lib, uri, localName, prefix);
        }