[Mono-list] XmlNamespaceManager.LookupPrefix

Marcey, Joel I joel.i.marcey@intel.com
Wed, 22 Jan 2003 09:07:06 -0800


Just to let you know, the edition 2 specification has corrected this
issue to state that:

"Return Value

A System.String containing the namespace URI for prefix, or null if
there is no mapped namespace."

I actually brought this issue up to the committee during a meeting
because I was implementing NamespaceManager for Intel's OCL.

If you go to one of the ECMA TC39 TG3 committee member mirror sites
(e.g. http://www.intel.com/ids/ecma), you can get the edition 2
specifications...posted there about 1 1/2 months ago. There are a lot of
fixes/updates to the edition 1 specification in these updated specs and
might help resolve some of these inconsistency issues you have been

- Joel Marcey

* The views expressed here do not necessarily represent those of Intel
Corporation, its subsidiaries and/or its employees.*

-----Original Message-----
From: ginga(A.E.) [mailto:ginga@kit.hi-ho.ne.jp]=20
Sent: Thursday, January 16, 2003 9:40 AM
To: mono-list
Subject: [Mono-list] XmlNamespaceManager.LookupPrefix


I noticed that mono's XmlNamespaceManager.LookupPrefix method is
implemented as MS describes in their documentation:

  Return Value
    The matching prefix. If there is no mapped prefix, the method
    returns String.Empty. If a null value is supplied then a null
    reference (Nothing in Visual Basic) is returned.

But I simply tried below with MS.NET, then LookupPrefix returned null:

using System;
using System.Xml;

public class NamespaceManagerTest
  public static void Main (String[] args) {
    XmlNamespaceManager nsmgr =3D new XmlNamespaceManager (new NameTable
    nsmgr.NameTable.Add ("urn:hoge");
    nsmgr.NameTable.Add ("urn:fuga");
    nsmgr.AddNamespace (string.Empty, "urn:hoge");
    string ns =3D nsmgr.LookupPrefix ("urn:fuga");
    Console.WriteLine ((ns =3D=3D null).ToString ());          // TRUE!!
    ns =3D nsmgr.LookupPrefix ("urn:hoge");
    Console.WriteLine ((ns =3D=3D String.Empty).ToString ());  // TRUE

I think that LookupPrefix *should* return null (rather than
String.Empty) as MS implementation does.
Otherwise, we cannot identify "default namespace" from no match.

Does anyone think different or have any hints and/or opinion?


-- Atsushi Eno

Mono-list maillist  -  Mono-list@ximian.com