OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [ubl] URNs (issue a.3)


OK folks,

I've reviewed the 1.0 CD checklist, and here are what appear to be
all of the NDRs related to URNs:

/#################################################################
| 
| [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>]
| 
| [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>
| 
| [NMS6] UBL Schema modules MUST be hosted under the UBL
| committee directory:
| 
| http://www.oasis-open.org/committees/ubl/schema/<schema-mod-name>.xsd
| 
| ==================================================================
| 
| [VER1] Every UBL Schema and schema module major version
| committee draft MUST have the URI of:
| 
| urn:oasis:names:tc:ubl:schema:<name>:<major>:0:[<revision>]
| 
| [VER2] Every UBL Schema and schema module major version OASIS
| Standard MUST have the URI of:
| 
| urn:oasis:names:specification:ubl:schema:<name>:<major>:0
| 
| [VER3] The first minor version release of a UBL Schema or
| schema module committee draft MUST have the URI of:
| 
| urn:oasis:names:tc:ubl:schema:<name>:<major-number>:<non-zero>:[<revision>]
| 
| [VER4] The first minor version release of a UBL schema or
| schema module OASIS Standard MUST have the URI of:
| 
| urn:oasis:names:specification:ubl:schema:name:major-number:non-zero
| 
| ==================================================================
| 
| [CDLX] The namespace name of each UBL Code List Schema Module
| MUST conform to the following pattern:
| 
| urn:oasis:ubl:codeList:<Code List.Identification.Identifier>:<Code List.Name.Text>:<Code List.Version.Identifier>:<Code List.Agency.Identifier>:<Code List. AgencyName.Text>
| 
| [CDLXX] The tokens comprising the URN MUST adhere to the
| following guidelines
| 
| - Whitespace MUST NOT be used within the URN.
| 
| - Special characters MUST NOT be used within the
| URN. Special characters are those characters outside of the
| range 0-9 or a-z.
| 
| - lowercase letters  [eh??? -- JB]
| 
| - If the code list version identifies a minor version then
| the major and minor version of the code list MUST be separated
| by a period (.).
| 
| [CDLXXX] The xsd:schemaLocation MUST include the complete URI
| used to identify the relevant code list schema.
\#################################################################

Since I'm nursing my laptop along moment by moment and am about to
disappear for a few days, I'm going to try to put everything I
have to say about this right now in one message; here goes.

Some initial observations:

 - The current checklist rules are not completely consistent.
   Compare the treatment of colons vs. periods in CDLX and CDLXX,
   for example.

 - We don't appear to be following the rules for code lists
   anyway.  For example, the namespace attribute for the
   ChannelCode module is

      urn:oasis:names:tc:ubl:codelist:ChannelCode:1:0

   which doesn't look much like the form specified in CDLX.
   Looking at section 4.3 of the Code List spec, it's clear that
   CDLX was intended to reflect the future direction indicated in
   that document rather than our current practice in 1.0.

 - There appears to be a syntax error in VER1 and VER3; they say

      ... 0:[<revision>]

   when what I think was intended is

      ... 0[:<revision>]

   (We don't really want a trailing colon, do we?)

 - The "first" in VER3 and VER4 contradicts the URN format in
   those rules; I think what was intended here was "Every" rather
   than "The first".

 - We don't seem to be entirely clear on the concept of "schema
   location." NMS6 says

      [NMS6] UBL Schema modules MUST be hosted under the UBL
      committee directory:
      http://www.oasis-open.org/committees/ubl/schema/<schema-mod-name>.xsd

   Whereas ATD5 and ADT6 say

      [ATD5] Each xsd:schemaLocation attribute declaration MUST
      contain a persistant and resolvable URL.

      [ATD6] Each xsd:schemaLocation attribute declaration URL
      MUST contain an absolute path. NOTE: Pending the storage of
      the UBL schemas in the OASIS registry and the assignment of
      persistent URIs, relative URIs have been used in the current
      release. See Appendix G.2.1 for further details.

   and CDLXXX says

      [CDLXXX] The xsd:schemaLocation MUST include the complete
      URI used to identify the relevant code list schema.

   Working backwards: CDLXXX is clearly redundant and should
   simply be removed.  ATD6 is in my opinion misguided; the
   objective of providing a resolvable permanent URL for the
   schemas is accomplished by providing the unique URN, because
   URNs are by definition resolvable, we just haven't deployed the
   resolvers yet.  In the meantime, for practical reasons that I
   think we all understand now, what we want in the
   xsd:schemaLocation attribute is NOT an absolute path but rather
   the relative path to the copy in the release package, which is
   exactly what we've got currently.  (Any user of the schemas is
   going to have to convert an absolute path to a relative one
   anyway; no one is actually going to bang on the OASIS site
   every time an instance is validated.)  On the other hand, NMS6
   guarantees that anyone who does need to fetch a particular
   schema from the OASIS site knows just where to find it, even in
   the absence of a genuine URN resolver.  So it seems to me that
   with the combination of a persistent namespace URN (which we're
   finally getting right), a known simple URL at OASIS for each
   schema, and a relative URL in xsd:schemaLocation, we've got it
   covered.

 - The realization that the namespace URN actually consists of two
   parts -- the part that belongs to OASIS that we have to take
   pretty much as given and the part that strictly belongs to us,
   namely the field called document-id in RFC 3121 -- leads me to
   suggest that we can simplify our rules considerably by
   specifying the "fixed" part and then using the document-id as
   the focus of our UBL-specific namespace rules.

 - For a clear distinction between the part that belongs to us and
   the part that doesn't, I think we should NOT use colons in the
   document-id.  Instead, I think that we should use a form
   identical to the one that we appear to have adopted for file
   names (i.e., Foo-1.0 rather than Foo:1:0).

 - There does not seem to be a compelling reason for keeping
   "codeList" as a kind of document type at the beginning of
   codelist document-ids.  Section 4.3 of the Code List
   specification appears to be mistaken regarding the function of
   the RFC 3121 "subtype" field, which properly refers in the case
   of schemas to the schema language (dtd, xsd, rng, asn1), not
   its function (codeList).  We could keep "codeList" as the
   beginning of every code list document-id, but there doesn't
   appear to be any reason to do so, and it's not what we did in
   1.0 CD.

 - In fact, if we take section 4.3 of the Code List spec as a plan
   for the future (which is what it says) and just look at the
   rules that we're following in the CD, there doesn't seem to be
   any reason for having any code list rules separate from the
   other naming rules in this release.

So taking all these considerations into account, I would suggest
the revised versions of these rules that appear at the end of this
message.

I will (if my laptop keeps running for a few more hours) be able
to engage in one more revision to this based on suggestions
received today (Friday).  So if you have anything to say about
this, positive or negative, please try to get that input to the
list right away.  As usual, silence implies consent.

Jon

##################################################################

PROPOSED REVISIONS TO CHECKLIST RULES RELATING TO URNS, SCHEMA
NAMES, AND SCHEMA LOCATIONS

[NMS4] The namespace names for UBL schema drafts MUST adhere to
   RFC 3121 and MUST be of the form

      urn:oasis:names:tc:ubl:schema:<subtype>:<document-id>

   where <document-id> is a unique identifier assigned to the
   schema by the UBL TC and <subtype> is one of a list of values
   currently consisting of "xsd" for W3C XML Schemas, "rng" for
   Relax NG schemas, and "asn1" for ASN.1 specifications.

      [Note to the TC: "ubl" rather than "ubl1.0" is required in
      this case by RFC 3121, because this field (called "tc-id")
      in a document having an RFC 3121 document class identifier
      of "tc" is required to contain the name of the TC itself.]

[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.

[VER1] Every UBL schema and schema module major version draft MUST
   have an RFC 3121 document-id of the form

      <name>-<major>.0[.<revision>]

[VER2] Every UBL schema and schema module major version OASIS
   Standard MUST have an RFC 3121 document-id of the form

      <name>-<major>.0

[VER3] Every minor version release of a UBL schema or schema
   module draft MUST have an RFC 3121 document-id of the form

      <name>-<major-number>.<non-zero>[.<revision>]

[VER4] Every minor version release of a UBL schema or schema
   module OASIS Standard MUST have an RFC 3121 document-id of the
   form

      <name>-<major-number>.<non-zero>

[CDLX] (delete)

[CDLXX] (delete)

[CDLXXX] (delete)

[NMS6] UBL Schema modules MUST be hosted under the OASIS UBL
   Technical Committee directory at the URL

      http://www.oasis-open.org/committees/ubl/schema/<subtype>/<document-id>.<filetype>

   where <document-id> follows the UBL rules for UBL RFC 3121
   document-ids, <subtype> refers to a token specifying the schema
   language (currently one of "xsd", "rng", and "asn1"), and
   <filetype> refers to the file format ("xsd", "rng", "html",
   etc.) used to store the schema at that location.

[ATD5] Each xsd:schemaLocation attribute declaration MUST contain
   a system-resolvable URL, which at the time of release from
   OASIS shall be a relative URL referencing the location of the
   schema or schema module in the release package.

[ATD6] (delete)



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]