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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl-dev message

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


Subject: Re: [ubl-dev] Re: [xml-dev] Re: [ubl-dev] UBL 2.0 and Schema Extensibility


Ken,

let me check something so that I'm sure we are not talking at cross purposes.

I am talking about the validation of content within any extensibility
point allowed in a schema (any schema, not just UBL) being performed
by the parties that have apriori knowledge of what their expectations
of that content should be (they each have a schema that describes it).

I was starting to get the feeling in this last discourse that you were
talking about what you would expect a 'UBL aware' validation approach
should be and what 'it' should reasonably know about or not. In this
case I would agree that any validator that is only concerned with
compliance to UBL should have no knowledge of other 'stuff' that may
be put into one of its opaque containers ?

Just checking :-)

This still leaves us with the choice of value for the processContent
attribute of course.

> Only the apex of the extension, the immediate child of the UBL
> extension point, has to be non-UBL.  What is in each subtree under
> each apex being an immediate child of the extension point is free
> game ... including any bad practices or conflicting interpretations
> ... after all, the extender used the extension point to get away from
> the standardized schema ... why pollute that environment by saying
> "well, though you are in charge of your extension I'm still going to
> impose this on you that you pass my other constructs however you use
> them"?  The more I try to describe this, the more certain I feel about this.

H'mmm, ok, I'm starting to understand where you're coming from here.
Educate me a bit here. Is UBL defined principally of global
elements/types ?

Fraser.

