Design XML vocabularies with UML tools
Tutorial Details:
In this first article in a new series on UML and XML schema development, Benoît discusses the motivations for modeling XML schema through the use of UML. He also introduces XML Metadata Interchange (XMI) and sketches out a strategy for deriving XML schemas automatically from UML models. Share your thoughts on this article with the author and other readers in the accompanying discussion forum. (You can also click Discuss at the top or bottom of the article to access the forum.)
Since XML has become mainstream, a lot of interest in the design of XML applications has emerged. More specifically, many organizations want to integrate the design of XML applications with the design of their other applications. Adopting one common methodology -- or at least one common set of tools -- is a worthwhile exercise.
As far as XML goes, design activities are centered around the data model. Indeed, because XML is a markup language, it is concerned solely with the organization of information -- unlike, say, the Java language which deals both with the data model (class hierarchy) and data manipulation (methods).
This article is the first in a new series for the Working XML column that will explore the use of UML modeling tools, such as IBM Rational Rose and XSLT, to design XML applications. In this introductory article, I will discuss the basics of data modeling and introduce the techniques that I will cover in the next three articles.
Data modeling
The Concise Oxford Dictionary (Oxford University Press, 2001) has no less than seven definitions of the noun "model." For the purposes of this column series, the following definition is appropriate: "a simplified (often mathematical) description of a system etc., to assist calculations and predictions." The three keywords in this definition are simplified, description, and assist.
According to this definition, a model is a description of a system. This statement is crucial; the model is not the system itself but a formalized representation of the system. In the specific case of XML, the system consists of documents encoded according to a specific vocabulary.
Read
Tutorial at: Click here to view the tutorial
Rate Tutorial: Working XML: UML, XMI, and code generation
View Tutorial: Working XML: UML, XMI, and code generation
Related
Tutorials:
JavaWorld - Distributed
applet-based
massively parallel processing
(DAMPP) - January
1997
JavaWorld - Distributed
applet-based
massively parallel processing
(DAMPP) - January
1997 |
The state of Jini technology - JavaWorld
The state of Jini technology - JavaWorld |
JavaWorld
December 1999
JavaWorld
December 1999 |
Code generation using Javadoc - JavaWorld August
2000
Code generation using Javadoc - JavaWorld August
2000 |
Breathe intelligence into Java - JavaWorld April 2001
Breathe intelligence into Java - JavaWorld April 2001 |
Reflection
vs. code generation
Reflection
vs. code generation |
Pick up
performance with generational garbage
collection
Pick up
performance with generational garbage
collection |
Is WSDL the
indispensable API?
Is WSDL the
indispensable API? |
Very
interesting article
Very
interesting article |
Object-relation mapping without the container
If you follow the latest developer buzz then you\\\\\'ve likely heard of IOC (Inversion of Control) containers and AOP (aspect-oriented programming). |
Java Testing and Design
Java Testing and Java Test and Design is the companion to any book on Java software development practices, techniques, and testing. Software developers, QA analysts and IT managers working in large corporate IT groups, software development companies, and |
Template-Based Code Generation with Apache Velocity, Part 1
Template-Based Code Generation with Apache Velocity, Part
I'm going to discuss template-based code generation, explain basic concepts related to templates and transformations, and demonstrate the huge benefits they can bring in code generation. |
Extensible Code Generation with Java, Part 1
Extensible Code Generation with Java, Part 1
Code generation is a key new trend in engineering, one that you need to understand well. The reason is simple: today's modern frameworks are extremely code-intensive. Using a code generator to build the code |
Template-Based Code Generation with Apache Velocity, Part 2
Template-Based Code Generation with Apache Velocity, Part 2
As described in part one of this series, code generation typically uses a template engine to transform some kind of "model" into compilable code, given the formatting specified by a template. |
Extensible Code Generation with Java
Extensible Code Generation with Java Part 2
In part 1 of this series, we looked at the idea of generated code, which is code written not by hand but by another application. The appeal of generated code is that it can eliminate drudgery (and mistakes) i |
Working with Hibernate in Eclipse
Working with Hibernate in Eclipse
Eclipse is a great example of the power of an open, extensible environment in which people all around the world can contribute. |
Attribute-Oriented Programming with Java 1.5, Part 1
In this article, I will consider the case of a status-bar component embedded in a GUI application. I will explore a number of different ways to implement this status reporter, starting with the traditional hard-coded idiom. Along the way, I will introduce |
Reduce code bloat with XDoclet
Reduce code bloat with XDoclet
XDoclet can easily be one of the more versatile cross-technology code-generation tools in your Java programming toolbox. Unfortunately, developers often overlook XDoclet's general utility and use it only when it's bundled a |
DB Visual Architect for Eclipse
DB Visual Architect for Eclipse (DBVA-EC) is a full featured Object Relational Mapping (ORM) plugin for Eclipse that provides the industry\'s best round-trip code engineering support with Java. |
Urchin RSS Aggregator
Urchin is a Web based, customisable, RSS aggregator and filter. It\'s primary purpose is to allow the generation of new RSS feeds by running queries against the collection of items in the Urchin database. |
|
|
|