Home arrow XML arrow Page 4 - XML Unlocks Information

XML Unlocks Information

XML is gaining acceptance today, not because it is a great technology looking for a problem, but because today's problems require its flexibility and simplicity. In this article Doug talks about how XML can be used to accomodate human-authored content. He also discusses structured and unstructured data as well as tips for designing XML DTD's and more.

Author Info:
By: Doug Domeny
Rating: 5 stars5 stars5 stars5 stars5 stars / 4
May 13, 2002
  1. · XML Unlocks Information
  2. · How XML Accommodates Human-Authored Content
  3. · Tips for Designing an XML DTD or Schema
  4. · Elements vs. Attributes with Database Oriented Data
  5. · Conclusion

print this article

XML Unlocks Information - Elements vs. Attributes with Database Oriented Data
(Page 4 of 5 )

To contrast attributes with elements, here are two examples of student record data that are traditionally stored in a database. The first example primarily uses elements (element-centric) to store data values. The second example primarily uses attributes (attribute-centric).


<student id="2456">
<name>Jim Smith</name>
<student id="2457">
<name>Mary Jones</name>


<student id="2456" name="Jim Smith" grade="10" gpa="3.5" />
<student id="2457" name="Mary Jones" grade="12" gpa="3.4" />

With relational database data, the choice between attributes and elements does not appear all that important. Only unique keys, which establish a link between elements (such as student id), must be attributes to facilitate the linking of records (that is, other elements). With the attribute-centric approach, each element is a record, and each attribute is a field.

Although either approach works, it is generally recommended to use elements instead of attributes. For instance, to distinguish between first and last name, the element-centric approach can be changed to:


The attribute-centric approach is less favorable because the attribute must be split into two attributes.

<student ... firstname="Jim" lastname="Smith" .../>

Only the element-centric approach is compatible with XSL.

Element-centric XSL transform:

<xsl:value-of select="name"/>

The transform above results in "Jim Smith" in both element-centric approaches, but the attribute-centric approach requires two different transforms.

Attribute-centric XSL transform for one attribute:

<xsl:value-of select="@name"/>

Attribute-centric XSL transform for two attributes:

<xsl:value-of select="@firstname"/> <xsl:value-of select="@lastname"/>

Elements vs. Attributes with Object Oriented Data
Besides relational database data, we should also consider object-oriented data, which describes a physical object, such as a car or a wooden barrel. Like the student record, the data is highly structured. Every part and subassembly relate to the others.

For object-oriented data, the relationship between parts and subassemblies is best described using the element approach. For example,

<automobile modelno="OCC96" class="midsize">
<name>Cutlass Ciera</name>
<engine size="3.0l">
<cylinders count="4" />
<wheels count="4" />
<mirror />
<lock type="4 button combination" />
<window />
<door>front passenger
<lock type="key" />
<window />
<door />
<door>left rear
<lock type="child safety" />
<window openable="no" />

Example of an object-oriented approach for a 10 gallon wooden barrel:

<barrel capacity="10g" material="wood">
<hoops width="2in" dia="2.5ft" material="iron" />

As you can see, both database-oriented and object-oriented data have little text. The data is highly structured and can be easily expressed in a tabular or hierarchical format. However, these highly structured examples would become semi-structured if the student record included teachers' comments or the automobile object included part descriptions and assembly instructions.
blog comments powered by Disqus

- Open XML Finally Supported by MS Office
- XML Features Added to Two Systems
- Using Regions with XSL Formatting Objects
- Using XSL Formatting Objects
- More Schematron Features
- Schematron Patterns and Validation
- Using Schematron
- Datatypes and More in RELAX NG
- Providing Options in RELAX NG
- An Introduction to RELAX NG
- Path, Predicates, and XQuery
- Using Predicates with XQuery
- Navigating Input Documents Using Paths
- XML Basics
- Introduction to XPath

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 

Developer Shed Affiliates


© 2003-2019 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials