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

 


Help: OASIS Mailing Lists Help | MarkMail Help

codelist-comment message

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


Subject: Codelist usability issues - ease and performance design


Developing a universal mechanism is definately a holy grail that many
have sought. 
  
With this comes some significant responsibilities however! 
  
I'd like to share some of my own thoughts on all this - and experience
from working on XML and codelists in the past.  
  
These are just touch points that I feel strongly about / success metrics
that I would look for. 
  
Hope this is helpful as you embark on this important work, 
  
Thanks, DW 
==================================================== 
  
1) The mechanism should not be a burden on the community of users to
create, support and maintain 
  
2) It should be optimized to provide high performance metrics since
codelists are scanned and 
    processed repeatedly. 
  
3) Minimal XML knowledge / tools needed to comprehend / process codelist
mechanisms. 
  
Here are some guidelines I suggest to further this. 
  
a) Avoid use of namespaces or other extended markup features whereever
possible - simple well-formed XML is preferred. 
  
b) Avoid excessive angle bracket / element nesting - instead attributes
provide faster access to content (this may only be milliseconds - but
they add up when you are doing this 1,000's of times each day / hour in
your systems. 
  
c) Human readability - this is actually helped by b) 
  
d) Have separate optional sections for logical parts of the content - so
the processing codes themselves are not mixed up with human readable
descriptions, documentation and such.  Provide means to make these
externally referenced to encourage use of registry services instead of
a single "kitchen sink" XML approach. 
  
e) Make extensible types, attributes and such so as to avoid necessity
to "police" codelist implementations / create an Uber-codelist
authority - fosters rapid broad adoption and direct ownership by
communities of practice. 
  
Example: 
  
Good -  
         <codelist version="1.20" date="06/06/06T00:00:00"
refID="123456" 
          name="Example CodeList - Currency"> 
          <code value="1" short="dollars" symbol="$"/> 
          <code value="2" short="euros" symbol="E"/> 
          <documentation> 
              <item refvalue="1">Here is a good example</item> 
              <item refvalue="2" url="http://wikipedia.org#euro";>See
wikipedia for details on euros</item> 
          </documentation> 
        </codelist> 
  
Bad -   
        <code:codelist
xmlns:code="http://oasis-open.org/committee/foobar/schemas/more/lists.url";

          version="1.20" 
          date="06/06/06T00:00:00" 
          refID="123456"> 
          <code:Hdr> 
              <code:title> 
                 <code:text>Example Codelist - Currency</text> 
              </code:title> 
          </code:Hdr> 
          <ent:code
xmlns:ent="http://oasis-open.org/committee/foobar/schemas/more/reference.url";>

            <annotation> 
               <documentation>Here is a bad example</documentation> 
           </annotation> 
            <typing> 
              <type>string</type> 
            </typing> 
            <usage> 
               <use>all</use> 
            </usage> 
            <values> 
              <item> 
               <value>1</value> 
               <shortdescription>dollars</shortdescription> 
               <symbol>$</symbol> 
              </item> 
            </values> 
         </ent:code> 
<ent:code
xmlns:ent="http://oasis-open.org/committee/foobar/schemas/more/reference.url";>

            <annotation> 
               <documentation>You can look this up at
Wikipedia</documentation> 
               <xsi:xlink type="read"
xmlns:xsi="http://www.w3c.org/foobar/xlink/more/reference.url";>http://wikipedia.org#euro</xlink>

           </annotation> 
            <typing> 
              <type>string</type> 
            </typing> 
            <usage> 
               <use>all</use> 
            </usage> 
            <values> 
              <item> 
               <value>2</value> 
               <shortdescription>euros</shortdescription> 
               <symbol>E</symbol> 
              </item> 
            </values> 
         </ent:code> 
      </code:codelist>



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