2 different approaches to modelling the application:
- information-driven application
- document-driven application
Use case: news application; author writes item, and adds metadata; distributed through channels (HTML, XML); personalisation of HTML and filtering of XML (subject, country, date)
Information-driven
Data model is db schema
XML produced by bus. objs layer and transformed in "XML tier" (presentation layer)
Begin with UML, and then define db schema and lastly XML schema.
Can get away with looser schema -- for publishing only -- because of database constraints. Would be different if editing, or importing XML content directly.
Document-driven
Database is just a document manager: versions; diff. languages; etc.
XML is now throughout architecture.
Begin with XML schema, and data access layer.
Different modelling issues (particularly with single large content documents) -- e.g. normalizing creators. Add 'catalog' container which allows them to be referred to from elsewhere in the document. Could use XLink similarly.
Which is Right Approach?
It depends.
Some ease of use benefits, and potentially performance.
Technical documentation; Clinical system -- stored as XML document.
Trading system -- data oriented.
Information-driven: if legacy already exists.
