About company Our development services Portfolio. Case studies Support Testimonials Contacts Brutka Ltd: web site development and custom software development

Portfolio


Industry
Software Solution
Application Type
Technology Domain


Phrase of the day


The NeXT Computer: The hardware makes it a PC, the software makes it a workstation, the unit sales makes it a mainframe.
The NeXT Computer: The hardware makes it a PC, the software makes it a workstation, the unit sales makes it a mainframe.

XML


XMLThe Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages, capable of describing many different kinds of data. In other words, XML is a way of describing data. An XML file can contain the data too, as in a database. It is a simplified subset of Standard Generalized Markup Language (SGML). Its primary purpose is to facilitate the sharing of data across different systems, particularly systems connected via the Internet. Languages based on XML (for example, Geography Markup Language (GML), RDF/XML, RSS, Atom, MathML, XHTML, SVG, XUL, EAD, Klip and MusicXML) are defined in a formal way, allowing programs to modify and validate documents in these languages without prior knowledge of their particular form.

Another view is that XML is a wide standard to encode structured information.

XML provides a text-based means to describe and apply a tree-based structure to information. At its base level, all information manifests as text, interspersed with markup that indicates the information's separation into a hierarchy of character data, container-like elements, and attributes of those elements. In this respect, it is similar to the LISP programming language's S-expressions, which describe tree structures wherein each node may have its own property list.

The fundamental unit in XML is the character, as defined by the Universal Character Set. Characters are combined to form an XML document. The document consists of one or more entities, each of which is typically some portion of the document's characters, stored in a text file.

XML files may be served with a variety of Media types. RFC3023 defines the types "application/xml" and "text/xml", which say only that the data is in XML, and nothing about its semantics. The use of "text/xml" has been criticized as a potential source of encoding problems. RFC3023 also recommends that XML-based languages be given media types beginning in "application/" and ending in "+xml"; for example "application/atom+xml" for Atom. This page discusses further XML and MIME.

The ubiquity of text file authoring software (basic text editors such as Notepad and TextEdit as well as word processors) facilitates rapid XML document authoring and maintenance, whereas prior to the advent of XML, there were very few data description languages that were general-purpose, Internet protocol-friendly, and very easy to learn and author. In fact, most data interchange formats were proprietary, special-purpose, "binary" formats (based foremost on bit sequences rather than characters) that could not be easily shared by different software applications or across different computing platforms, much less authored and maintained in common text editors.

By leaving the names, allowable hierarchy, and meanings of the elements and attributes open and definable by a customizable schema, XML provides a syntactic foundation for the creation of custom, XML-based markup languages. The general syntax of such languages is rigid — documents must adhere to the general rules of XML, assuring that all XML-aware software can at least read (parse) and understand the relative arrangement of information within them. The schema merely supplements the syntax rules with a set of constraints. Schemas typically restrict element and attribute names and their allowable containment hierarchies, such as only allowing an element named 'birthday' to contain 1 element named 'month' and 1 element named 'day', each of which has to contain only character data. The constraints in a schema may also include data type assignments that affect how information is processed; for example, the 'month' element's character data may be defined as being a month according to a particular schema language's conventions, perhaps meaning that it must not only be formatted a certain way, but also must not be processed as if it were some other type of data.

In this way, XML contrasts with HTML, which has an inflexible, single-purpose vocabulary of elements and attributes that, in general, cannot be repurposed. With XML, it is much easier to write software that accesses the document's information, since the data structures are expressed in a formal, relatively simple way.

XML makes no prohibitions on how it is used. Although XML is fundamentally text-based, software quickly emerged to abstract it into other, richer formats, largely through the use of datatype-oriented schemas and object-oriented programming paradigms (in which the document is manipulated as an object). Such software might treat XML as serialized text only when it needs to transmit data over a network, and some software doesn't even do that much. Such uses have led to "binary XML", the relaxed restrictions of XML 1.1, and other proposals that run counter to XML's original spirit and thus garner an amount of criticism.

Some features of XML that make it well-suited for data transfer are:

Its simultaneously human- and machine-readable format;
That it has support for Unicode, allowing almost any information in any written human language to be communicated;
The ability to represent the most general computer science data structures: records, lists and trees;
The self-documenting format that describes structure and field names as well as specific values;
The strict syntax and parsing requirements that allow the necessary parsing algorithms to remain simple, efficient, and consistent.
XML is also heavily used as a format for document storage and processing, both online and offline, and offers several benefits:

Its robust, logically-verifiable format is based on international standards;
The hierarchical structure is suitable for most (but not all) types of documents;
It manifests as plain text files, unencumbered by licenses or restrictions;
It is platform-independent, thus relatively immune to changes in technology;
Its predecessor, SGML, has been in use since 1986, so there is extensive experience and software available.

For certain applications, XML also has the following weaknesses:

Its syntax is verbose and redundant. This can hurt human readability and application efficiency, and yields higher storage costs. It can also make XML difficult to apply in cases where bandwidth is limited, though compression can reduce the problem in some cases. This is particularly true for multimedia applications running on cell phones and PDAs which want to use XML to describe images and video.
Parsers should be designed to recurse arbitrarily nested data structures and must perform additional checks to detect improperly formatted or differently ordered syntax or data (this is because the markup is descriptive and partially redundant, as noted above). This causes a significant overhead for most basic uses of XML, particularly where resources may be scarce - for example in embedded systems. Furthermore, additional security considerations arise when XML input is fed from untrustworthy sources and resource exhaustion or stack overflows are possible.
Some consider the syntax to contain a number of obscure, unnecessary features born of its legacy of SGML compatibility. An effort to settle on a subset called "Minimal XML" led to the discovery that there was no consensus on which features were in fact obscure or unnecessary.
The basic parsing requirements do not support a very wide array of data types so interpretation sometimes involves additional work in order to process the desired data from a document. There is no provision in XML, for example, for mandating that "3.14159" is a floating-point number rather than a seven-character string. Some XML schema languages add this functionality.
Uses the hierarchical model for representation, which is limited compared to the relational model since it only gives a fixed view of the actual information. Either actors under movies, for example, or movies under actors.
Modelling overlapping (non-hierarchical) data structures requires extra effort.
Mapping XML to the relational or object oriented paradigms is often cumbersome.
Some have argued that XML can be used for data storage only if the file is of low volume but this is only true given particular assumptions about architecture, data, implementation, and other issues.
The sequence of keystrokes to type XML expressions on a standard PC keyboard are particularly awkward.

More about XML >>