[
Lists Home |
Date Index |
Thread Index
]
- To: Philippe Poulard <Philippe.Poulard@sophia.inria.fr>
- Subject: Re: [xml-dev] [XUS] An XML URN Scheme
- From: Ronald Bourret <rpbourret@rpbourret.com>
- Date: Tue, 01 Mar 2005 22:03:31 -0800
- Cc: xml-dev@lists.xml.org
- In-reply-to: <421CA83B.7050508@sophia.inria.fr>
- References: <421CA83B.7050508@sophia.inria.fr>
- User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
I finally found time to read this.
Overall, this seems like a sensible thing to do, as it provides a way to
avoid having to register URN schemes. My only comment is that the xus
namespace is not needed and the xus prefix -- really a scheme name --
should be registered. This is because (AFAIK) URNs require you to
register scheme names.
If xus is not registered and used as a scheme name then you run into the
following problem. Suppose a processor understands both the XUS and ISBN
schemes. Now suppose I bind the prefix ISBN to the XUS namespace. There
is no way for the processor to determine if a URN starting with
URN:ISBN: is an XUS URN or an ISBN URN. While I admit this is a bad
idea, it shouldn't be possible.
-- Ron
Philippe Poulard wrote:
> I don't know if anybody already designed an URN scheme for XML; here is
> a proposal: I call it the "XML URN Scheme", or XUS.
>
> =========
>
> URNs are logical names used to identify resources. XUS defines an URN
> Scheme for XML documents that works on a delegation model.
> As XUS (XML URN Scheme) is used exclusively for XML documents, it uses
> namespace URIs to identify this scheme and the delegate scheme.
>
> 1 Using XUS
> An URI that intends to follow the XML URN Scheme is called a XUS URN or
> a XUS URI. XUS URNs are working on a delegation model : when an URN is
> recognized to belong to the XML URN Scheme defined here, the last part
> of the URN is interpreted with a delegate scheme.
> The XUS scheme and the delegate scheme are both identified with a
> namespace URI, and expressed in a XUS URN with a related prefix, as
> explained below.
>
> * XUS syntax:
> The syntax of an URI is the following :
> scheme:scheme-specific-part#fragment
> where the characters : and # stands for themselves.
> The syntax of a XUS URI is the following :
> urn:xus-prefix:scheme-prefix:scheme-part#fragment
> where the characters : and # stands for themselves and:
> * urn is a string that stands for itslef and denotes that the URI is
> an URN
> * xus-prefix is a prefix bound to the XUS namespace URI :
> http://www.inria.fr/xml/xus/xml-urn-scheme. The usual prefix is xus, but
> any other prefix bound to the XUS namespace URI suits.
> * scheme-prefix is a prefix bound to the namespace URI of the
> delegate scheme.
> * scheme-part is the part scheme that depends on the delegate scheme
> identified by its namespace URI.
>
> 2 Namespace binding
> XML URN Schemes are found generally within XML documents inside which
> the appropriate namespace declarations can be found. In this case,
> theses declarations must be used if the XUS URN is in the scope of the
> declarations, as explained in the relevant specification.
> However, when used outside the scope of an XML document, a XUS
> interpreter may use a given map of prefixes linked to namespace URIs, or
> with a component that resolves prefixes, usually known as "namespace
> resolver".
>
> * Precautions
> A XUS URI may be used anywhere within an XML document with no particular
> precaution, except when used in the DOCTYPE declaration, in an external
> entity, or in the DTD internal subset. In fact, each time a reference is
> made with a XUS URI before reading the XML content may cause troubles.
> In this cases, the namespace binding must be provided in addition to the
> document.
> For this reasons, it is recommended to use XUS URIs within the XML content.
>
> * Namespace expansion
> A XUS URI may be resolved to a raw expanded URI for comparison purpose.
> The expansion consist on replacing the prefixes by their corresponding
> namespaces ; the expansion is completed by escaping the characters of
> the namespaces as specified in RFC 2396.
>
> 3 XUS interpretation
> A XUS interpreter is a program that decodes XUS URNs.
> A XUS interpreter used to decode a XUS URN fails to resolve such an URN
> when :
> * The xus-prefix prefix is not bound to the XUS namespace URI ; the
> XUS interpreter must report that the URN to resolve is not a XUS URN.
> * The scheme-prefix prefix is not bound to a namespace URI ; the XUS
> interpreter must report that the delegate scheme is missing.
> * The scheme-prefix prefix is bound to the XUS namespace URI ; the
> XUS interpreter must report that the delegate scheme is invalid.
> * The delegate scheme is not known by the interpreter ; the XUS
> interpreter must report that the delegate scheme is unknown.
> * The delegate scheme fails ; the XUS interpreter must report that
> the delegate scheme fails.
> A delegate scheme is known by the XUS interpreter if this scheme has
> itself an interpreter that can be invoked by the XUS interpreter.
> If the XUS interpreter succeed in decoding the URI, it returns the
> following components :
> scheme the string urn
> scheme-specific-part the string that follows urn:
> xus-prefix the prefix used for the XML URN Scheme
> xus-uri the XUS namespace URI
> http://www.inria.fr/xml/xus/xml-urn-scheme
> scheme-prefix the prefix used for the delegate scheme
> scheme-uri the namespace URI of the delegate scheme
> scheme-part the part scheme that follows scheme-prefix:
> scheme-components the components returned by the delegate scheme
>
> 4 Example
> <?xml version="1.0" encoding="iso-8859-1"?>
> <document
> xmlns:xus="http://www.inria.fr/xml/xus/xml-urn-scheme">
> xmlns:msps="http://www.acme.org/my-special-purpose-scheme">
> <content>
> <p><a href='urn:xus:msps:acme-fields-here'>My document</a></p>
> </content>
> </document>
>
> =========
>
> is it usefull ? tomorrow, i'll post a delegate XUS scheme for a Document
> Management System
>
|