Introduction to XML in Flash
       by senocular

Attributes
XML can have another type of data structure called attributes. Attributes are additional (generally simple) values which can be included in element nodes. They consist of a name (whose naming restrictions pretty much follow that of elements) and a quoted value included within the opening tag of an element. Unlike, elements, however, they have no child nodes or hierarchies of their own.

So far we haven't seen any attributes as they are optional parameters. Though, should you so desire, you can have as many or few as you desire for each element in your XML. Here is a previous example that now uses attributes:

<letter to="Sandy" from="Peter">
I love you!
</letter>

This takes two text nodes which were before in elements and places them as attribute values in the letter element. Since the rest of the letter is pretty much assumed to be its body, we can leave the "I love you!" text node directly within the letter element as a child. Such text, since it has the potential to be long and fairly complicated, would probably not be proper as an attribute anyway.

It is important to understand that attributes aren't meant to contain complex information. They must exist on a single line, in a single element and have a value defined in quotes. Since attribute values are defined in quotes they themselves cannot contain quotes - at least not the same kind of quotes used in their definition. Attributes can be defined with either single or double quotes so you can have single quotes in an attribute defined with double and vise versa, but you can't have double within an attribute defined with double. Attempting to escape quotes with a backslash (\") will not work either. And this not only applies to quotes, but also other characters you may wish to include such as tab (\t) or new line (\n). The attribute will treat each as plain text.

Ok, you got me! The above is not entirely accurate and all is not entirely lost if such aspects are required in your attributes. Like elements, attributes can use the aforementioned character references as well as others in the ISO 8859-1 (Latin-1) character set. This also includes the original 7-BIT ASCII standard. So yes, quotes can be added and yes, tabs and new line characters too. Want to know what they are?

Character Replace with
tab (\t) &#09;
line feed (\n) &#10;
carriage return (\r) &#13;
Find out more here.

Regardless, my position still remains; attributes should be kept simple. They are used to provide properties for elements, not relay your life story. The simpler the better as too many attributes or too much information within attributes can create unreadable XML, and that's not what we're after here, is it?

Ok, now take a look at this XML:

<a href="http://www.senocular.com">senocular.com</a>

Oh wait, its an anchor tag in HTML. No, its XML I say! You got yourself the element a with an attribute href whose value is "http://www.senocular.com" and a text node child of the a element whose value is senocular.com. Notice the similarities. XML isn't so bad. If you've been working with HTML then you've practically been working in XML. Just remember to keep those line break tags closed.

<br />

(Now you're making XHTML!)


 




SUPPORTERS:

kirupa.com's fast and reliable hosting provided by Media Temple.