NewNamespace() private method

private NewNamespace ( string uri ) : Namespace
uri string
return Namespace
Ejemplo n.º 1
0
		//    See ECMA357 13.3.2
		internal Rhino.Xmlimpl.QName ConstructQName(XMLLibImpl lib, Context cx, object @namespace, object name)
		{
			string nameString = null;
			if (name is Rhino.Xmlimpl.QName)
			{
				if (@namespace == Undefined.instance)
				{
					return (Rhino.Xmlimpl.QName)name;
				}
				else
				{
					nameString = ((Rhino.Xmlimpl.QName)name).LocalName();
				}
			}
			if (name == Undefined.instance)
			{
				nameString = string.Empty;
			}
			else
			{
				nameString = ScriptRuntime.ToString(name);
			}
			if (@namespace == Undefined.instance)
			{
				if ("*".Equals(nameString))
				{
					@namespace = null;
				}
				else
				{
					@namespace = lib.GetDefaultNamespace(cx);
				}
			}
			Namespace namespaceNamespace = null;
			if (@namespace == null)
			{
			}
			else
			{
				//    leave as null
				if (@namespace is Namespace)
				{
					namespaceNamespace = (Namespace)@namespace;
				}
				else
				{
					namespaceNamespace = lib.NewNamespace(ScriptRuntime.ToString(@namespace));
				}
			}
			string q_localName = nameString;
			string q_uri;
			string q_prefix;
			if (@namespace == null)
			{
				q_uri = null;
				q_prefix = null;
			}
			else
			{
				//    corresponds to undefined; see QName class
				q_uri = namespaceNamespace.Uri();
				q_prefix = namespaceNamespace.Prefix();
			}
			return NewQName(lib, q_uri, q_localName, q_prefix);
		}