- From: =?UTF-8?B?UGlvdHIgQmHFhHNraQ==?= <bansp@o...>
- To: xml-dev@l...
- Date: Thu, 29 Jan 2015 18:46:43 +0100
Hi Roger,
> That is a massively recursive data model. And it is way cool.
And potentially very messy down to useless, in the example that you
cite. You will then have to recreate what you call the "top-down"
arrangement by invoking a separate constraint set, doubling the effort
and increasing the complexity.
Besides, I don't think it's sensible to oppose "top-down" and
"recursive". Recursive can be top-down all right. Consider using the
terms "recursive" vs.... "non-recursive" ;-)
Best regards,
Piotr
On 29/01/15 18:07, Costello, Roger L. wrote:
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@l...
subscribe: xml-dev-subscribe@l...
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]
|