Here is the first group of text< d>
| Here is the second group of text< d>
< r> < able>
This document contains a table element ("") with a table row element (""). The table row element, in turn contains two table cell elements (""). Each of these elements has both an opening tag ("") and a closing tag ("< able>"). While this is fairly straightforward, it also is somewhat inflexible. What if, for example, I need to create a document that describes my company's employee roster for the Annual InfoStrat softball tournament? With XML, it's as easy as replacing the element and attribute names from the previous HTML document with my own custom tags that describe my company and its employees. Here is what such a document might look like:
Hank Aaron Babe Ruth
With this XML document, I have defined my company and two of its employees and have described the relationship between company (parent) and employees (children). I have shown that my company has two employees, but I easily could add new employee elements to reflect new hires that we bring on to ensure that we don't lose this year's tournament:
Mickey Mantle Ty Cobb
After creating my XML document, I can display its contents in my format of choice. The same XML document could easily be displayed as HTML, a Microsoft Word document, an Adobe.pdf file, or even as text in the body of an e-mail message. As long as the XML document is well formed (meaning that it follows the appropriate XML format and syntax), you can choose your method of preference (or necessity) for displaying its content.
Let's dissect the pieces of my company roster XML document to see each piece's role and responsibility.
Header:
The header tells the document's user that this is an XML document - using version 1.0 of the XML specification in this case.
Hank Aaron Babe Ruth
Tags (brackets, greater than, less than):
Just like in HTML, you use greater than (">") and less than ("<") signs called tags to indicate the opening and closing of an element.
Hank Aaron Babe Ruth
Elements:
Elements are the basic building blocks of XML. They may contain text, comments, or other elements, and consist of a start tag and an end tag. Typically, XML elements are akin to nouns in the real world. They represent people, places, or things.
Hank Aaron Babe Ruth
Note that in XML, every opening element (i.e. "") must also contain a closing element (i.e. ""). The closing element consists of the name of the opening element, prefixed with a slash ("/"). XML is case-sensitive. While "" is well-formed, "" and "" are not. Also, if the element does not contain text or other elements, you may abbreviate the closing tag by simply adding a slash ("/") before the closing bracket in your element (i.e. "" can be abbreviated as ""). In addition to the rules defining opening and closing tags, it is important to note that in order to create a well-formed XML document, you must properly nest all elements. The previous document properly nests the "" elements within the "" element, but the following would not be acceptable in XML because the second "" element exists outside of the "" element:
Hank Aaron
Babe Ruth
Attributes:
Where elements represent the nouns contained in an XML document, attributes represent the adjectives that describe the elements. The following document tells me that Hank Aaron's id is "1" and that Babe Ruth's is "2". This helps to describe these two employees.
Hank Aaron Babe Ruth
Note that in order to be well formed, all attribute values must be contained within quotation marks. id"1" is correct, while id1 is not acceptable. This is a marked difference from standard HTML formatting that places much looser restrictions on what is acceptable.
Text/Content:
Elements contain contents that give critical information about them. This information represents that entity itself in an XML document. In the following document, Hank Aaron is the employee; Babe Ruth is the employee.
Hank Aaron Babe Ruth
As you can see, XML and HTML are practically identical with the exception that XML is far less lenient when it comes to case-sensitivity, using closing tags, and properly nesting parent/child elements. This is excellent news for Web developers everywhere as it ensures that if you write well-formed HTML, you'll find the transition to XML virtually seamless.
To summarize, XML is a text-based meta-language that uses tags, elements, and attributes to add structure and definition to documents. It is similar to HTML in syntax and implementation, but different with regard to functionality. Where HTML allows users to control how documents are displayed, XML allows them to describe the actual contents of the documents. It is a markup language because it uses tags to mark-up documents and it is a meta-language because it uses these tags to give structure to documents that it in turn uses as a means of communication. XML is extensible because it enables users to create their own collection of tags (unlike HTML).
Now, why should you care about XML? If for now other reason, consider that the World Wide Web Consortium (W3C), the Internet's governing body, is considering a proposal to rewrite the HTML 4 language in XML 1.0. As of the time this article was written, XHTML had received endorsement by the director of the W3C as a recommendation. This proposal, known as XHTML will require well formedness in all HTML documents. The W3C is a neutral standards body responsible for defining the future of the Internet. They do not support every new idea that comes along, and we should view their full support of XML (or any technology), as a harbinger of where tomorrow's Internet will take us. Ignore XML if you will, but know that it is most definitely a legitimate technology that will revolutionize the way that we program applications for the Web
About the Author
Jeff Jones For more information on XHTML, XML, and the W3C, check out the W3C website at http://www.w3c.org.
| |