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] A Codelist Issue


In a message dated 3/11/2004 3:48:10 PM Eastern Standard Time, jon.bosak@sun.com writes:

| By requiring a user or group of users to only define their
| differences and use unaltered UBL and third party code lists, for
| that matter, we facilitate a robust application of the technology
| and an evolutionary path forward.

I'm not seeing the big advantage here over just deciding to use a
revised code list schema.

Let's say that we've agreed to use BSI currency codes, and now BSI
adds a new one (as they did a few years ago with the euro).  Now
we need to agree that we need to support the new value -- that's
some committee meetings right there -- and then we need to revise
our currency schema to validate "euro," and then we also need to
revise all of our software to process euros (which is *not*
accomplished simply by revising the schemas to validate "euro" --
quite the opposite, in fact).  In light of all this, what's the
incremental work saved by using the substitution group mechanism
over just agreeing to use an updated version of the currency code
list schema?

Jon
Jon,
 
Substitution groups are not trying to address this use case which I think would procede as you describe.
 
Now, however, let us say we have produced UBL 1.1 and IBM wants to make an agreement with its suppliers to use ubl and wants to enable "IBM" bucks as a currency. They would be able to do so by defining the IBM namespace, import  the UBL namespace(s) and define their own schema extension as follows (fragment shown):
 
|--------------------------------------------------------------------------------------------
 
 <xs:element name="CurrencyCode" substitutionGroup="cur:CurrencyCodeA">
  <xs:complexType>
   <xs:simpleContent>
    <xs:extension base="CurrencyCodeContentType">
     <xs:attribute name="codeListID" type="xs:normalizedString" fixed="IBM"/>
     <xs:attribute name="codeListAgencyID" type="xs:token" fixed="0"/>
     <xs:attribute name="codeListVersionID" type="xs:string" fixed="0000f"/>
    </xs:extension>
   </xs:simpleContent>
  </xs:complexType>
 </xs:element>

 <xs:simpleType name="CurrencyCodeContentType">
  <xs:union memberTypes="iso4217:CurrencyCodeContentType">
   <xs:simpleType>
    <xs:restriction base="xs:normalizedString">
     <xs:enumeration value="IBM"/>
    </xs:restriction>
   </xs:simpleType>
  </xs:union>
 </xs:simpleType>
 
|--------------------------------------------------------------------------------------------
 
With this definition, instance documents could use the following anywhere in the ubl schemas cur:CurrencyCode was used:
 
<ibm:CurrencyCode>IBM</ibm:CurrencyCode>
 
|--------------------------------------------------------------------------------------------
 
Marty
 


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