[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: URNs (issue a.3)
Hello UBL TC,
Gunther Stuhec has noted [1] that the namespace URNs in the UBL
1.0 CD "are not based on the namespace rules of chapter 3.4.2
(Namespace Uniform Resource Identifiers)", specifically NDR NMS5,
which reads as follows:
[NMS5] The namespace names for UBL Schemas holding OASIS
Standard status MUST be of the form:
urn:oasis:names:specification:ubl:schema:<name>:<major>:<minor>
Eduardo Gutentag has pointed out [2] that URNs used in OASIS
specifications must follow Internet RFC 3121, which defines the
OASIS URN namespace [3], and has proposed an alternative that
would set the pattern not just for UBL but for all OASIS standard
schemas (yes, we are once again breaking new ground here). I will
not copy Eduardo's proposal here (the message referenced at [2]
can be found in mail sent to the TC 26 July 2004), but the essence
of it is summarized in the following examples:
urn:oasis:names:specificaton:ubl1.0:schema:xsd:CoreComponentParameters1.0
urn:oasis:names:specificaton:ubl1.0:schema:xsd:AcknowledgementResponseCode1.0
urn:oasis:names:specificaton:ubl1.1:schema:xsd:CoreComponentParameters1.0
urn:oasis:names:specificaton:ubl2.0:schema:xsd:AcknowledgementResponseCode1.5
Note in particular the last one, which illustrates the
independence of UBL version number and schema version number.
In today's Atlantic UBL TC call, we discussed Eduardo's proposal
and came to the following conclusions:
- We agree that RFC 3121 takes precedence over the current NMS5.
This means that we will indeed have to change all the namespace
URNs. We don't think that we will have to change any of the
file names.
- We agree to accept Eduardo's proposal with the following
provisos:
- We can't just delete the existing NMS5. We need to replace
it with a new rule specifying the RFC 3121-compliant way in
which we are forming the UBL namespace URNs.
- We don't see why we need to include a version number in the
specification-id field (the one that has "ubl1.0" in
Eduardo's examples). We understand that RFC 3121 allows
this, but we don't believe that RFC 3121 requires it, and we
can think of cases where including the version number would
not be helpful.
Suppose, for example, that an imaginary UBL 2.0 release
includes an imaginary AcknowledgementResponseCode1.5 schema
identical to the schema that originally shipped with the
imaginary UBL 1.5 (as in Eduardo's fourth example URN
above). Keeping the 1.5 version of the schema is presumably
a good thing because UBL 1.5 code written to process
instances conforming to that schema will continue to work,
but that won't happen if the namespace URN is changed; in
that case, updating the specification-id from "ubl1.5" to
"ubl2.0" will have an effect opposite the effect presumably
intended in keeping "AcknowledgementResponseCode1.5" as the
document-id.
So we concluded (almost but not quite unanimously) that we
would prefer to use "ubl" for the specification-id and let
the versioning of individual schemas be conveyed by the
document-id. (The counterargument was that including the
UBL version number in specification-id would indicate that
the 1.5 schema was re-released as part of UBL 2.0, but (a)
the URN is the wrong place to be looking for packaging
information, (b) we may find (as apparently X12 did) that we
don't want to tie module revisions to major releases, and
(c) including "2.0" wouldn't tell us anything about the
package structures of releases 1.5 through 1.9, if any. In
sum: the software won't care what release the schema came
from, it will only care that this is still the same old
schema it knows and loves.)
In keeping with the agreement to adopt a new rule before we can
regenerate the schemas, therefore, and in the absence of anyone
else available to do it this week, the participants tasked yours
truly with the job of proposing to the TC a replacement for NDR
NMS5 today. They also noted that NMS4 and NMS6 would have to be
looked at, too. The current versions read as follows:
[NMS4] The namespace names for UBL Schemas holding committee
draft status MUST be of the form:
urn:oasis:names:tc:ubl:schema:<name>:<major>:<minor>[<revision>]
Note:
[ ] = optional.
<> = variable
[NMS6] UBL Schema modules MUST be hosted under the UBL
committee directory:
http://www.oasis-open.org/committees/ubl/schema/<schema-mod-name>.xsd
It seems to me (and I am ready to stand corrected!) that we do
need to revise NMS4 along with NMS5 this week, but I don't see any
need to change NMS6. I will note that a functioning URN resolver
should make NMS6 unnecessary, but if we have to have a canonical
location (and in the short term we probably do), then I think that
this one will work as well as any. I also note that its implicit
reliance on the document-id alone is in keeping with the point
made above on this subject.
Appended to this message are my proposed replacements for NMS4 and
NMS5. Since time is of the essence, please make any comments
within the next 48 hours; whatever we seem to have agreed upon by
Friday my time in Orlando is what I will propose that we adopt for
the schemas to be approved in Copenhagen. Anyone available this
evening, or this morning, depending on where you are, should note
that the Pacific TC call coming up in about 1.5 hours would be a
great place in which to discuss this.
NOTE that these revisions will also necessitate revision to the
versioning rules in section 3.5 of NDR, but I *think* that those
revisions can be accomplished simply by substituting periods for
colons in the part of the URN that we are now calling
"document-id" (which means that the document-ids we end up with
won't look exactly like Eduardo's examples but more like
AcknowledgementResponseCode.1.5). It would be very helpful if
someone could attempt this revision and tell us whether it's that
easy before I put the whole question to you on Friday. If I have
to make the revisions to 3.5 myself, it could get ugly....
Jon
[1] http://lists.oasis-open.org/archives/ubl-comment/200406/msg00004.html
[2] http://lists.oasis-open.org/archives/ubl/200407/msg00082.html
[3] http://www.faqs.org/rfcs/rfc3121.html
==================================================================
PROPOSED REPLACEMENT FOR NDR NMS4
[NMS4] The namespace names for UBL W3C Schema drafts
MUST be of the form
urn:oasis:names:tc:ubl:schema:xsd:<document-id>
where <document-id> is a unique identifier assigned to the
schema by the UBL TC. The document-id MUST follow the
versioning scheme specified in section 3.5 and MUST NOT contain
colons. For Relax NG schemas, the sub-type field of the URN
MUST contain "rng" instead of "xsd", and for ASN.1
specifications, the sub-type field of the URN MUST contain
"asn1" instead of "xsd".
Note:
[ ] = optional.
<> = variable
PROPOSED REPLACEMENT FOR NDR NMS5
[NMS5] The namespace names for UBL schemas holding OASIS
Standard status MUST be of the form specified in NMS4 for
schema drafts, but with "specification" replacing "tc" in the
fourth (document class identifier) field of the namespace URN.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]