Namespaces on Attribute Names

David Megginson (david@megginson.com)
Mon, 20 Jul 1998 15:06:43 -0400


Murray Altheim writes:

> This of course required that I add a namespace variable to my class def.
> for Element. I have not yet added any support for namespaces on attributes,
> as I can't understand the rationale.

Can't understand, or don't agree with? I have to admit that I have
been uncomfortable with the idea myself.

In any case, I'll offer myself as a victim to your pseudo-Socratic
feigned ignorance, and suggest that namespaces on attributes are meant
to represent a kind of implicit multiple inheritance, where the
derived class is never explicitly named. Compare the following (the
CRTC is the Canadian government's big-brother media supervisor -- if
anyone wants to get me started on the CRTC, send private
correspondence):

XML Excerpt
-----------

<doc id="xxx" LC:refNo="BS123.456 1998" CRTC:rating="family">
[...]
</doc>

Conceptual Equivalent in C++
----------------------------

class LC
{
public:
String &getRefNo ();
};

class CRTC
{
public:
String &getRating ();
};

class Doc
{
public:
String &getId ();
[...]
};

// This class is implicit.
class MyDoc : public Doc, public LC, public CRTC
{
[...]
}

All the best,

David

-- 
David Megginson                 david@megginson.com
           http://www.megginson.com/