|
|
|
XML Strengths and Weaknesses with DOM,
ASP and XSL
Author: Nakul Goyal
Download Source Files
Since the inception of XML, many developers have wondered
why we need XML... How is it better than HTML and what does it do? For starters,
XML is far more powerful than HTML, and the power resides in the "X" in XML (which
stands for extensible). Rather than providing a set of pre-defined tags (as in the
case of HTML), XML specifies the standards with which you can define your own markup
languages with their own sets of tags. XML is therefore a meta-markup language,
allowing you to define an infinite number of markup languages based upon the standards
defined by XML.
XML was created so that richly structured documents could be used over the web.
The only viable alternatives, HTML and SGML, are not practical for this purpose.
XML allows you to define all sorts of tags with all sorts of rules, such as tags
representing business rules or tags representing data description or data relationships.
In this article we're going to take a look at some of the terminology that comes
with using XML and its related technologies, as well as how to create and transform
XML documents with XSL using Microsoft's MSXML parser. To test the code samples
shown in this article you should be running Windows NT/2000/XP with IIS installed.
You should also have SQL server 2000 installed on the same machine.
As with any technology, XML has its own acronym-riddled
lingo. Some of the important acronyms include:
- DTD:
In XML, the definition of a valid markup is handled by a Document Type Definition
(DTD), which communicates the structure of the markup language. The DTD specifies
the validity of each tag.
- XSL:
The Extensible Style Language (XSL) is the style language for XML that allows us
to transform XML nodes using a set of patterns and templates.
- XML Pointer Language (XPointer) and XML Linking Language (XLink):
These two technologies define a standard way to represent links between resources.
In addition to simple links like HTML's <a> tag, XML has mechanisms for linking
between multiple resources and linking between read-only resources. XPointer describes
how to address a resource whereas XLink describes how to associate two or more resources.
- XML Flow Architecture: XML offers a three-tier architecture. It can be
generated from existing databases that employ a 3-tier model themselves. We can
maintain business rules separately.
Why XML Should Be Used?
Using XML provides us as developers with a number of benefits. Some of the most
obvious benefits include:
-
Authors and providers can design their documents using XML, instead of being stuck
with HTML. They can be explicitly tailored for an audience, so the cumbersome problems
with HTML are theoretically eliminated; therefore both authors and designers are
free to invent their own markup elements.
-
Information can be richer and is easier to access and manipulate because the hypertext
linking abilities of XML are much more advanced than those found in HTML.
- XML can provide more (and improved) facilities for browser presentation and performance.
XML compresses exceedingly well. Since data compression algorithms operate on the
concept of maximizing the entropy of a given input stream, it stands to reason that
a highly ordered input stream consisting of regular, repeating tag sequences will
compress exceedingly well... much better than standard text which contains generally
far less order thus resulting in a decrease in performance.
Weaknesses of XML
XML is obviously not a cure-all language free of any disadvantages... otherwise
we would be using XML to markup/represent all of our data, and nothing else! There
are of course some drawbacks and weaknesses of XML, namely:
-
XML markup can be incredibly verbose, depending on the vocabulary in question.
-
All the pieces of the XML puzzle aren't yet in place, certainly not from a standards-compliant
viewpoint anyhow. We've got both XSL and XSLT, however they are not fully developed
yet.
-
There are still some problems with Microsoft's XML Parser.
- XML Hypertext Transfer Protocol (XML-HTTP) still has some minute problems.
Performance of XML
When you're designing an XML-based Web application, what kind of performance hit
do you expect to put on your web server? It's hard to generalize because there are
so many variables (such as the size of the XML document, the amount of script code
required to process the document, the amount of output generated, etc) to take into
consideration, however the following list shows the major variables that can affect
the performance of parsing XML:
-
The Kind of XML Data being parsed.
-
The ratio of tags to text.
-
The ratio of attributes to elements.
- The amount of discarded white space in the document.
Have Questions? Discuss this topic in Dev
Forum
|
|
|
|
|
|