XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
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: [xml-dev] The real world doesn't have an "other xyz", neithershould your XML

Oh the irony of this question appearing on XML-Dev !  Isn't the
provision of 'Other' the whole point of *Extensible* markup language?

Ironic too that without that hack-ish xsd:any (or xsd:anyAttribute) in
a schema, XML constrained by an XSD schema is not particularly
extensible. So what does XML mean by 'extensible'?

I guess what people usually want is semi-constrained markup,
codelists, etc. Fully-constrained is what the coder wants but the
business rarely copes with fully controlled vocabularies.
And yet what real value is there actually in a partially-controlled
vocabulary? Less value perhaps than either fully controlled or
uncontrolled. Yet so often it is the preferred choice of the analyst.
----
Stephen D Green


On 9 February 2014 14:27, Costello, Roger L. <costello@mitre.org> wrote:
> Hi Folks,
>
> I see many XML instances (and corresponding XML Schemas) with an "other" catchall element.
>
> I wish to convince you that an "other" catchall element is contrary to one's objectives and should be avoided.
>
> First, a quote from the book, "Principles of Program Design" (Jackson Design Methodology):
>
>         The structure of a program must be
>         based on the structures of all the data
>         it processes.
>
> A corollary to that is:
>
>         Data should model the real world.
>
> So there is this deep connection:
>
>         real world --> data model --> program structure
>
> In the real world there is no "other" component: When was the last time you drove an "other car" or purchased an "other vegetable"?
>
> So it is wrong to create a data model for a nonexistent real world entity. Likewise it is wrong to write a program component for "other" data.
>
> Let's take an example. Suppose we use XML Schema to model the countries of the world:
>
> <xs:element name="Country">
>     <xs:complexType>
>         <xs:choice>
>             <xs:element name="Afghanistan" type="countryType" />
>             <xs:element name="Albania" type="countryType" />
>             ...
>             <xs:element name="Zimbabwe" type="countryType" />
>             <xs:element name="Other" type="countryType" />
>         </xs:choice>
>     </xs:complexType>
> </xs:element>
>
> Since the countries of the world are ever-changing, we include an "Other" element in anticipation of some future, unforeseen country.
>
> It is easy to imagine assigning a program component to Iceland:
>
> <Country>
>     <Iceland>...</Iceland>
> </Document>
>
> But what is a program component to do when it encounters the "Other" country:
>
> <Country>
>     <Other>...</Other>
> </Document>
>
> There is no "Other" country and so any operation that we might assign to the data would be nonsensical.
>
> Stated another way:
>
>         "Other" data is not machine-processable. The reason
>         for using XML is that to enable machine-processing.
>         But by incorporating non-machine-processable
>         "other" data one's own objectives are defeated.
>
> "Okay, suppose that I avoid using an <Other> element and, say, a new country emerges; what should I do?"
>
> Answer: the real world has changed (there is a new country). Your data model must be updated to reflect the real world. So update your XML Schema and in your program add a component for the new country.
>
> Comments welcome.
>
> /Roger
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php


[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