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