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] Proposed withdrawal of my NDR suggestions for ABIE extensibility


Hi Ken,

Does this mean that there can be no future minor versions of UBL 2.0?

Regards,
Sylvia

-----Original Message-----
From: G. Ken Holman [mailto:gkholman@CraneSoftwrights.com] 
Sent: Tuesday, June 20, 2006 7:56 AM
To: Universal Business Language
Subject: [ubl] Proposed withdrawal of my NDR suggestions for ABIE
extensibility

Hello all,

Based on the Pacific call discussion of the dangers of opening up
uncontrollable extensibility in all ABIEs, and on Bryan Rasmussen's (much
appreciated, Bryan, thanks!) research and findings in the area of schema
determinism, I think it is safe to take my discussion of minor versioning
off of the agenda tomorrow.

I now do not see a way of providing minor version extensibility using W3C
Schema syntax.

In private correspondence (thanks Fraser!) the following article by David
Orchard on extensibility was brought to my attention:

 
http://www.pacificspirit.com/Authoring/Compatibility/ExtendingAndVersioningX
MLLanguages.html

Reviewing David's rules:

  1.  Allow Extensibility rule: Languages SHOULD be designed for
extensibility.

This is laudable, but because UBL has four distinct namespaces, I don't
believe this can be done at the ABIE level using W3C Schema syntax (though I
believe it could be done using RELAX-NG).  We are already covered at the
extensibility point.  But this is moot given the other analysis below.

  2.  Allow Extensions in Other Namespace rule: 
The extensibility point SHOULD at least allow for extension in other
namespaces.

We do have an extensibility point and we do allow for other namespaces, so I
think this is covered.

  3.  Full Extensibility rule: All XML Elements SHOULD allow for element
extensibility after element definitions, and allow any attributes.

Because we have four namespaces in UBL I cannot see how to do this in W3C
Schema syntax.

  4.  Provide Processing Model Rule: Languages SHOULD specify a processing
model for dealing with extensions.

In my discussion paper, the chapter on
deployments illustrates a
"translate-before-validate" step that addresses this.  Using that an
application never sees the unexpected use of extensions (but it also doesn't
see inappropriate uses of extensions that are not important to the
application).

  5.  Must Ignore Rule: Document consumers MUST ignore any XML attributes or
elements in a valid XML document that they do not recognize.

This is covered by translate-before-validate.

  6.  Must Ignore All Rule: The Must Ignore rule applies to unrecognized
elements and their descendents in data-oriented formats.

This is covered by my suggested use of ##skip instead of ##lax so as to
totally ignore all descendants of the extension point, even if an extender
chooses to reuse a UBL construct.

  7.  Must Ignore Container Rule: The Must Ignore rule applies only to
unrecognized elements in presentation-oriented formats.

UBL doesn't allow mixed content, so I believe the above isn't an issue.

  8.  Re-use namespace names Rule: If a backwards compatible change can be
made to a specification, then the old namespace name SHOULD be used in
conjunction with XML’s extensibility model.

This is supported in my earlier suggestion that we do not change the
namespace for information items defined earlier.

  9.  New namespaces to break Rule: A new namespace name is used when
backwards compatibility is not permitted, that is software MUST break if it
does not understand the new language components.

This would contradict my suggestion that 2.1 information items use a new
namespace.  David's opinion would be, then, that as long as 2.1 information
items are backwards compatible they continue to use the same namespace, and
only if the introduction of a new construct requires something not allowed
by the prior namespace, that it have a new namespace.  Since my proposed
translate-before-validate covers this, we are okay to keep the 2.0 namespace
for 2.1 constructs.  I can live with that just fine and abandon my
suggestion for a new namespace for new 2.1 constructs.

10.  Provide Must Understand Rule: Container languages SHOULD provide a
“Must Understand” 
model for dealing with optionality of extensions that override a default
Must Ignore Rule.

I'm not proposing that extensions override the must ignore rule, so I don't
think this applies.

11.  Be Deterministic rule: Use of wildcards MUST be deterministic.
Location of wildcards, namespace of wildcard extensions, minOccurs and
maxOccurs values are constrained, and type restriction is controlled.

It appears my original suggestions did not follow Rule 11, as pointed out by
Bryan, so we can't have what I thought we needed at the ABIE level.

Conclusion:

So ... based on a read of David's article, I'm now of the opinion there are
no changes to make to the NDR.  Given that all new UBL 2 constructs are
optional, then the translate-before-validate approach guarantees a
must-ignore attitude by downstream applications.

Because of our use of four namespaces for UBL constructs, I believe we
cannot use W3C syntax to control ABIE-level extensibility, so we stick with
the one extensibility point.

My suggested translate-before-validate will address Jon's concerns about an
implementation not falling over dead when it sees a new construct (because
it actually never ends up seeing the new construct).

It does mean that Paul's concerns are not being met as expressed in Brussels
regarding a network deployment of heterogeneous schema validators all
indicating UBL 2 namespace for instances will fail on 2.1 instances using
the UBL 2 namespace unless they do their own translate-before-validate ...
which, as noted above, will create some false positives if the translation
throws away non-conformant constructs resulting in a conformant instance.

Thanks again to the feedback regarding my straw-man proposal for versioning
... it has helped me understand a lot, and I hope it was considered
constructive even if it has to be removed.

My discussion of UBL Customization in my paper still stands, though ... I
will revise my discussion paper to remove the discussion of minor
versioning.

Now, my question is, does anyone disagree with this analysis and feel we
should not remove this discussion from the agenda and keep talking about it?
:{)}

. . . . . . . . . . . Ken

--
Registration open for UBL training:    Montréal, Canada 2006-08-07
Also for XSL-FO/XSLT training:    Minneapolis, MN 2006-07-31/08-04
Also for UBL/XML/XSLT/XSL-FO training: Varo,Denmark 06-09-25/10-06
World-wide corporate, govt. & user group UBL, XSL, & XML training.
G. Ken Holman                 mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/o/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05  http://www.CraneSoftwrights.com/o/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


---------------------------------------------------------------------
To unsubscribe from this mail list, you must leave the OASIS TC that
generates this mail.  You may a link to this group and all your TCs in OASIS
at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 





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