Re: [xml-dev] Create recursive data models! Top-down data modelsare boring and lacking in power
Hi Folks,
Question: What does JSON, XML Schema, and XSLT have in common?
Answer: they are all recursively defined; they specify a set of components which can be assembled in dazzlingly many ways.
Conversely, many (I dare say most) data designs are created in top-down fashion with a mindless list of data. For example, consider a data model for Books. The top-down approach is to mindlessly reel off properties about Books: Title, Author, Genre, etc. Then create instances like this:
<Book>
<Title>Parsing Techniques</Title>
<Author>Dick Grune</Author>
<Genre>Technical</Genre>
</Book>
Boring.
Not only boring, it is clumsy and lacking in power. To wit: instead of that arrangement of the pieces of data, suppose I want this arrangement:
<Title>
<Value>Parsing Techniques</Value>
<Author>Dick Grune</Author>
<Genre>Technical</Genre>
</Title>
Moreover, I want my Book data model to contain pieces that can be assembled in arbitrarily different ways - I want a recursive data model!
How might we create a recursive data model for Book data? Here's one way:
Book -> (Title | Author | Genre)+
Title -> Value, Book?
Author -> Value, Book?
Genre -> Value, Book?
That is a massively recursive data model. And it is way cool.
My new slogan: Just say "No!" to top-down data models and say "Yes!" to recursive data models.
Comments?
/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