Please visit our sponsors !
XML Attributes
XML elements can have attributes in the start tag, just like HTML.
Attributes are used to provide additional information about elements.
XML Attributes
XML elements can have attributes.
From HTML you will remember this: <IMG SRC="computer.gif">. The SRC attribute provides additional information about the IMG
element.
In HTML (and in XML) attributes provide additional information about
elements:
<img src="computer.gif">
<a href="demo.asp">
|
Attributes often provide information that is not
a part of the data. In the example
below, the file type is irrelevant to the data, but
important to the software that wants to manipulate the element:
<file type="gif">computer.gif</file>
|
Quote Styles, "female" or 'female'?
Attribute values must always be enclosed in quotes, but
either single or double quotes can be used. For a person's
sex, the person tag can be written like this:
or like this:
Double quotes are the most common, but sometimes (if
the attribute value itself contains quotes) it is necessary to use
single quotes, like in this example:
<gangster name='George "Shotgun" Ziegler'>
|
Use of Elements vs. Attributes
Data can be stored in child elements or in attributes.
Take a look at these examples:
<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
|
<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
|
In the first example sex is an attribute. In the last, sex is a child
element. Both examples provide the same information.
There are no rules about when to use attributes, and when to
use child elements. My experience is that attributes are handy in HTML, but in XML you should try to avoid
them. Use child elements if the information feels like data.
My Favorite Way
I like to store data in child elements.
The following three XML documents contain exactly the same information:
A date attribute is used in the first example:
<note date="12/11/99">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
|
A date element is used in the second example:
<note>
<date>12/11/99</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
|
An expanded date element is used in the third: (THIS IS MY FAVORITE):
<note>
<date>
<day>12</day>
<month>11</month>
<year>99</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
|
Avoid using attributes?
Should you avoid using attributes?
Here are
some of the problems using attributes:
- attributes cannot contain multiple values (child elements can)
- attributes are not easily expandable (for future changes)
- attributes cannot describe structures (child elements can)
- attributes are more difficult to manipulate by program code
- attribute values are not easy to test against a DTD
If you use attributes as containers for data, you end up with documents that are
difficult to read and maintain. Try to use elements to
describe data. Use attributes only to provide
information that is not relevant to the data.
Don't end up like this ( if you think this looks like XML, you have not
understood the point):
<note day="12" month="11" year="99"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
|
An Exception to my Attribute rule
Rules always have exceptions.
My rule about attributes has one exception:
Sometimes I assign ID references to elements. These ID
references can be used to access XML elements in much the same way as the NAME or
ID attributes in HTML. This example demonstrates this:
<messages>
<note id="p501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="p502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not!</body>
</note>
</messages>
|
The ID in these examples is just a counter, or a unique identifier, to identify
the different notes in the XML file, and not a part of the note data.
What I am trying to say here is that metadata (data about data) should be stored
as attributes, and that data itself should be stored as elements.
Jump to: Top of Page
or HOME or
Printer friendly page
Search W3Schools:
What Others Say About Us
Does the world know about us? Check out these places:
Dogpile
Alta Vista
MSN
Google
Excite
Lycos
Yahoo
Ask Jeeves
We Help You For Free. You Can Help Us!
W3Schools is for training only. We do not warrant its correctness or its fitness for use.
The risk of using it remains entirely with the user. While using this site, you agree to have read and accepted our
terms of use and
privacy policy.
Copyright 1999-2002 by Refsnes Data. All Rights Reserved
|