[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Costello, Roger L." <costello@m...>
  • To: "xml-dev@l..." <xml-dev@l...>
  • Date: Thu, 29 Jan 2015 17:07:53 +0000

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



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


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member