Hi Seairth,
This is a specific point relating to the use of the RNA namespace.
I believe that the RNA elements should only be placed in a namespace if
there is a compelling reason to do so, that brings clear benefits to the
use of RNA. Otherwise, the elements should be left without a namespace.
Here are several examples of XML specifications, each of which use
namespaces differently to suit their needs.
Example 1: XSLT
XSLT elements are placed in a namespace to distinguish them from the
output elements in the transform. Thus <xsl:if> is a directive to the
transformer, while <if> in another namespace or in no namespace is a
literal element for output.
The use of a namespace in XSLT is clearly necessary, even though it does
lead to complicated outcomes in the case of XSLT transforms that seek to
transform or emit other XSLT transforms, but such a use case is probably
going to be complicated whichever approach is taken.
Example 2: XHTML
XHTML elements are placed in a namespace so that they may be used within
other document types and still recognised as being XHTML. This is a much
weaker justification, as the overwhelming majority of XHTML uses are
likely to be in standalone documents where the namespace is irrelevant.
This is borne out by the fact that XHTML elements are rarely explicitly
qualified (<p> is better than <h:p> or <html:p>) and often the namespace
declaration itself is omitted, thanks to the glorious hack of DTD FIXED
attributes. Mixed namespace documents may still be created of course, by
including elements in other namespaces even if the XHTML elements are left
unqualified.
Example 3: XML-RPC
XML-RPC elements are not placed in a namespace, as there is no benefit for
this to be done. They are not nested within arbitrary document types, and
there is no complicated disambiguation requirement as with XSLT. Adding a
namespace in this situation would merely increase the size of the
documents, increase the possible syntactic variations and make processing
them more fragile and require more complicated code.
The use of a namespace for versioning is quite suboptimal, and it's worth
pointing out that XSLT, the most namespace heavy of the three examples,
has a separate version attribute that it uses for this purpose. Such an
attribute is much easier for implementations to parse and much clearer as
to its intent. This also has the benefit of not changing the namespace
unnecessarily, such as when new elements are added but the semantics of
existing elements remain unchanged.
Note that the use or non-use of an RNA namespace does not impact the use
or non-use of other namespaces, such as the Dublin Core namespace for
disambiguating other elements in the notification.
In summary, I think the RNA elements should be used without a namespace,
unless there is a very compelling reason.
Michael Day
--
YesLogic Prince prints XML!
http://yeslogic.com/prince