On 18/05/06, G. Ken Holman <gkholman@cranesoftwrights.com> wrote:
> At 2006-05-18 00:20 +0100, Fraser Goffin wrote:
>
> >>I'm appreciating this discourse, Fraser
> >
> >Cool, I'll continue then.
>
> Great ... getting perspectives is important.
>
> >>... but back to your point about using "lax" instead of my
> >>suggested "skip" ... if it were true there were no UBL elements
> >>inside of the extension, and UBL is the only schema being used in
> >>validation, there is no difference between "lax" and "skip" because
> >>nothing in there would be recognized.
> >
> >The content of the extension *will* be recognised by any party who has
> >the schema that defines it, and 'lax' then enables that content to be
> >validated as normal by a standard validating parser (structurally at
> >least).
>
> Yes, I know ... and that is what worries me.  Given the mechanics of
> redefine and overriding schema fragments, I'm not sure how one would
> invoke W3C Schema semantics for the lax contents of the black box
> with the read-only UBL schemas.
>
> >I guess my somewhat laboured point about the 'lax' versus 'skip'
> >debate is that with 'lax' I at least have the opportunity to valiadte
> >content if I happen to have the schema (i.e. I am interested in that
> >extension).
>
> But I posit you should only be interested in an *entire* subtree of
> the extension from the extension point down because, as a black box,
> anything below the point of extension might be governed by other
> bastardized schemas *in the same namespace* (not a good practice, but
> I'm not trying to be a policeman here).
>
> >If 'skip' is the vlaue for processContents then the schema
> >author is effectively denying me that opportunity for some 'free'
> >validation, and forcing me to either implement some other mechanism,
> >or just hope for the best :-( .
>
> My perspective of validation is "all or nothing" not "pick and
> choose".  I'm abdicating the responsibility for a subtree under the
> extension point whose apex is in another namespace so that I have no
> preconceived notions of the meaning of the apex of the
> extension.  That means I must also have no preconceived notions of
> the contents of the subtree because the subtree is, I believe,
> *entirely* the purview of the extension.
>
> >Its a minor point perhaps,
>
> No, I think this is quite major and I'm trying to anticipate (without
> there being real-world experience in this yet) where we will trip
> over things, and I'm feeling quite certain that any inadvertent
> attempts to presuppose the structure of something inside of an
> extension to have to follow the constraints expressed for the content
> outside of the extension is fraught with problems.
>
> >but I
> >don't see why a schema author should explicitly exclude any available
> >mechanism that I may choose to use (and I don't wnat to change that
> >value in the schema, because I am not the schema author).
>
> Because the validation of the extension is a separate responsibility
> than the validation of the instance with the extension point.  *Just
> in case the extension has a competing structure for whatever reason
> by design of the extender*.
>
> If it happens that the extension includes the same structures, then
> the despatched validation of the extension will worry about that.
>
> >>But, since the content may
> >>have bastardized UBL inside, using "skip" would prevent false
> >>negatives when using "lax".
> >
> >Would it ?. The extension may have a 'UBL like' content model, but it
> >definately won't be UBL since it will be defined in a non UBL
> >namespace and therefore won't be validated against any UBL schema will
> >it ?
>
> Only the apex of the extension, the immediate child of the UBL
> extension point, has to be non-UBL.  What is in each subtree under
> each apex being an immediate child of the extension point is free
> game ... including any bad practices or conflicting interpretations
> ... after all, the extender used the extension point to get away from
> the standardized schema ... why pollute that environment by saying
> "well, though you are in charge of your extension I'm still going to
> impose this on you that you pass my other constructs however you use
> them"?  The more I try to describe this, the more certain I feel about this.
>
> >The example schema fragment that you pointed at :-
> >
> >     <xs:choice minOccurs="0" maxOccurs="unbounded">
> >       <xs:any namespace="##other" processContents="skip"/>
> >       <xs:any namespace="##local" processContents="skip"/>
> >     </xs:choice>
> >
> >looks OK, but XML Spy and MSXML 4 report it as non deterministic ?
>
> The latest Xerces using xjparse works just fine (transcript
> below).  Hmmmmmm ... not sure how to arbitrate that one ... I hate to
> rely on vendors' tools to say what is "correct".  Let me think who
> might offer an opinion.
>
> Thanks, Fraser!
>
> . . . . . . . . . Ken
>
> t:\fraser>type exublorder2.xsd
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
> elementFormDefault="qualified"
> targetNamespace="urn:oasis:names:draft:ubl:schema:xsd:Order-2"
> xmlns:u="urn:oasis:names:draft:ubl:schema:xsd:Order-2">
>   <xs:element name="Order">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:element ref="u:OrderNumber"/>
>         <xs:element maxOccurs="unbounded" ref="u:LineItem"/>
>         <xs:element ref="u:TotalAmount"/>
>       </xs:sequence>
>     </xs:complexType>
>   </xs:element>
>   <xs:element name="OrderNumber" type="xs:string"/>
>   <xs:element name="LineItem">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:element ref="u:Description"/>
>         <xs:element ref="u:PriceAmount"/>
>         <xs:element minOccurs="0" ref="u:LineItemExtension"/>
>       </xs:sequence>
>     </xs:complexType>
>   </xs:element>
>   <xs:element name="Description" type="xs:string"/>
>   <xs:element name="PriceAmount" type="xs:string"/>
>   <xs:element name="LineItemExtension" type="u:any-non-UBL"/>
>   <xs:element name="TotalAmount" type="xs:string"/>
>   <xs:complexType name="any-non-UBL">
>     <xs:choice minOccurs="0" maxOccurs="unbounded">
>       <xs:any namespace="##other" processContents="skip"
> minOccurs="0" maxOccurs="unbounded"/>
>       <xs:any namespace="##local" processContents="skip"
> minOccurs="0" maxOccurs="unbounded"/>
>     </xs:choice>
>   </xs:complexType>
> </xs:schema>
>
> t:\fraser>type exaeroorder2.xml
> <?xml version="1.0" encoding="utf-8"?>
> <Order xmlns="urn:oasis:names:draft:ubl:schema:xsd:Order-2"
>        xmlns:a="urn:x-aerospace:ubl:lineitem">
>   <OrderNumber>123</OrderNumber>
>   <LineItem>
>     <Description>747 Repair Kit</Description>
>     <PriceAmount>1200000.54</PriceAmount>
>     <LineItemExtension>
>       <a:LineItemDetail>
>         <a:Part>
>           <a:Description>Starboard wing</a:Description>
>           <a:Amount>600000.00</a:Amount>
>         </a:Part>
>         <a:Part>
>           <a:Description>Port wing</a:Description>
>           <a:Amount>600000.00</a:Amount>
>         </a:Part>
>         <a:Part>
>           <a:Description>Bolt</a:Description>
>           <a:Quantity>2</a:Quantity>
>           <a:Amount>.27</a:Amount>
>         </a:Part>
>       </a:LineItemDetail>
>     </LineItemExtension>
>   </LineItem>
>   <LineItem>
>     <Description>DC3 Repair Kit</Description>
>     <PriceAmount>37.25</PriceAmount>
>     <LineItemExtension>
>       <a:LineItemDetail>
>         <a:Part>
>           <a:Description>Rubber band</a:Description>
>           <a:Amount>37.25</a:Amount>
>         </a:Part>
>       </a:LineItemDetail>
>       <hello xmlns="">
>         <world/>
>       </hello>
>     </LineItemExtension>
>   </LineItem>
>   <TotalAmount>1200037.79</TotalAmount>
> </Order>
> t:\fraser>xjparse -S exublorder2.xsd exaeroorder2.xml
> No validation errors.
>
>
> --
> Registration open for XSLT/XSL-FO training: Wash.,DC 2006-06-12/16
> Also for XSLT/XSL-FO training:    Minneapolis, MN 2006-07-31/08-04
> Also for XML/XSLT/XSL-FO training:Birmingham,England 2006-05-22/25
> World-wide on-site corporate, govt. & user group XML/XSL training.
> G. Ken Holman                 mailto:gkholman@CraneSoftwrights.com
> Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/u/
> Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
> Male Cancer Awareness Aug'05  http://www.CraneSoftwrights.com/u/bc
> Legal business disclaimers:  http://www.CraneSoftwrights.com/legal
>
>
> ---------------------------------------------------------------------
> This publicly archived list supports open discussion on implementing the UBL OASIS Standard. To minimize spam in the
> archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Alternately, using email: list-[un]subscribe@lists.oasis-open.org
> List archives: http://lists.oasis-open.org/archives/ubl-dev/
> Committee homepage: http://www.oasis-open.org/committees/ubl/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
> Join OASIS: http://www.oasis-open.org/join/
>
>


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