m (add to category 'Policies')
m (Protected "Policies/URI & XML Namespaces Policy" [edit=sysop:move=sysop])
Maintainer of this document: Frans Englich
In order to ensure that URI schemes and XML namespaces within the KDE project are consistent and avoids collisions, this document exists to settle best practices, and document the currently used namespaces and URI schemes.
Some applications needs custom URIs schemes in their implementation. Regardless of if the URI scheme is used internally or publically, it is always an unfortunate design choice to simply make up a scheme name (such as
my-scheme://my-data) for the simple reason that anyone can do that, and thus potentially cause interoperability issues and confusion.
The approach for creating a custom URI scheme without also getting into troubleCite error: Invalid
name cannot be a simple integer. Use a descriptive title
is to either ensure the scheme is generic to the extent it can be specified in an RFC (similar to urn or http), or to use an existing scheme which was designed for this purpose: the tag scheme.
The tag scheme combines a host name with a date to create a unique URI scheme (the date makes the URI immune to change in ownership of the domain name). KDE applications can use the tag scheme with the kde.org domain by following a slightly constrained syntax of the tag scheme:
tag:kde.org,2004:[application name]:[application specific string]
The application name ensures that a URI does not clash with a KDE application.
Before using the tag scheme with the KDE domain, the usage should first be suggested on the firstname.lastname@example.org mailinglist. If agreed to be a sensible URI scheme, the table below should be updated to list the application name.
|KXQTSemail@example.com||An XML Namespace used in KXQTS' custom test suite format (KDOM).|
Thus, as example, any URI starting with
tag:kde.org,2004:KMyMoney: is reserved for KMyMoney.
For KDE's public library technologies it might be of interest to use the
kde.org domain. In particular, for XML namespaces. In
those cases, the following practices should be followed:
URI : http://www.kde.org/standards/kcfg/1.0 Description: KConfigXT's *.kcfg files. Schema : http://www.kde.org/standards/kcfg/1.0/kcfg.xsd Contact : Frans Englich <firstname.lastname@example.org>
Addition of a new namespace should be suggested on email@example.com mailinglist. If the namespace is decided to be included, this document should be updated to list the new namespace.
applicationName ":" applicationSpecific, where both <classname>applicationName</classname> and applicationSpecific is
*( pchar / "/" / "?" ).