XML Schema Question: default namespace misses attributes

Hi Folks,

In the XML Schema spec all the examples use a default namespace for the
XML Schema vocabulary.  For example,

<schema xmlns="http://www.w3.org/1999/XMLSchema" ...>
    <element name="BookCatalogue">
         ...
    </element>
    ...
</schema>

This example uses the XML Schema namespace as the default namespace.
This meams, of course, that an XML Schema parser would then know that
all non-qualified  elements are from the XML Schema namespace.  Thus, it
would recognize "element" as a member of the XML Schema namespace.

The XML Namespace document states (section 5.2 [1]) that attributes are
not part of a default namespace, "Note that default namespaces do not
apply directly to attributes."  So, the "name" attribute above is not
part of the XML Schema namespace.  Matter of fact, "name" is in no
namespace.  I believe that it is an error for "name" to not be part of
the XML Schema namespace.  Right?  We want an XML Schema parser to
recognize "name" as being part of the XML Schema namespace.  Right? 

Wouldn't it be better if, as is done in the XSLT spec, we don't use a
default namespace and, instead, explicitly qualify all elements and
attributes?  Using such an approach, the above example can be recast as:

<xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema" ...>
    <xsd:element xsd:name="BookCatalogue">
         ...
    </xsd:element>
    ...
</xsd:schema>

With this approach it is clear that both "element" and "name" come from
the XML Schema namespace.  An additional (albeit small) benefit of
explicitly qualifying everything is that the XML Schema spec would then
be more consistent with the XSLT spec in terms of its examples not using
a default namespace.

Am I not understanding something?  /Roger

[1] http://www.w3.org/TR/REC-xml-names/

Received on Tuesday, 8 February 2000 08:00:22 UTC