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