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] Datatype Methodology RE: [ubl-dev] SBS and Restricted Data Types


David,

I was still at 40,000 foot high, so your 20,000 foot view certainly helps.

I like the explicit sections (those 5 of them) so that the various
boundaries and constraints are clearly and quickly identified.
The use of embedded functions scripted within data fields feels
much like XSLT, and the 30+ core functions would soon need to grow
to accomodate wider usage needs.

It would seem that the software implementing it has got to be somewhat
smarter than usual to ensure that the sequence of processing and
interpreting the context, constraints, and conditions are done 
in the "right" way - the "right" way being what the user expects.
I should carry on this thread with you either privately or on CAM-dev
list.

Anyway, back to UBL customisation, I suppose the background of 
discussing UBL customisation is to manage the deltas and describe
them  using W3C's XML Schema terminology (where it allows for certain
facilities such as redefine, substitution, extension/restriction, etc,
we examine if and how it could be used, and where it doesn't allow, 
and although  we may still outsmart it through software modules, 
we'll have to observe its restrictions and work within its confines).


Best Regards,
Chin Chee-Kai
SoftML
Tel: +65-6820-2979
Fax: +65-6820-2979
Email: cheekai@SoftML.Net
http://SoftML.Net/


On Wed, 10 May 2006, David RR Webber (XML) wrote:

>>Chin,
>>
>>I was trying to not get into nitty-gritty angle bracket stuff - but
>>here's a 20,000 foot view.
>>
>>The CAM template consists of 5 sections:
>>
>><Header>
>><AssemblyStructure>
>><BusinessUseContext>
>><DataValidations>
>><ExternalMapping>
>>
>>We can equate the two <AssemblyStructure> and <BusinessUseContext> to
>>the layering approach - where UBL provides the structure definition -
>>and the context section then exposes the delta between the generic and
>>subset.  You can use <include> in the structure section to reference a
>>particular UBL sample.
>>
>>Basically if you look in the <BusinessUseContext> section and you see
>>nothing - then you know people are using that included UBL sample
>>as-is!
>>
>>Otherwise - the Header can come into play next - because that is where
>>you define your global context variables that you might need - for
>>example boolean $export_order.
>>
>>So - in the context section you can have default rules - I would expect
>>you to have these normally - as these apply to all context instances
>>and use - these are identified in the XML by -
>>
>>   <Rules><default><context> <!-- default rules --> </context></default>
>>....
>>
>>After that - you have specific context rules - here is where you would
>>put the typical refinements and crosschecks (e.g. if $export_order then
>><export_manifest> required mandatory element, etc) associated with your
>>use case - these can reference global $ variables - or be value driven
>>within the data stream - e.g. :
>>
>>  <context
>>condition="PHS398_ResearchPlan:TypeOfApplication='Resubmission'">
>>    <constraint action="makeMandatory(//RR_SF424:FederalID)" />
>>    <constraint action="setLength(//RR_SF424:FederalID,15)" />
>>  </context>
>></Rules>
>>
>>So you can see the deltas are explicitly called out and labelled by
>>context - and you can find them quickly without having to grope through
>>the XML structure itself line-by-line.
>>
>>CAM also provides you with a library of 30+ functions - so you can
>>manipulate the structure tree - pruning or selecting, changing from
>>optional to mandatory, etc, rule driven.  I like to say that XSD schema
>>provides you with a picture map of all the possible structural varients
>>that you may encounter - whereas CAM restricts this to the exact
>>structure layout that you need for your particular context and usage.
>>
>>DW
>>



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