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


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
RE: 4 approaches to structure lists, plus an analysis of eachapproach

Hi Folks,

I started learning the approach to creating lists that Ken described, called genericode. I will call that Approach #4. Below I review the first three approaches, then describe Approach #4. 

Approach #1 - Express the list using the XML Schema vocabulary, e.g.,

    <xs:simpleType name="countriesType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Afghanistan"/>
            <xs:enumeration value="Albania"/>
            <xs:enumeration value="Algeria"/>

Approach #2 - Express the list using the RELAX NG vocabulary, e.g.,

    <define name="countriesType">

Approach #3 - Express the list using a domain-specific vocabulary, e.g.,

    <countries xmlns="http://www.countries.org";>


Approach #4 - Express the list using a "list vocabulary" 

(Ken, please correct where I err in my description/analysis)

In this approach the vocabulary is not customized for a specific list as with approach #3; rather, it is a vocabulary for any list.

Oftentimes when creating a list there are multiple ways to express each value in the list. For example, in a list of countries we may express the first value as Afghanistan or AF. Approach #4 permits each value to be expressed in multiple ways. Thus, the list is expressed in terms of rows and columns - each row has a column for the multiple ways to express a list value.

Here is (a simplified version of) a country list using the genericode vocabulary:

<gc:CodeList xmlns:gc="http://docs.oasis-open.org/codelist/ns/genericode/1.0/";>

An element in an XML instance document can be validated against the list using Schematron in the same manner described in Approach #3.

Approach #4 a standardized list vocabulary that may be used for any list.

Approach #4 does not enable a list to be used as a building block (data component). This is because every list has the same namespace. Consider a compound document comprised of multiple genericode lists. Since the lists all have the same namespace an application cannot, say, extract the country list and perform application-specific processing. 


Each of the four approaches has pros and cons so, as always, be sure to understand the alternatives and decide which is best for your situation.



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

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS