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: SV: [ubl] Discussion XSD implementation of extensions

At 2006-07-13 10:54 +0200, Bryan  Rasmussen wrote:
>The model will be non-deterministic if xsd:any ##any namespace is allowed
>after an element that has a cardinality other than exactly 1.

Ah, yes ... non-determinism.  I forgot that Xerces does not report this.

>Me and Allan were talking and we think it should be either:
>1. move ExtensionReasonCode to be before the any, give it a cardinality of
>exactly 1. This works in Allan's xmlspy, haven't tested other places, but at
>any rate at this point it is a deterministic model.

Can I have your opinion on keeping the order and 
making the textual "ExtensionReason" 
mandatory?  This will encourage at the least a 
description of extension for the recipient to 
understand the purpose.  If they don't want to 
share the purpose, they can define the element and leave it blank.

But, thinking about it, I'm leaning now to (2).

>2. Put the xsd:any inside of an element xsd:ExtensionContent. This is
>preferable to me for working with XSD, but otherwise I find it aesthetically

We are dealing with programs and programmer 
convenience, and encapsulation is a "good thing", 
though we are always encapsulating only a single 
element of the foreign namespace.

In retrospect I'm really liking this suggestion, 
Bryan, of a container element.  And that's 
improving the aesthetics for me too:  consider 
that with the extension element each and every 
UBL-defined object has a UBL-defined 
sibling.  Without the extension content element 
then we would have a parent UBL element with 
children elements in both a UBL namespace and a 
foreign namespace.  I now think it is elegant to 
have UBL element siblings all be one 
namespace:  that being a UBL namespace for 
everything except xsd:ExtensionContent, and that 
being a single child of a foreign namespace for 
the one xsd:ExtensionContent element.

So, I now recommend we make the ExtensionContent 
element last child of the UBLExtension element 
mandatory and allow it to be empty.

>Also I personally think there are some of these elements that should have a
>minOccurs of 1, for example the actual content of an extension, but Allan
>said you have some problems with that due to Sax processing?

True ... a serial process that is massaging 
content needs to be able to remove the content of 
an arbitrary namespace.  But when it encounters 
the extension element in the foreign namespace, 
the start tag of the container element has 
already been processed.  If we didn't allow the 
result of the transformation to be empty, that 
would force a "look-ahead" implementation, which 
is always slower in a streaming application.  By 
allowing the element to be empty, then each 
element can be kept or discarded based on its start tag and nothing else.

And we need to be able to massage an instance in 
its intermediate form to remove foreign content, 
and the fastest such applications are ones that 
are stream-oriented, and the fastest 
stream-oriented applications are those without look-ahead.

Does this help?  Thanks again.

. . . . . . . . . . Ken

p.s. I will read the posted opinions of others 
over the next 5 hours and then after my family 
obligations I will create a new set of schema.

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

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